Monthly Archives: July 2008

gentoo prefix

Gentoo Prefix: PORTAGE_TMPDIR on NFS solution.

Gentoo Prefix allows you to place a “prefixed environment” wherever you would like. So, if you want to be able to access your prefix on a NFS network it would make sense to put the prefix in /home for example. I don’t have any solid numbers but I can imagine that the IO for the nfs server is pretty high when emerging. I would rather not suffer the penalties of compile on NFS but also I WOULD like to access PORTAGE_TMPDIR from any host. For the longest time, I was trying to think of a solution for this, that is..to not compile on a NFS share but also be able to see/access PORTAGE_TMPDIR no matter what host I am on in the network. This is a tricky situation that can be solved by setting PORTAGE_TMPDIR to another NFS mount which just happens to reside on the local machine!

I like it!!

My solution is to symlink $EPREFIX/var/tmp to the other NFS mount on the localhost. In my case, /net/$(hostname)/public/tmp.

UPDATE: The above ‘solution’ isn’t that great. It resulted in a total time increase of about 12%. However, making the symlink point to the local hard drive resulted in a total time decrease of about 31%. (on emerge -e system) Therefore, my latest recommendation is to create the symlink as described originally and override it with PORTAGE_TMPDIR set to the local path.

gentoo gentoo prefix

Gentoo: Portage’s new –jobs feature

Yesterday, zmedico wrote about building multiple packages in parallel with Portage-2.2_rc2. In Gentoo Prefix, we had a sneak peak to this feature, so I have had some time to play with it on my dual-quad core box. Some timing results that you may like:

emerge -e system (excluding sys-devel/gcc)

As a baseline:

With --jobs=1 and MAKEOPTS=16, load-average=9:
real 77m54.290s
user 41m46.086s
sys 29m14.598s

Because I was skeptical of what --jobs could really do, I decided to start with small number of parallel jobs:

With --jobs=3, MAKEOPTS=16, load-average=9:
real 61m30.181s
user 42m23.398s
sys 32m32.009s

While that was running, I noticed a very significant amount of time where my cores were idle, thanks to the handy little xfce-extra/xfce4-cpugraph widget. So, I turned --jobs up again:

With --jobs=5, MAKEOPTS=16, load-average=9:
real 58m5.388s
user 42m35.721s
sys 34m46.950s

Meh, not much improvement there. Surprising, but I suspect that I may be reaching the limits of the parallelization (dependencies, etc).

With --jobs=10, MAKEOPTS=16, load-average=9:
real 58m9.824s
user 42m43.525s
sys 37m57.234s

(And actually, a quick visual scan showed load averages staying below 4. Only a few times did I see the average above 8 )

Relying solely on load-average to keep my system usable:

With --jobs=40, MAKEOPTS=40 load-average=15:
real 58m45.106s
user 43m15.129s
sys 40m47.949s

The highest load average I visually saw was 23. But my load average was mostly always greater than 4, so this means that my procs are obviously getting used more but I must have hit another bottleneck.

NOTES:
-emerge -pe system was preformed before each time trial to assume the depgraph was in cache.
-84 packages total
-no ccache/distcc running

Conclusion: 20 minutes? ~30% speedup. Wow. Good! Quite significant even. Assuming you have cores/procs to spare, go ahead and crank up those --jobs. It is nice to be able to make the ./configure step not be the bottleneck anymore. ;-) I will keep testing and see if I can get the time down even farther (although, unlikely based on the last time trial).

Test requests? Please leave a comment.

life

Car Accident, sucks!

Well, after 6 years of driving I got into my first car accident with another car. That sucks!

I trying to change lanes and make my exit. I wasn’t all that close to the car in front of me, but when he decided to basically stop I ended up rear-ending him. =( It was a small SUV (Ford Escape) and the only real damage to my car was the front bumper and the front headlight. My bumper was knocked outta place but still attached, although it now has a nice hole in it from his exhaust. My headlight still works but the inner reflective part is cracked to pieces. Like I said, not much damage. No one was hurt except my wallet now ($600) and probably in the future (insurance).

Bummer. =( =(

gentoo

Gentoo: games-misc/wtf updated

Ok, I normally would not write about a version bump…but I like this one =)

Everyone’s most favorite utility to decipher slang on the internet has been updated. I took over maintainer-ship of this package because I noticed that the homepage of this ebuild pointed to a very non-descrip place and I wanted to find out who actually wrote this thing. I found out that it was a NetBSD utility and even better, it gets updated regularly. I now have a cron job alerting me if there is updates (thanks to Patrick at Gentoo Experimental for providing webspace and a easy to use devel area). So I will wait for more updates and release new version bumps when the time is right. Is there any acronym that you want to see in there?

skydiving

Canopy Relative Work

This past weekend, we had a CRW camp at Skydive Wissota. Hopefully I can get some pictures soon and update this post but I am pretty excited about CRW and will be going to a CRW boogie down near Milwaukee, WI in August.

gentoo prefix

Gentoo Prefix: gnome-light is now imported

All Gentoo Prefix users can now install gnome-light. (version. 2.22.0) I just imported it last night and it works! =) My WM of choice is xfce4, which is the first WM I ported to Prefix. However, if I ever choose to use GNOME, the prefix version will be nicer than the version 2.8.0 (!) that is installed on this OS. ;) Maybe I will import “gnome-heavy” next.

