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>
