Messages in this thread | | | Subject | Why yield in coredump_wait? [was: Re: Resent: BUG in RT 45-01 when RT program dumps core] | From | Steven Rostedt <> | Date | Thu, 19 May 2005 09:37:00 -0400 |
| |
In the function coredump_wait there's a yield called:
static void coredump_wait(struct mm_struct *mm) { [...] /* give other threads a chance to run: */ yield();
zap_threads(mm); [...]
I don't see any reason for this. Although the comment says it's giving other threads a chance to run, but the zap_threads below it will just send a kill signal to all those sharing the mm and then this thread will wait for completion (if there were threads to wait on).
Now if there were no other threads to wait on it would just continue. So, is there some real reason that this yield is there? Or is it just trying to be nice, as in saying, "I'm dieing now and just don't want to waste others time" (which I highly doubt is the case).
The reason I'm asking this, is that RT tasks should not call yield, since it is pretty much meaningless, since an RT task won't yield to any task of lesser priority, and in Ingo's current kernel the yield will send a bug message if it was called by an RT task.
Thanks,
-- Steve
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |