Skip to contentSkip to conversation

Interrupt Assignment on host

DISCUSSION Erik Rull 3 participants 4 messages Oct 28, 2009 – Nov 8, 2009 KVM

lore
Share & tools
lore

Erik Rull

author
#0 lore raw

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

#1 lore raw
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
#2 lore raw
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

#3 lore raw
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