[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] xen-unstable, winxp32 very poor performance on AMD FX-8150, I bisected and changeset is 24770:7f79475d3de7



I ran a bisect to find out when Windows XP 32 bit becomes unusably slow.
And I found the changeset that caused it.

==========
The problem:
==========

Windows 8 64 bit and 32 bit run fast and fine in the newest xen versions.

Windows XP 32 bit runs unusably slow in anything new that I built from
xen-unstable, but runs fast in 4.1.2 and 4.1.3 stable. While it is
running slow, "xm top" or "xl top" show cpu usage around 650% for the domu.

The bug might be AMD specific. I'm running an AMD FX-8150.

==========
The result:
==========

good: 24769:730f6ed72d70
bad: 24770:7f79475d3de7

The change was 8 months ago

changeset:   24770:7f79475d3de7
user:        Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>
date:        Fri Feb 10 16:07:07 2012 +0000
summary:     x86/mm: Make p2m lookups fully synchronized wrt modifications

==========
My hardware:
==========

AMD FX-8150
990 FX chipset

Here's a dmidecode: http://pastebin.com/XUZjmiVz

==========
My kernel:
==========

I compiled the for-linus branch of cmason's linux-btrfs git repo, around
August 11th (
git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git
for-linus )

peter:~/xen # uname -a
Linux peter 3.5.0-1-default+ #3 SMP Sat Aug 11 21:30:44 CEST 2012 x86_64
x86_64 x86_64 GNU/Linux

Here's the kernel config: http://pastebin.com/1GQbiFZE (only weird thing
I set was CONFIG_NR_CPUS=16 for no particular reason; default was 512 or
256)

==========
My Windows XP VM config:
==========

# grep -vE "^#|^$" windowsxp2
name="windowsxp2"
description="None"
uuid="292b0651-9913-2459-5cfa-fb828f9c4314"
memory=4096
maxmem=4096
vcpus=7
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"
localtime=1
keymap="en-us"
builder="hvm"
device_model="/usr/lib/xen/bin/qemu-dm"
kernel="/usr/lib/xen/boot/hvmloader"
boot="c"
disk=[ 'phy:/dev/data/winxp1_disk1,hda,w',
'file:/var/lib/xen/winxp1_disk2.raw,hdb,w', ]
vif=[ 'mac=00:16:3e:4e:c5:0c,bridge=br0,model=e1000', ]
sdl=0
vnc=1
vncunused=1
audio=0
soundhw='es1370'
viridian=1
usb=1
acpi=1
apic=0
pae=1
usbdevice='tablet'
serial="pty"
stdvga=1
gfx_passthru=0
# this is an AMD Radeon HD 6770 and it's HDMI audio, and 2 USB ports
pci = [ '04:00.0' , '04:00.1' , '00:12.0' , '00:12.2' ]
xen_platform_pci=1
pci_msitranslate=1


The Windows 8 32 and 64 bit configs I used are the same except changed
mac address, and different disk.

Whether or not I use sound or PCI passthrough doesn't (significantly)
affect performance.


==========
my build process, including how to hack the build so it actually compiles:
==========

# Install older libyajl-devel
    
    On openSUSE, this would be:
        
        zypper install libyajl1-devel

# Delete everything (except .hg)... prevents unclean builds from
breaking things. make distclean is not enough for very many builds.
cd xen-unstable.hg
rm -rf *
# If you have permission denied errors (caused by running make install
as root earlier), make sure to use chown and run rm again, or builds
will fail.

# Check out the revision
hg update --clean "${build}"

# hack up a troublesome Makefile that prevents builds
vim tools/libxl/Makefile
    add "-lyajl":
        at the end of all 4 "$(CC) ..." lines
        to LIBXL_LIBS
        to LIBXLU_LIBS
        to LIBUUID_LIBS
    
    (don't know which ones are important... but it works with all of it)

make distclean >/tmp/xen.distclean.log 2>&1 ; status=$? ; echo $status

if [ -e configure ]; then
    ./configure
else
    touch .config
fi
            
make dist >/tmp/xen.dist.log 2>&1 ; status=$? ; echo $status


==========
my install process
==========

To install the build, it's important to clean out old lib files...
uninstall doesn't get them all. If you miss these, xm, xl, etc. may fail
due to shared library issues.

Also, "make uninstall" deletes important system files it should not
(kernel, kernel modules, vm disks).

As it says in the "make help":
  uninstall        - attempt to remove installed Xen tools
                     (use with extreme care!)

Here is my process to solve the uninstall issues:
http://pastebin.com/nXCavFTp

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.