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>