gentoo

Howto: Gentoo Guest OS in VirtualBox.

I spent a few tries on this as I have never used VirtualBox before. I think this may be randomly documented on the web but I am putting this here for archive purposes (myself) and in case other stumble upon this.

Step 1:
Create a VM in Virtual box and set the type as Gentoo Linux. I think anyone can handle this because there is a pretty nice wizard that helps you out. Some notables: Base Memory: 512, Boot hardisk: 20 gigs (8 is plenty for a minimal install and not much else).
Fire it up and it will ask for a boot disk. An .iso on the hard drive works fine. I choose to try out the new Gentoo Linux 2008.0 Minimal Install CD.

Step 2:
If you have never installed Gentoo before. Please follow the detailed install handbook. If you have installed Gentoo before, this is no different than any other Gentoo install, take your time and read the instructions!

Step 2a:
When you get to the compilation of your kernel step. You may have good luck with these notes:

1. Processor type and features

* Processor family->
* Enable Tickless System (Dynamic Ticks)
* Remove High Resolution Timer Support
* Remove Symmetric multi-processing support
* Subarchitecture Type->PC-compatible
* Remove Machine Check Exception
* Remove 64 bit Memory and IO resources
* High Memory Support (off)

2. Power Management Options

* Remove Suspend to RAM and standby
* Remove Hibernation
* Enable ACPI Support

3. Device Drivers

* Remove Macintosh device drivers
* Remove Virtualization

4. Device Drivers -> ATA/ATAPI/MFM/RLL support

* enable Generic PCI bus-master DMA support -> Intel PIIXn chipsets support
* enable PCI IDE chipset support

5. Device Drivers -> Serial ATA and Parallel ATA drivers

* enable Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support

6. Device Drivers -> Network device support

* Remove Ethernet (1000 Mbit)
* Remove Ethernet (10000 Mbit)

7. Device Drivers -> Ethernet device support -> Ethernet (10 or 100Mbit)

* Remove 3COM cards
* Remove “Tulip” family network device support
* Remove Broadcom 4400 ethernet support
* Remove nForce Ethernet support
* Remove Intel(R) PRO/100+ support
* Remove RealTek RTL-8139 C+ PCI Fast Ethernet Adapter Support
* Remove RealTek RTL-8129/8130/8139 PCI Fast Ethernet Adapter Support
* Enable AMD PCnet32 PCI support

8. Device Drivers -> Graphics support

* Remove Lowlevel video output switch controls
* Enable Support for frame buffer devices
* Enable Support for frame buffer devices -> VESA VGA graphics support

Step 3:
Continue with the install and when you get to the reboot step you should also unmount the boot cd from virtualbox.

Step 4:
Fire up your new VM and start configuring it how you like it. It should seem like a brand new Gentoo install which is pretty bare bones in itself. I would recommend picking a WM to install like GNOME, KDE, or Xfce4

Step 5:
Have fun. You may be interested in the ‘snapshot’ feature of virtualbox. I also hit “Save State’ when I close my VM. I guess you could analogue that to hibernating or ‘pausing’ as it literally comes back to where you were when you fire it up again.

life

July 4th Weekend

Welcome to my inaugural blog post.

I am home today, relaxing, after an eventful weekend up north in Twig, MN.

Perhaps the funnest thing was on July 4th morning when we went to a nearby town’s parade which highlighted a drunken clown band at the end. Quite interesting to say the least! (especially, when you have had quite a few drinks yourself before noon! A big “good job” goes out to Kel for buying drinks until we were both inebriated).

Then after we took a nap and woke up hungover, we went down to the Lake Superior shore and watched the city of Duluth’s fireworks show…pretty good.