> Nevada Build 65 performace vs. Debian 4.0 performace is abysmal.
> 
> - boot up process is 30 seconds with Debian 4.0 / ~ 50 with Nevada

Yep, and it seems the 64-bit S-x86 kernel is worse than the 32-bit kernel,
at least on multiprocessor (e.g. dual core) machines.

The 64-bit S-x86 kernel appears to spend (waste?) 5-7 seconds inside
release_bootstrap(), depending on cpu speed:

http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/i86pc/os/startup.c#1961

On the amd64 platform, release_bootstrap() is quite slow.
With a 2.2Ghz AMD64 X2 cpu it needs 7 seconds to release the bootstrap code...

Time seems to be consumed inside a clear_boot_mappings(0, _userlimit)
call, which expands to clear_boot_mappings(0, 0xfffffd7fffe00000), 
and clear_boot_mappings seems to walk that address range in 4k page size
increments, with a cpu crosscall for each invalidated page.


I've not yet experimented with it, but it seems the 64-bit x86 kernel
has a VA hole / unused virtual memory between 0x00008000.00000000
and 0xFFFF8000.00000000, anyway:
    http://blogs.sun.com/nilsn/entry/kernel_address_space_layout_on

Would it be possible to save most of that 5-7 seconds spent in
release_bootstrap(), by adding some code to skip to the end of 
the VA hole, when we reach the VA hole base address?
 
 
This message posted from opensolaris.org
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to