netdev
[Top] [All Lists]

Re: [PATCH 2.6.11-rc4-mm1] connector: Add a fork connector

To: Paul Jackson <pj@xxxxxxx>
Subject: Re: [PATCH 2.6.11-rc4-mm1] connector: Add a fork connector
From: Jesse Barnes <jbarnes@xxxxxxxxxxxx>
Date: Wed, 2 Mar 2005 09:48:26 -0800
Cc: Guillaume Thouvenin <guillaume.thouvenin@xxxxxxxx>, akpm@xxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, johnpol@xxxxxxxxxxx, elsa-devel@xxxxxxxxxxxxxxxxxxxxx, jlan@xxxxxxxxxxxx, gh@xxxxxxxxxx, efocht@xxxxxxxxxxxx, netdev@xxxxxxxxxxx, kaigai@xxxxxxxxxxxxx
In-reply-to: <20050302065152.79d9fba2.pj@xxxxxxx>
References: <1109240677.1738.196.camel@xxxxxxxxxxxxxxxxxxxxxxxx> <1109753292.8422.117.camel@xxxxxxxxxxxxxxxxxxxxxxxx> <20050302065152.79d9fba2.pj@xxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: KMail/1.7.2
On Wednesday, March 2, 2005 6:51 am, Paul Jackson wrote:
> Guillaume wrote:
> >   I also run the lmbench and results are send in response to another
> > thread "A common layer for Accounting packages". When fork connector is
> > turned off the overhead is negligible.
>
> Good.
>
> If I read this code right:
> > +static inline void fork_connector(pid_t parent, pid_t child)
> > +{
> > + static DEFINE_SPINLOCK(cn_fork_lock);
> > + static __u32 seq;   /* used to test if message is lost */
> > +
> > + if (cn_fork_enable) {
>
> then the code executed if the fork connector is off is a call to an
> inline function that tests an integer, finds it zero, and returns.
>
> This is sufficiently little code that I for one would hardly
> even need lmbench to be comfortable that fork() wasn't impacted
> seriously, in the case that the fork connector is disabled.

But if it *is* enabled, it takes a global lock on every fork.  That can't 
scale on a big multiprocessor if lots of CPUs are doing lots of forks...

Jesse

<Prev in Thread] Current Thread [Next in Thread>