svn commit: r276747 - head/sys/netpfil/pf

Nikos Vassiliadis nvass at gmx.com
Wed Jan 7 21:32:24 UTC 2015


Hi,

On 01/07/15 21:46, Gleb Smirnoff wrote:
> On Tue, Jan 06, 2015 at 09:03:04AM +0000, Craig Rodrigues wrote:
> C> Author: rodrigc
> C> Date: Tue Jan  6 09:03:03 2015
> C> New Revision: 276747
> C> URL: https://svnweb.freebsd.org/changeset/base/276747
> C>
> C> Log:
> C>   Instead of creating a purge thread for every vnet, create
> C>   a single purge thread and clean up all vnets from this thread.
> C>
> C>   PR:                     194515
> C>   Differential Revision:  D1315
> C>   Submitted by:           Nikos Vassiliadis <nvass at gmx.com>
>
> I am not sure that this is a good idea. The core idea of VNETs
> is that they are isolated from each other. If we serialize purging,
> then vnets are strongly affecting each other.

That is true.

> AFAIU, from the PR there is some panic fixed. What is the actual bug
> and why couldn't it be fixed with having per-vnet thread?

I don't remember the exact bug, this was written in summer of 2013, but
the code that creates the threads seemed complex. The decision to use
one thread was based on the fact that a lot of resources are used when
a big number (100 let's say) of vnets is active. Purging already runs
10 times a second. Something between those two is better. Maybe,
creating threads up to a certain number and above that map new vnets
to existing threads?

Nikos


More information about the svn-src-head mailing list