Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Oct 2017 10:05:03 -0600
From:      Ian Lepore <ian@freebsd.org>
To:        Hans Petter Selasky <hps@selasky.org>, Matt Joras <mjoras@FreeBSD.org>, "freebsd-arch@FreeBSD.org" <freebsd-arch@FreeBSD.org>
Subject:   Re: Allow faster eventhandler dispatching by keeping pointers to handler lists.
Message-ID:  <1509379503.21609.103.camel@freebsd.org>
In-Reply-To: <0fad1391-726d-8215-075d-9411abdf6edb@selasky.org>
References:  <1509243567.56824.103.camel@freebsd.org> <3a71dd31-99cb-c891-9d52-a7f2e7010011@FreeBSD.org> <1509293552.21609.5.camel@freebsd.org> <1509294247.21609.12.camel@freebsd.org> <7b59ff3d-3458-0bca-e6b4-13454b13efb0@FreeBSD.org> <1509296624.21609.24.camel@freebsd.org> <0fad1391-726d-8215-075d-9411abdf6edb@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2017-10-30 at 09:17 +0100, Hans Petter Selasky wrote:
> On 10/29/17 18:03, Ian Lepore wrote:
> > 
> > Oh.  Right.  Hmmm, I think malloc() is required to support the case
> > where a handler registers before the static list init is invoked, and I
> > do think that's a useful feature to preserve.  That means the lists
> > aren't really static, though, which then makes STATIC a bit out of
> > place in the new function/macro names.
> Why not use RCU here, and then update sys/queue.h to be RCU safe?
> 
> --HPS

I'm not sure how that suggestion relates to that paragraph, but the
code already does use a form of RCU to handle deletion of registered
handlers from individual event lists.  It could probably benefit from a
rewrite to more fully embrace RCU and use it for insertions as well,
but that's beyond the scope of these changes, which are trying to
eliminate the worst uses of a global lock at a higher level than
maintaining the list for a single event.

-- Ian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1509379503.21609.103.camel>