cvs commit: src/share/man/man4 ipfirewall.4 src/share/man/man9
pfil.9 src/sys/alpha/conf GENERIC src/sys/amd64/conf GENERIC
src/sys/conf NOTES files options src/sys/i386/conf GENERIC
src/sys/ia64/conf GENERIC SKI src/sys/modules/bridge Makefile ...
Andre Oppermann
andre at freebsd.org
Fri Aug 27 10:04:58 PDT 2004
Max Laier wrote:
>
> On Friday 27 August 2004 18:27, Andre Oppermann wrote:
> > Max Laier wrote:
> > > On Friday 27 August 2004 17:16, Andre Oppermann wrote:
> > > > andre 2004-08-27 15:16:24 UTC
> > > >
> > > > FreeBSD src repository
> > > >
> > > > Modified files:
> > > > share/man/man4 ipfirewall.4
> > > > share/man/man9 pfil.9
> > > > sys/alpha/conf GENERIC
> > > > sys/amd64/conf GENERIC
> > > > sys/conf NOTES files options
> > > > sys/i386/conf GENERIC
> > > > sys/ia64/conf GENERIC SKI
> > > > sys/modules/bridge Makefile
> > > > sys/net bridge.c
> > > > sys/netinet ip_fastfwd.c ip_fw_pfil.c ip_input.c
> > > > ip_output.c ip_var.h
> > > > sys/netinet6 ip6_forward.c ip6_input.c ip6_output.c
> > > > ip6_var.h
> > > > sys/pc98/conf GENERIC
> > > > sys/powerpc/conf GENERIC
> > > > sys/sparc64/conf GENERIC
> > > > . UPDATING
> > > > Log:
> > > > Always compile PFIL_HOOKS into the kernel and remove the associated
> > > > kernel compile option. All FreeBSD packet filters now use the
> > > > PFIL_HOOKS API and thus it becomes a standard part of the network
> > > > stack.
> > > >
> > > > If no hooks are connected the entire packet filter hooks section and
> > > > related activities are jumped over. This removes any performance
> > > > impact if no hooks are active.
> > >
> > > Great!!!
> > >
> > > Maybe we should hide:
> > > if (inet_pfil_hook.ph_busy_count == -1)
> > > behind a macro in case we modify the locking for pfil_hooks in the
> > > future. I am thinking of something like:
> > > if (PFIL_IS_EMPTY(&inet_pfil_hook))
> >
> > Checking for (inet_pfil_hook.ph_busy_count == -1) is the official to see if
> > there are any hooks connected. I don't think we need to abstract this in a
> > macro.
>
> Well, having written the locking there I can tell you that ph_busy_count is
> really an *internal* value of the locking and should not be used directly. At
> least as long as we want to be able to change the locking at a later point.
>
> Right now pfil uses a handrolled sleep lock (as the default sx(9) lock is not
> very suitable or fast) but this might change in the future. Using
> ph_busy_count globaly will make that change more difficult.
>
> Moreover, I find PFIL_IS_EMPTY much easier to understand.
Ok, you convinced me. I'm going to make it macro called PFIL_IS_HOOKED.
This seems to be a little bit more descriptive than IS_EMPTY. IS_EMPTY
is easy to confuse with some kind of packet queue or so (which PFIL_HOOKS
isn't).
--
Andre
More information about the cvs-src
mailing list