summaryrefslogtreecommitdiff
path: root/apps/debug_menu.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2008-03-25 02:34:12 +0000
committerMichael Sevakis <jethead71@rockbox.org>2008-03-25 02:34:12 +0000
commit27cf67733936abd75fcb1f8da765977cd75906ee (patch)
treef894211a8a0c77b402dd3250b2bee2d17dcfe13f /apps/debug_menu.c
parentbc2f8fd8f38a3e010cd67bbac358f6e9991153c6 (diff)
downloadrockbox-27cf67733936abd75fcb1f8da765977cd75906ee.tar.gz
rockbox-27cf67733936abd75fcb1f8da765977cd75906ee.zip
Add a complete priority inheritance implementation to the scheduler (all mutex ownership and queue_send calls are inheritable). Priorities are differential so that dispatch depends on the runnable range of priorities. Codec priority can therefore be raised in small steps (pcmbuf updated to enable). Simplify the kernel functions to ease implementation and use the same kernel.c for both sim and target (I'm tired of maintaining two ;_). 1) Not sure if a minor audio break at first buffering issue will exist on large-sector disks (the main mutex speed issue was genuinely resolved earlier). At this point it's best dealt with at the buffering level. It seems a larger filechunk could be used again. 2) Perhaps 64-bit sims will have some minor issues (finicky) but a backroll of the code of concern there is a 5-minute job. All kernel objects become incompatible so a full rebuild and update is needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16791 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/debug_menu.c')
-rw-r--r--apps/debug_menu.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index d865f12e65..fc509ce236 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -127,11 +127,6 @@ static char thread_status_char(unsigned status)
127 [STATE_KILLED] = 'K', 127 [STATE_KILLED] = 'K',
128 }; 128 };
129 129
130#if NUM_CORES > 1
131 if (status == STATE_BUSY) /* Not a state index */
132 return '.';
133#endif
134
135 if (status > THREAD_NUM_STATES) 130 if (status > THREAD_NUM_STATES)
136 status = THREAD_NUM_STATES; 131 status = THREAD_NUM_STATES;
137 132
@@ -166,15 +161,15 @@ static char* threads_getname(int selected_item, void * data, char *buffer)
166 thread_get_name(name, 32, thread); 161 thread_get_name(name, 32, thread);
167 162
168 snprintf(buffer, MAX_PATH, 163 snprintf(buffer, MAX_PATH,
169 "%2d: " IF_COP("(%d) ") "%c%c " IF_PRIO("%d ") "%2d%% %s", 164 "%2d: " IF_COP("(%d) ") "%c%c " IF_PRIO("%d %d ") "%2d%% %s",
170 selected_item, 165 selected_item,
171 IF_COP(thread->core,) 166 IF_COP(thread->core,)
172#ifdef HAVE_SCHEDULER_BOOSTCTRL 167#ifdef HAVE_SCHEDULER_BOOSTCTRL
173 (thread->boosted) ? '+' : 168 (thread->cpu_boost) ? '+' :
174#endif 169#endif
175 ((thread->state == STATE_RUNNING) ? '*' : ' '), 170 ((thread->state == STATE_RUNNING) ? '*' : ' '),
176 thread_status_char(thread->state), 171 thread_status_char(thread->state),
177 IF_PRIO(thread->priority,) 172 IF_PRIO(thread->base_priority, thread->priority, )
178 thread_stack_usage(thread), name); 173 thread_stack_usage(thread), name);
179 174
180 return buffer; 175 return buffer;