Re: Change set based shallow clone
- From
Jon Smirl <jonsmirl@gmail.com>
- Date
- Sep 10, 2006, 18:00 UTC
- Message-ID
- <9e4733910609101100u515ae6e3seababd5780db715d@mail.gmail.com>
- In-Reply-To
- <20060910161007.8846.qmail@science.horizon.com>
On 10 Sep 2006 12:10:07 -0400, linux@horizon.com <linux@horizon.com> wrote:
> Actually, Linux has one of the fastest forks around, 100-200 us on > modern x86. For large executables, the shared page tables patch (is it > merged yet?) might help.
Here is the opfile of the kernel
3467889 18.9893 copy_page_range 2190416 11.9941 unmap_vmas 1156011 6.3300 page_fault 887794 4.8613 release_pages 860853 4.7138 page_remove_rmap 633243 3.4675 get_page_from_freelist 398773 2.1836 do_wp_page 344422 1.8860 __mutex_lock_slowpath 280070 1.5336 __handle_mm_fault 241713 1.3236 do_page_fault 238398 1.3054 __d_lookup 236654 1.2959 vm_normal_page
At the time this was measured parsecvs was executing millions of git command using system(command). 40% of the CPU was in the kernel, it stayed that way for hours.
18262372 41.0441 /home/good/vmlinux 5465741 12.2841 /usr/bin/cvs 4374336 9.8312 /lib/libc-2.4.so 3627709 8.1532 /lib/libcrypto.so.0.9.8a 2494610 5.6066 /usr/bin/oprofiled 2471238 5.5540 /usr/lib/libz.so.1.2.3 945349 2.1246 /usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so 933646 2.0983 /usr/local/bin/git-read-tree 758776 1.7053 /usr/local/bin/git-write-tree 642502 1.4440 /lib/ld-2.4.so 472903 1.0628 /nvidia 379254 0.8524 /usr/local/bin/git-pack-objects
Maybe we are looking at the wrong thing, it may be fast to fork a process, is it fast for the process to exit?
-- Jon Smirl jonsmirl@gmail.com