Improving the kernel/i386 timecounter performance (GSoC proposal)

Prashant Vaibhav prashant.vaibhav at gmail.com
Fri Mar 27 13:54:52 PDT 2009


For those interested, XNU sources are available on watson also:
http://fxr.watson.org/fxr/source/?v=xnu-1228 which doesn't need ADC login
and has good cross-referencing of symbols. Latest is from darwin 9.0
corresponding to osx 10.5.0; there were a lot of changes to the vm part in
10.5.6 update.


On Sat, Mar 28, 2009 at 12:46 AM, Chuck Swiger <cswiger at mac.com> wrote:

> 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-current mailing list