FreeBSD 7-STABLE mbuf corruption

Adrian Chadd adrian at freebsd.org
Wed Sep 14 13:15:39 UTC 2011


On 14 September 2011 19:40, John Baldwin <jhb at freebsd.org> wrote:

> You should probably commit that.  I wonder if it should be a KASSERT() also so
> that it outright panics on a kernel with INVARIANTS enabled so developers will
> go fix their code as it seems to me to likely be a bug to enqueue a task that
> many times.

Or maybe warn? If it's used per-interrupt (like say it is under ath,
but for a 10GE NIC doing a high packet rate) then you may end up
enqueuing the taskqueue quite often before it next gets a chance to
run. Otherwise the code will have to add some more locking and
tracking of its own to only enqueue the task once.

As I said, I'm just worried that some of the taskqueue users are doing
some kind of poor mans refcounting where n(taskqueue_enqueue)
references has to equal the npending field in the taskqueue callback.


Adrian


More information about the freebsd-net mailing list