pf + vimage patch

Mikolaj Golub trociny at FreeBSD.org
Thu Jun 6 12:24:17 UTC 2013


On Thu, Jun 06, 2013 at 12:35:33PM +0200, Nikos Vassiliadis wrote:

> >> -VNET_DEFINE(u_long, pf_srchashsize);
> >> -#define	V_pf_srchashsize	VNET(pf_srchashsize)
> >> -SYSCTL_VNET_UINT(_net_pf, OID_AUTO, source_nodes_hashsize, CTLFLAG_RDTUN,
> >> -    &VNET_NAME(pf_srchashsize), 0, "Size of pf(4) source nodes hashtable");
> >> +u_long		pf_srchashsize;
> >> +SYSCTL_UINT(_net_pf, OID_AUTO, source_nodes_hashsize, CTLFLAG_RDTUN,
> >> +    &pf_srchashsize, 0, "Size of pf(4) source nodes hashtable");
> >>
> >
> > Why do you have to devirtualize these variables? Are per vnet
> > hashtables sizes not useful or do they cause issues?
> 
> Per VNET variables are not useful for pf_hashsize and pf_srchashsize
> since these values are RO and cannot be modified at runtime.

Indeed. I missed RDTUN flag.
 
> module unload is broken:( Maybe it can be fixed at a (bit) later date?

I don't think Gleb will be happy with this. Some time ago he removed
some vimage related stuff to prevent crashing on module unload (see
r229849). Actually your patch looks like a partial revert of that
commit. So I think you need to think about this issue from start. At
least it should not crash non-vimage kernel and there should be
understanding how to fix it for vimage kernel. Your approach with
keeping only one purge thread might make it simpler.

-- 
Mikolaj Golub


More information about the freebsd-jail mailing list