On 10-Jul-2002 Archie Cobbs wrote:
> John Baldwin writes:
>> > code would be modified to fit this new behaviour,  besides this, everywhere 
>> > callout_stop() is used need to hold sched_lock and do a mi_switch() and
>> > modify td_flags is also unacceptable, this SMP race should be resolved in 
>> > kern_timeout.c.
>> How would you resolve it while still preserving the existing semantics?
>> Saying "this race should be resolved" doesn't explain how you would go about
>> resolving it.  It's a lot harder than it looks.
> I don't know if this is the same problem or a different problem, but FWIW..

It is the same problem.  What we do is change callout_stop() to let you know if
it actually stopped the timeout or not.  You then have to use your own locking
and synchronization in the timeout function and yourself to close the rest of
the race.


John Baldwin <[EMAIL PROTECTED]>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to