Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Jul 2007 18:02:37 +0200
From:      Max Laier <max@love2party.net>
To:        freebsd-smp@freebsd.org
Cc:        Lee Brotherston <lee@nerds.org.uk>
Subject:   Re: Pfil and SMP
Message-ID:  <200707231802.47772.max@love2party.net>
In-Reply-To: <20070723101557.GE63302@nerds.org.uk>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
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@freebsd.org
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mlaier@EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQBGpNEnXyyEoT62BG0RApITAJ9G7L2aIhjBFl09pyyAIiR+Ze7E/gCeONSt
yyZZUPxyRfmUJ9uUugSl3hg=
=4tzZ
-----END PGP SIGNATURE-----
home | help

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