Re: [patch 2.6.12-rc1-mm4] fork_connector: add a fork connector

Evgeniy Polyakov
2005-04-11T07:32:45Z

On Sun, Apr 10, 2005 at 11:51:24PM -0700, Andrew Morton (akpm@osdl.org) wrote:
> Evgeniy Polyakov <johnpol@2ka.mipt.ru> wrote:
> >
> > On Sun, Apr 10, 2005 at 10:43:24PM -0700, Jay Lan (jlan@engr.sgi.com) wrote:
> > > I based my listen program on the fclisten.c posted by Kaigai Kohei
> > > with my own modification. Unfortunately i lost my test machine in the
> > > lab. I will recreate the listen program Monday. The original listener
> > > did not validate sequence number. It also prints length of data and
> > > sequence number of every message it receives. My listener prints
> > > only out-of-sequence error messages.
> > >
> > > The fork generator fork-test.c was yours? I called it fork-test
> > > and let it run continuously in while-loop:
> > >
> > > # while 1
> > > # ./fork-test 10000000
> > > # sleep 1
> > > # end
> > >
> > > I let it do 10,000,000 times of fork continuously while the system
> > > is running AIM7 and/or ubench.
> > >
> > > The original fclisten.c and fork-test.c are attached for your reference.
> >
> > It is pretty normal to see duplicated numbers in a fork test -
> > I observed it too, since counter is incremented without locks
> > we can catch situation when it is incremented simultaneously
> > on both processors, the latest version of the fork connector
> > from Guillaume contains processor id in the message and per cpu counters,
> > so one can destinguish messages which sequence numbers will flow
> > in a very similar way now.
>
> Oh come on, that's just daft. Evgeniy, put a lock in there and fix it up.

#ifndef FAST_AND_SUSPICIOUS
spin_lock(&fork_lock);
#endif
seq++;
#ifndef FAST_AND_SUSPICIOUS
spin_unlock(&fork_lock);
#endif

:)

--
Evgeniy Polyakov ( s0mbre )