Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 03 Oct 2002 02:01:28 +0000 (GMT)
From:      attila! <attila@hun.org>
To:        Stefan Farfeleder <e0026813@stud3.tuwien.ac.at>
Cc:        current@FreeBSD.ORG, Poul-Henning Kamp <phk@FreeBSD.ORG>
Subject:   make -j N [was: Re: Junior Kernel Hacker page updated...]
Message-ID:  <20021003020128.Zidp90333@hun.org>

next in thread | raw e-mail | index | archive | help
    I use make -j 4 consistently (daily at least) building both
    the kernel and world on a Tyan 2642 1.2G SMP. j -4 drops
    buildworld in 29-31 minutes vs 38-42 minutes with no -j
    option and I have never seen the 'could sleep' message. When
    I did a recovery with a generic kernel, the buildworld time
    was somewhere above 50 in single CPU mode.

    I might suggest that you need to cross a speed threshold
    before the -j option makes a difference. I tried a -j 8 a
    couple times, but the gain was less than 5%.

    I might add, that in addition to a Tyan 2642 1.2G SMP, I do
    have 512M DDR 266 memory and dual SCSI III 160 MB/sec 10,000
    RPM 9G IBM 4ms access drives with swap on both drives --not
    used while compiling both kernel and world simultaneously--
    both at j -4.  Today's simultaneous build went down in 8
    minutes for buildkernel and 39 minutes for buildworld.

    GEOM next....

Sent: Wed, 2 Oct 2002 23:40:28 +0200

+ On Sat, Sep 14, 2002 at 12:17:53PM +0200, Poul-Henning Kamp wrote:
+ >
+ > This is just to note that I have updated the JKH page with a lot of new
+ > stuff, so if your coding-pencil itches:
+ >
+ > 	http://people.freebsd.org/~phk/TODO/
+
+ |Make -j improvement
+ |
+ |make(1) with -j option uses a select loop to wait for events, and every
+ |100msec it drops out to look for processes exited etc.  A pure "make
+ |buildworld" on a single-CPU machine is up to 25% faster that the best
+ |"make -j N buildworld" time on the same hardware.  Changing to timeout
+ |to be 10msec improves things about 10%.
+ |I think that make(1) should use kqueue(2) instead, since that would
+ |eliminate the need for timeouts.
+
+ Ok, here's what I came up with.  However, with the patch applied, each
+ 'make buildworld' on a SMP machine throws tons of
+
+ /freebsd/current/src/sys/vm/uma_core.c:1307: could sleep with "filedesc structure" locked from /freebsd/current/src/sys/kern/kern_event.c:959
+
+ at me and freezes badly at some point (no breaking into ddb possible).
+ This is totally repeatable.  Is anybody able to reproduce (and maybe
+ fix) this?
+
+ Regards,
+ Stefan Farfeleder


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021003020128.Zidp90333>