Improving the kernel/i386 timecounter
performance (GSoC proposal)
Chuck Swiger
cswiger at mac.com
Fri Mar 27 13:16:05 PDT 2009
Hi, Scott & all--
On Mar 27, 2009, at 11:30 AM, Scott Long wrote:
> Robert Watson wrote:
>> On Fri, 27 Mar 2009, Scott Long 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 global for gettimeofday (and any other global data we can
>>> think of) and one per-process for static data like getpid/getgid.
>> FWIW, there are some variations in schemes across OS's -- one
>> extreme is the Linux approach, which actually exports a mini shared
>> library in ELF format on the shared page, providing implementations
>> of various services (such as entering system calls), time stuff,
>> etc. Less extreme are the shared pages offered on Mac OS X, etc.
>
> Yes, but I'd like to start somewhere, and considering that it's been
> impossible in _5_ years to get the 30 minutes of Peter or JeffR or JHB
> time to get the basic VM magic done, I'm keeping my expectations as
> modest as possible.
I'm not entirely sure how close the Mach/xnu and FreeBSD
implementations of pmap_* stuff are, but the xnu code for commpage
stuff is here:
http://www.opensource.apple.com/darwinsource/Current/xnu-1228.9.59/osfmk/i386/pmap.c
[pmap_commpage32_init(), pmap_commpage64_init()]
http://www.opensource.apple.com/darwinsource/Current/xnu-1228.9.59/osfmk/i386/commpage/
[all :-)]
http://www.opensource.apple.com/darwinsource/Current/xnu-1228.9.59/osfmk/i386/commpage/commpage_gettimeofday.s
[but this one in particular]
http://www.opensource.apple.com/darwinsource/Current/xnu-1228.9.59/osfmk/vm/vm_shared_region.c
[cf "COMM PAGE" comments, vm_commpage_init()]
http://www.opensource.apple.com/darwinsource/Current/xnu-1228.9.59/bsd/kern/kern_fork.c
[fork_create_child(), procdup(), uses of pmap_map_sharedpage()]
[ ADC login might be needed, otherwise I think rwatson has been
importing xnu periodically for TrustedBSD or other work, and might be
able to provide similar pointers... ]
Regards,
--
-Chuck
More information about the freebsd-hackers
mailing list