Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Mar 2009 16:14:06 -0500 (CDT)
From:      Sergey Babkin <babkin@verizon.net>
To:        scottl@samsco.org
Cc:        babkin@verizon.net, freebsd-hackers@freebsd.org, attilio@freebsd.org, phk@phk.freebsd.dk, freebsd-current@freebsd.org, prashant.vaibhav@gmail.com
Subject:   Re: Re: Improving the kernel/i386 timecounter performance (GSoC proposal)
Message-ID:  <33531707.21385.1238188446396.JavaMail.root@vms074.mailsrvcs.net>

next in thread | raw e-mail | index | archive | help

   Would not a normal mmap be duplicated on fork? I'd do it as a small
   pseudo-= driver
   that allows to mmap this page. Then libc would open this pseudo-d=
   evice and mmap it,
   either in the on-load handler or on the first call of=
   gettimeofday().  I think, that should
   be it, no special magic nece= ssary.
   The per-process is more difficult and would require the magic= :-) Or
   maybe
   no magic a s such: just mmap the file from the /proc files= ystem.
   Then on fork
   in the child unmap this page, open the new file, and= map it. vfork
   will still be tricky :-)
   It also means wasting an extra p= age per process.
   -SB
   Mar 27, 2009 12:51:56 PM, [1]scottl@samsc= o.org wrote:

     I've been talking about this for years. All I need is help with =
     the VM
     magic to create the page on fork. I also want two pages, one gl=
     obal
     for gettimeofday (and any other global data we can think of) and
     on= e
     per-process for static data like getpid/getgid.
     Scott
     Sergey Babkin wrote:
     > (Sorry for the top quoting). Probably the= best implementation of
     > gettimeofd=3Dy() is to have
     > a= page in the kernel mapped read-only to all the user
     pr=3Dcesses. Put
     &g= t; the kernel's idea of time
     > into this page. Then getting the= =3Dime becomes a simple read
     (OK, two
     > reads, to make sure that<= br>> no update =3Das happened in
     between).
     

References

   1. file://localhost/tmp/3D"mai=



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