Hi! 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 ..) -adrian On 4 January 2015 at 04:15, Hans Petter Selasky <hps_at_selasky.org> wrote: > Hi, > > 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 > "callout_drain_async()". > > Please test and report any errors! > > Patch applies to FreeBSD-11-current as of today. > > Thank you! > > --HPS > > > _______________________________________________ > freebsd-arch_at_freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-arch > To unsubscribe, send any mail to "freebsd-arch-unsubscribe_at_freebsd.org"Received on Sun Jan 04 2015 - 17:58:56 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:54 UTC