Can you throw this into reviews.freebsd.org please? This is something
that should be very closely reviewed and tested.
(I'm going to go over this quite closely as it related to a lot of the
random crap I do ..)
On 4 January 2015 at 04:15, Hans Petter Selasky <h...@selasky.org> wrote:
> Please find attached an updated timeout patch which also updates clients in
> the kernel area to use the callout API properly, like cv_timedwait().
> Previously there was some custom sleepqueue code in the callout subsystem.
> All of that has now been removed and we allow callouts to be protected by
> spinlocks. This allows us to tear down the callback like done with regular
> mutexes, and a "td_slpmutex" has been added to "struct thread" to atomically
> teardown the "td_slpcallout". Further the "TDF_TIMOFAIL" and
> "SWT_SLEEPQTIMO" states can now be completely removed.
> Summary of changes:
> 1) Make consistent callout API which also supports spinlocks for the
> callback function. This has been done to allow atomic callout stop of
> "td_slpcallout" without the need of many kernel threading quirks.
> 2) It is not allowed to migrate CPU if the timeout is restarted while the
> timeout callback is executing. Callouts must be stopped before CPU migration
> is allowed. Optionally drained.
> 3) Shared lock support has been removed, because it prevents atomic stop of
> the callback function.
> 4) A new API to drain callouts asynchronously has been added, called
> Please test and report any errors!
> Patch applies to FreeBSD-11-current as of today.
> Thank you!
> freebsd-a...@freebsd.org mailing list
> To unsubscribe, send any mail to "freebsd-arch-unsubscr...@freebsd.org"
email@example.com mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"