Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Sep 2008 16:53:54 +0200
From:      "Attilio Rao" <attilio@freebsd.org>
To:        "Andrey Chernov" <ache@nagual.pp.ru>, "Bob Bishop" <rb@gid.co.uk>,  current@freebsd.org
Subject:   Re: Is fork() hook ever possible?
Message-ID:  <3bbf2fe10809160753o7e5e8a78q7c6bd44c02bfd5c2@mail.gmail.com>
In-Reply-To: <20080916144502.GA39765@nagual.pp.ru>
References:  <20080916140319.GA34447@nagual.pp.ru> <BBB443F5-042C-444E-A2F4-592B66FF2003@gid.co.uk> <20080916144502.GA39765@nagual.pp.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
2008/9/16, Andrey Chernov <ache@nagual.pp.ru>:
> On Tue, Sep 16, 2008 at 03:38:16PM +0100, Bob Bishop wrote:
>  > Hi,
>
> >
>  > On 16 Sep 2008, at 15:03, Andrey Chernov wrote:
>  >
>  > > I need some sort of fork() hook to detect that pid is changed to re-
>  > > stir
>  > > ar4random() after that (in the child), simple flag variable with
>  > > child's pid is needed.
>  > >
>  > > Currently OpenBSD does almost that checking getpid() every time
>  > > arc4random() called, but it is very slow way to use getpid() syscall
>  > > repeatedly, about 12-15 times slower than just arc4random() without
>  > > getpid().
>  > >
>  > > Any ideas?
>  >
>
> > How about something hacky using mmap()/minherit()?
>
>  Could you please provide working low cost example to detect that we are in
>  the child (pid changed or something else)? Calling getpid() as OpenBSD
>  does definitely is very high cost. :(

An idea would be to implement a shared page between process and system
which exports such informations.
I'm sure we have a SoC project (2007) implementing this and perforce
branches for it, I'm just not sure how far it did end.

Thanks,
Attilio


-- 
Peace can only be achieved by understanding - A. Einstein



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