Sunday October 30, 2005 at 04:06
Subject: (Ab)using a new Athlon X2 3800+: X and Xen Together
Keywords:
Hardware, Technical
Posted by: Sean Reifschneider
Dr. Anthony Earl this week and got an Athlon X2 3800+ dual-core box.
I expressed some interest in poking at it to run some particular tests
against it, and he was gracious enough to invite some of us Hacking Society
geeks over to poke it with a poin-ted stick. It was a very successful
afternoon, and made delightful use of the "fall back" daylight savings time
hour.
Ant had found an Antec case that's fairly nice looking, a good size
for holding what he wanted in it, and was under $60 without power-supply.
Once of the neat things about it that I hadn't seen before was a hole in
the side of the case with a duct to get air directly from the outside to
the CPU.
It's a pretty nice case, but I'm actually kind of glad that I
chose a different case for a recent computer setup I did at home. Ant's
case can handle the SATA drive enclosure, because of the depth of the case.
Mine can't, so the enclosure sticks out about 3 inches at the front. My
case is quite a lot smaller though, it's meant to just take a Mini-ATX
motherboard. The Antec case is a monster, but beautiful. Of course, I
paid almost half of what he did, and that included the power supply.
I tried running memtest on it, and was a bit surprised by the
performance it was reporting. 16GB/sec for L1 cache, 4GB/sec for L2 (1M) and
2GB/sec. The P4 3GHz systems I've run it on show 21/16/2.6GB/sec
(respectively). Odd that there's a factor of 4 difference between the L2
access reported for the two CPUs. Of course, on a per-clock cycle basis,
the Athlon is faster at both L1 and main memory access. I realize that
memtest is not a benchmark, but it makes me wonder what the story is.
For those that don't know, that 3800+ is a 2GHz CPU. Also, the X2
3800+ only costs around $330, while the P4 3GHz costs around $180. So, per
core the Athlon is a less expensive CPU. I'll be getting a Dual-CPU
Opteron in next week, so it'll be interesting to see how the 2GHz CPU there
compares.
One thing to note is that even when we were doing a Xen build
(including several kernels), the CPU heat-sink was rather more cool than the
P4 systems I'm familiar with. The P4s are using these massive copper CPUs
with tons of air-flow (they're servers so they can be loud). The Athlon
dual-core was running what looked like an aluminum heat-sink with much lower
air-flow, and was still cooler. Again, far from scientific.
The real fun began when we started working on the things Ant really
wanted on the box: Xen running to allow the box to be partitioned into both
a desktop and a web server for for his personal sites. This poses several
challenges: Xen doesn't support 64-bit platforms, and it's ability to run X
in Domain 0 has been spotty.
My research a few months ago said that Xen plans to support 64-bit in
the 3.0 release, but stable is currently 2.x. However, SuSE is shipping
what it calls Xen 3.0 (which seems to be just a pre-release version), and
we were able to get it running on the test SuSE install that Ant did. We
found out later that SuSE's Xen kernel not only supported AMD64, but also
includes the sata_nv disc driver.
SuSE did not, on the other hand, support the frame buffer
graphics driver. We were using that for video because the on-board GeForce
6100 has some problems with the native NV driver for Linux. The VESA
driver worked just fine though.
Ant switched back to Ubuntu to try again, and did an install of Xen
there. Unfortunately, Ubuntu and Universe don't have packages for Xen, so
it was a manual install. We mucked around a while with trying initrds
before realizing that the stock Xen 3.0 beta release doesn't build kernel
drivers for the sata_nv driver, which is what his disc is connected to.
Let me just say that Ubuntu's mechanism for building initrds is not
good. First of all, in Breezy it just doesn't work. You have to do this
kludge with "-k" to keep the temporary file around, and then run "mkcramfs"
on that temp directory. Luckily, I came across that fix pretty early in my
searching, once I realized that Ubuntu used "mkinitrd" just like Fedora, it
just wasn't installed.
I will say that Fedora's mkinitrd is vastly superior though. It has
options for doing useful things like "--omit-scsi-modules" and
"--with=modulename", "--preload modulename", and even "--nopivot". The
"--omit-*" options are extremely useful if you're trying to build an initrd
for the Xen kernels which already have SCSI, LVM, and RAID modules built
into the kernel, but need initrd for the udev setup.
Eventually we tracked down that it didn't have the sata_nv driver.
This was partly masked because Ant had copied an example grub.conf entry
from a web-site which was using "root=/dev/hda1" instead of
"root=/dev/sda1". We finally decided to just rebuild Xen kernel from sources
with the sata_nv and FB drivers built into the kernel. We then rebooted
into Xen and X started up.
I noticed that performance of X was noticeably slower under Xen. We
quickly found that this was because Xen was running the Dom0 with only
123MB of RAM, so just starting X caused it to swap pretty hard. Upping
that to 700MB caused the performance to increase quite dramatically. In
fact, I'd have to say that Breezy is aptly named, no pun intended.
Starting Star Office and Firefox was fast. Of course, I mostly run
it on my laptop which has both a slower CPU and a much slower hard drive.
We then ran into problems with the Nvidia network board. Firstly
being that we didn't have the driver built into the kernel. When we did,
it would show up but without a MAC address and wouldn't send or receive
packets. I suggested we try a different network card, and after adding an
old 3Com Vortex board to the system it came up and was working great.
We did run into some weird problems though. One was with the Nvidia
Ethernet, of course. However, the weird one was that we rebooted with the
dom0 memory specified as 500MB, checked with "top" that it was 500, and
then started xend, and it suddenly was 123MB again. I could run "xm
set-mem" to push it back up to 400MB, but once I did that I couldn't change
it again, either up or down. A later reboot it came up with the full
memory and stayed that way without using mem-set. I don't know what the
story there was. I'm guessing a bug in Xen.
So, if you've been wanting to run Xen on a machine that you need X on,
it looks like it's getting to the point where it's usable. I hadn't tried
it in the past, but I know several people who have and had problems such as
lock-ups.
Xen is still a little rough, but SuSE is moving in the right direction
there. Fedora 4 shipped with Xen kernels, but I've never had any luck with
them. SuSE's worked, but were still missing some drivers. I expect that
over the next year we'll see Xen mature a lot, both it's own code (which
isn't too bad as it is) and with it's packaging for distributions.
(Post Reply)
(Post Reply)
| Comment |
Author:
Stephen Warren Subject: BIOS to configure NV MAC address |
Sometimes it seems that the BIOS on NFORCE machines "forgets" the MAC address. According the the NV Ethernet guys, this issue is caused by some kind of manufacturing issue at the motherboard vendor. I'm not convinced, but anyway...
If that was your issue, there is often an option in the BIOS to forcably override the MAC address that the system uses, rather than attempting to pull it from the EEPROM that's supposed to hold it.
What I've seen though is that the NIC works, but uses a default MAC such as 00044b808003, rather than outright not "having" a MAC.
Personally, I use the forcedeth driver (rather than the "official" nvnet) anytime I'm faced with an NFORCE board...
| Comment |
Author:
Sean Reifschneider Subject: We were using forcedeth |
We were using forcedeth as the driver from what I recall. If it forgot the MAC address though, I wouldn't expect it to start working just by sending some traffic out that port. I know that a late rev of the Tulip chipset had a bug with it's driver where it had exactly this problem. We didn't really explore it very far though.
On another system, I'm seeing some weirdness that I'm wondering if it's related to the sata_nv driver. Things were working fine originally with 2 and later 3 and 4 drives, but without using md RAID. I then did an install across 4 drives doing RAID1 and LVMing 2 RAID-1 partitions together. That had then seemed to be quite unhappy, where the first two drives performed about as normal, but the second two drives were running very slow and interrupting the system. The system would go to 100% wait CPU time, with no corresponding block I/O for several seconds, and RAID reconstruction on the second two discs was running at <1MB/sec, even with the rest of the system idle. 4 identical Hitachi SATA drives.
The real weird thing is that if I changed the drives order around, the performance issues followed the drives. Also, none of the drives performed the same, each one was different by something like 50%, reported using "badblocks" and eye-balling the numbers. 35MB, 20MB, 8MB and 3MB per second, roughly. I also tried a difference controller, using a different chipset and ran into similar results, so it must not be the sata_nv.
I'm not quite sure what the issue is yet. I've ordered a 3ware SATA controller that should be here soon, Hopefully I'll have more data then. Very weird results.
Sean