Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Feb 2014 20:49:01 +0200
From:      Mikolaj Golub <trociny@FreeBSD.org>
To:        Martin Matuska <mm@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r262196 - head/sys/netpfil/pf
Message-ID:  <20140219184859.GA3844@gmail.com>
In-Reply-To: <201402182217.s1IMHCeM077356@svn.freebsd.org>
References:  <201402182217.s1IMHCeM077356@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Feb 18, 2014 at 10:17:12PM +0000, Martin Matuska wrote:
> Author: mm
> Date: Tue Feb 18 22:17:12 2014
> New Revision: 262196
> URL: http://svnweb.freebsd.org/changeset/base/262196
> 
> Log:
>   De-virtualize pf_mtag_z [1]
>   Process V_pf_overloadqueue in vnet context [2]

Martin I saw you reverted it but it looks you are going to work on it
still, so one comment below.

...

> -SLIST_HEAD(pf_overload_head, pf_overload_entry);
> +struct pf_overload_head {
> +	SLIST_HEAD(, pf_overload_entry) head;
> +	struct vnet			*vnet;
> +};
>  static VNET_DEFINE(struct pf_overload_head, pf_overloadqueue);
>  #define V_pf_overloadqueue	VNET(pf_overloadqueue)

...

> -	SLIST_INIT(&V_pf_overloadqueue);
> +	SLIST_INIT(&V_pf_overloadqueue.head);
>  	TASK_INIT(&V_pf_overloadtask, 0, pf_overload_task, &V_pf_overloadqueue);
> +	V_pf_overloadqueue.vnet = curvnet;

Why not pass vnet as a context to pf_overload_task instead of
&V_pf_overloadqueue? Then you would not need this hack with storing a
vnet inside a vnet variable.

-- 
Mikolaj Golub



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