Interrupt Assignment on host
Hi all,
after several tests it seems that the interrupt assignment on the host systems influences the kvm performance drastically. If eth0, video and usb are on seperate interrupts the perfomance is way better than if they are shared (that means on the same one).
Normally this should not matter. But why is it within kvm? Does kvm somehow hook up into the interrupt service routines?
My guest is Windows XP SP3.
Best regards,
Erik
Quoted 9 lines · Erik Rull
Hi all,
after several tests it seems that the interrupt assignment on the host systems influences the kvm performance drastically. If eth0, video and usb are on seperate interrupts the perfomance is way better than if they are shared (that means on the same one).
Normally this should not matter. But why is it within kvm? Does kvm somehow hook up into the interrupt service routines?
No.
Quoted 1 line
My guest is Windows XP SP3.
Can you describe how performance suffers?
Please provide vmstat (for host int/sec) and "kvm_stat -l -f 'exits|irq_exits'" output.
Signature · 1 line
error compiling committee.c: too many arguments to function
Quoted 11 lines · Avi Kivity
Quoted 9 lines · Erik Rull
Hi all,
after several tests it seems that the interrupt assignment on the host systems influences the kvm performance drastically. If eth0, video and usb are on seperate interrupts the perfomance is way better than if they are shared (that means on the same one).
Normally this should not matter. But why is it within kvm? Does kvm somehow hook up into the interrupt service routines?
Quoted 8 lines
No.
Quoted 1 line
My guest is Windows XP SP3.
Can you describe how performance suffers?
Please provide vmstat (for host int/sec) and "
kvm_stat-l -f 'exits|irq_exits'" output.
I'm sorry, but my target system has no python installed. Any ideas how to do that manually?
- Erik
Quoted 7 lines · Erik Rull
Quoted 4 lines
Can you describe how performance suffers?
Please provide vmstat (for host int/sec) and "
kvm_stat-l -f 'exits|irq_exits'" output.I'm sorry, but my target system has no python installed. Any ideas how to do that manually?
Try the attached bash script. You'll want debugfs mounted on /sys/kernel/debug.
Signature · 1 line
error compiling committee.c: too many arguments to function
#!/bin/bash
p="/sys/kernel/debug/kvm"
old_exits=0
old_irq_exits=0
while :; do
exits="$(cat "$p/exits")"
irq_exits="$(cat "$p/irq_exits")"
d_exits=$((exits - old_exits))
d_irq_exits=$((irq_exits - old_irq_exits))
printf "%10d %10d\n" "$d_exits" "$d_irq_exits"
sleep 1
old_exits="$exits"
old_irq_exits="$irq_exits"done