Pfil and SMP

Max Laier max at love2party.net
Mon Jul 23 16:16:34 UTC 2007


On Monday 23 July 2007, Lee Brotherston wrote:
> Apologies if this is an area which has been covered somewhere, but my
> google skills don't seem to have uncovered it.
>
> I am working with the pfil interface and use pfil_add_hook to process
> or drop a number of packets.  However as my test equipment is only
> single processor I have been unable to test in an SMP environment.
> So, the crux of my query is...
>
> Does the SMP setup in FreeBSD 6.x & 7.x, leave the possibility that
> the two instances of the function named in the pfil_add_hook call, may
> be running at once?  Or is there some kind of locking which prevents
> this?  My reason for asking is that there is a state table which I do
> not want altering in two places at once, and so I will impliment
> internal locks.
>
> (If possible I'd appreciate being CC'd on replies as I'm not currently
> subscribed).

pfil(9) is protected by rw_locks (CURRENT) or a handrolled version of 
reader/writer locks (RELENG_6) and thus does not prevent more than one 
thread in the hook function at once.  You have to roll your own locking 
if required.

-- 
/"\  Best regards,                      | mlaier at freebsd.org
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mlaier at EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: This is a digitally signed message part.
Url : http://lists.freebsd.org/pipermail/freebsd-smp/attachments/20070723/1367a936/attachment.pgp


More information about the freebsd-smp mailing list