Attilio Rao wrote:
2010/8/11 John Baldwin <j...@freebsd.org>:
Attilio Rao wrote:
Author: attilio
Date: Wed Aug 11 10:51:27 2010
New Revision: 211176
URL: http://svn.freebsd.org/changeset/base/211176

Log:
 IPI handlers may run generally with interrupts disabled because they
 are served via an interrupt gate.
   However, that doesn't explicitly prevent preemption and thread
 migration thus scheduler pinning may be necessary in some handlers.
 Fix that.
   Tested by:  gianni
 MFC after:    1 month
Actually that does prevent preemption if you do not call any code that would
schedule a thread.  I think this change is all safe to revert.

Do you recall, then, why lapic_handle_timer() does critical section?
It seems to be catered by interrupt gate as well, and I don't see any
point re-enabling them explicitly.

Because hardclock() explicitly calls sched_add() via swi_sched() when scheduling the softclock swi. The critical section there is just to ensure that the preemption to softclock happens after all of the clock interrupt handlers have finished. However, PCPU_GET() does not call sched_add(), so it does not need to be protected.

--
John Baldwin
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to