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,                      | [EMAIL PROTECTED]
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | [EMAIL PROTECTED]
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to