Re: PCI passthrough with VT-d - native performance

Ben-Ami Yassour
2008-07-17T06:25:04Z

On Wed, 2008-07-16 at 19:57 +0300, Avi Kivity wrote:
> Ben-Ami Yassour wrote:
> >
> >> That CPU utilization is extremely high and somewhat illogical if native
> >> w/vt-d has almost no CPU impact. Have you run oprofile yet or have any
> >> insight into where CPU is being burnt?
> >>
> >> What does kvm_stat look like? I wonder if there are a large number of
> >> PIO exits. What does the interrupt count look like on native vs. KVM
> >> with VT-d?
> >>
> >> Regards,
> >>
> >> Anthony Liguori
> >>
> >>
> >
> > These are all good points and questions, I agree that we need to take a deeper
> > look into the performance issues, but I think that we need to merge with
> > the main KVM tree first.
> >
>
> It would be good to get the host interrupt rate, to confirm that the
> host isn't flooded with interrupts. A deeper analysis can wait.
>
>

Here is an example of a kvm_stat while running iperf:
efer_reload 13 0
exits 11372838 58214
fpu_reload 709524 0
halt_exits 139306 0
halt_wakeup 3580 0
host_state_reload 5070783 29031
hypercalls 635636 1
insn_emulation 4306311 22289
insn_emulation_fail 0 0
invlpg 0 0
io_exits 978192 646
irq_exits 2795848 20879
irq_window 0 0
largepages 0 0
mmio_exits 15437 0
mmu_cache_miss 60299 0
mmu_flooded 43213 0
mmu_pde_zapped 49610 0
mmu_pte_updated 576608 1
mmu_pte_write 1203336 1
mmu_recycled 0 0
mmu_shadow_zapped 59348 0
nmi_window 0 0
pf_fixed 571970 0
pf_guest 103889 0
remote_tlb_flush 0 0
request_irq 0 0
signal_exits 1 0
tlb_flush 725366 7

The average host interrupt rate is around 22,200 per second.
Note: I would assume that this is bigger then ﻿irq_exits, because some
of the interrupts occur while we are in host mode so it does not cause
an exit.
BTW, the interrupt counter on the host and guest is very close.

Regards,
Ben