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_at_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=y() is to have > a= page in the kernel mapped read-only to all the user pr=cesses. Put &g= t; the kernel's idea of time > into this page. Then getting the= =ime becomes a simple read (OK, two > reads, to make sure that<= br>> no update =as happened in between). References 1. file://localhost/tmp/3D"maiReceived on Fri Mar 27 2009 - 20:14:17 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:45 UTC