Messages in this thread | | | Date | Wed, 29 Jul 2009 09:14:41 -0400 | From | Gregory Haskins <> | Subject | Re: [PATCH 1/2] sched: check for pushing rt tasks after all scheduling |
| |
Peter Zijlstra wrote: > On Wed, 2009-07-29 at 00:21 -0400, Steven Rostedt wrote: >> plain text document attachment >> (0001-sched-check-for-pushing-rt-tasks-after-all-schedulin.patch) >> From: Steven Rostedt <srostedt@redhat.com> >> >> The current method for pushing RT tasks after scheduling only >> happens after a context switch. But we found cases where a task >> is set up on a run queue to be pushed but the push never happens >> because the schedule chooses the same task. >> >> This bug was found with the help of Gregory Haskins and the use of >> ftrace (trace_printk). It tooks several days for both of us analyzing >> the code and the trace output to find this. > > >> + if (current->sched_class->needs_post_schedule) >> + post_schedule = current->sched_class->needs_post_schedule(rq); > > >> + if (post_schedule) >> + current->sched_class->post_schedule(rq); > > > Why can't we omit that first call, and do the second unconditionally, > using storage in the class rq to save state?
Yeah, that is a good idea. Plus I see another bug that Steven and I overlooked. Steve is out on holiday today, so I will put together a v2.
Regards, -Greg
[unhandled content-type:application/pgp-signature] | |