A few days ago I wrote about how XenExpress was an exciting Xen distribution that was hindered by a few little bugs. In my case my IDE drives performed very slowly because DMA flags were not being set correctly. This was caused by the fact the generic-ide kernel module had been compiled directly into the Linux kernel (rather than being left as a module).
Thanks to a tip from Partha Ramachandran on the XenSource user forum I added ide0=0 ide1=0 to /boot/grub/grub.conf which stopped generic-ide from grabbing the two IDE channels. This allowed the amd74xx module to correctly connect to and configure the drives.
The only downside in this process was that /dev/hda and /dev/hdd became /dev/hde and /dev/hdh. This caused issues in the boot process as initially the kernel became aware of /dev/hda and expected it to still be present on the system. To get around this problem I changed the root=/-main flag in grub.conf to root=/dev/hde1 and the same in /etc/fstab. This meant the relevant line in /boot/grub/grub.conf went as follows:
module /boot/vmlinuz-22.214.171.124-xs126.96.36.1999.2650xen root=/dev/hde1 ro console=tty0 ide0=0 ide1=0
Whilst the root partition in /etc/fstab was defined as:
/dev/hde1 / ext3 defaults 1 1
After a reboot all went well. Both drives now operate at decent speeds and the whole system is noticeably faster.