[Differential] [Commented On] D1711: Changes to the callout code to restore active semantics and also add a test-framework and test to validate thecallout code (and potentially for use by other tests).

rrs (Randall Stewart) phabric-noreply at FreeBSD.org
Wed Feb 4 13:52:05 UTC 2015


rrs added a comment.

Julian:

The point is *exactly* that, the callout *has* a reference.. and now that the table is being
flushed if the callout_stop returns 1 it thinks the callout has been stopped, which it has, which
means it will not run and release its reference. Thus the lowering of the reference count on
the return true from the stop. But the issue is the lock used is part of what the thing will
free. 

I have looked through all callout_stops and only the lle code (in three forms) does this. I think
the right fix here is to just go ahead and change the callout_init used to one with the MPSAFE flag.

When the callout runs all it does is drop the lock and release the reference which causes the
free in theory... So I think with a simple change to the init function this problem does not happen.

REVISION DETAIL
  https://reviews.freebsd.org/D1711

To: rrs, gnn, rwatson, lstewart, jhb, kostikbel, hselasky, adrian, imp, sbruno
Cc: julian, hiren, jhb, kostikbel, emaste, delphij, neel, erj, freebsd-net


More information about the freebsd-net mailing list