I'm out of ideas tinkering with this. If you have any advice, I can pick it up again. Lenovo and Linux are constants in this equation for me. I'll keep an eye open for good news from your side... or, at least, confirmation of the bad news.
Thanks for your help.
The problem is not the NIC. Our lab has installed a different make/model NIC and the problem is unchanged. I have a:
Only the first is able to transfer at line-rate. The others are transferring at ~10-15%
I can add one more observation: There does not appear to be a general degradation of transfer performance. There appears to be a ceiling. I did some testing with wrk2 and up to a point non-SEV guests both with and without IOMMU perform similarly. But, as the demand is ratcheted up, guests with IOMMU seem to hit a speed limit.
We can wrap this up. I moved one of my guests to an Intel box and enabled iommu there. I'm seeing the same performance issue on Intel. I'm not seeing it on s390, though. So, this must be a Ubuntu/QEMU/x86_64 thing.
Thanks for the update. We suggest looking into your full xml creating the VM to ensure the NIC is being properly defined.
Which is a reasonable thing to suggest, except the exemplar provided by libvirt.org is not different from what I am using.
Optimizing Linux for AMD EPYC™ 7002 Series Processors with SUSE Linux Enterprise 15 SP1
fixlocal wrote:
Optimizing Linux for AMD EPYC™ 7002 Series Processors with SUSE Linux Enterprise 15 SP1
I'm familiar with it. IOMMU is mentioned 4 times. Once in text, three other times in a sample configuration file.
"Finally, any device that uses 'virtio' needs to gain an XML element looking like: <driver iommu='on'/>"
The sample configuration file is not substantially different than either the libvirt.org exemplar or my own.