Hi,

Thanks to Q35/PCIe, we can now assign a large number of PCI devices to a
single VM, but it seems that Flatview rendering scales poorly (worse
than linear) when it has to deal with a large number of Memory Regions.

I've measured to cost of the pci_default_write_config() call at
virtio_write_config() for 1 PCI device vs. 100 PCI devices:

 - 1 PCI device

write_config: 1879 us
write_config: 1037 us
write_config: 1 us
write_config: 3 us
write_config: 1783 us
write_config: 2652 us
write_config: 1 us
write_config: 2 us
write_config: 1551 us

 - 100 PCI devices

write_config: 503963 us
write_config: 1 us
write_config: 493344 us
write_config: 0 us
write_config: 472946 us
write_config: 1 us
write_config: 495175 us
write_config: 1 us
write_config: 519312 us
write_config: 1 us

I guess this is a consequence of having to reset/rebuild the Flatview
when altering the PCI BAR regions.

Is this a known issue we're already working on?

Thanks,
Sergio (slp).

Reply via email to