Mercurial running on a multicore CPU

Two Mercurial checkouts, running simultaneously on a dual-core CPU:

last pid: 77599;  load averages:  0.70,  0.54,  0.52   up 0+02:54:39  05:07:06
73 processes:  1 running, 71 sleeping, 1 zombie
CPU states: 17.3% user,  0.0% nice, 11.5% system,  1.9% interrupt, 69.2% idle
Mem: 178M Active, 83M Inact, 152M Wired, 2604K Cache, 59M Buf, 69M Free
Swap: 2300M Total, 52K Used, 2300M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE  C   TIME    CPU COMMAND
77087 keramida      1  -8    0 24324K 19756K piperd 0   0:07 13.09% python
77316 keramida      1  -8    0 16148K 11944K biord  1   0:04 13.09% python

This is a snapshot of the top(1) utility, running on a single CPU, dual-core FreeBSD system with SMP support. Note how each Python process has been scheduled to a different CPU core, and ‘idle’ reports the aggregate idle time of both CPU cores.

1. One of these Mercurial processes is running the bisect extension of Mercurial, on a converted (from CVS to Hg) repository of GNU Emacs, checking out the next batch of changes which I’m about to build-test.

The GNU Emacs repository contains now more than 80,000 changesets for around 2,500 files.

2. The other one is pulling changesets over SSH from the OpenSolaris “onnv-gate” repository, which Sun kindly makes available for everyone’s free use at:

ssh://anon@hg.opensolaris.org/hg/onnv/onnv-gate

The onnv-gate repository contains now a little over 6,200 changesets for more than 39,000 files.