on 23/11/2010 15:26 Andriy Gapon said the following: > on 23/11/2010 08:33 Andriy Gapon said the following: >> I think that this is quite similar to what we do for per-CPU caches in UMA >> and >> so the same approach should work here. >> That is, as in (Open)Solaris, the data should be accessed only from the >> owning >> CPU and spinlock_enter()/spinlock_exit() should be used to prevent races >> between >> non-interrupt code and nested interrupt code. > > Here's a patch that makes our version of cyclic.c a little bit closer to the > upstream version whilst implementing the above idea: > http://people.freebsd.org/~avg/cyclic-deadlock.diff > > All accesses to per-CPU cyclics data are performed strictly from the > corresponding > CPUs in an interrupt or interrupt-like context. "Upcalls" occur in event > timer's > interrupt filter and all down calls are performed via smp_rendezvous_cpus(). > > I will appreciate reviews and testing.
Should I wait for any pending comments? Otherwise I am confident enough in the patch to commit it. -- Andriy Gapon _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"