Re: performance of virtual functions compared to virtio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2011-04-25 at 14:40 -0600, David Ahern wrote:
> 
> On 04/25/11 14:27, Alex Williamson wrote:
> > On Mon, 2011-04-25 at 13:49 -0600, David Ahern wrote:
> >>
> >> On 04/25/11 13:29, Alex Williamson wrote:
> >>> So we're effectively getting host-host latency/throughput for the VF,
> >>> it's just that in the 82576 implementation of SR-IOV, the VF takes a
> >>> latency hit that puts it pretty close to virtio.  Unfortunate.  I think
> >>
> >> For host-to-VM using VFs is worse than virtio which is counterintuitive.
> > 
> > On the same host, just think about the data path of one versus the
> > other.  On the guest side, there's virtio vs a physical NIC.  virtio is
> > designed to be virtualization friendly, so hopefully has less context
> > switches in setting up and processing transactions.  Once the packet
> > leaves the assigned physical NIC, it has to come back up the entire host
> > I/O stack, while the virtio device is connected to an internal bridge
> > and bypasses all but the upper level network routing.
> 
> I get the virtio path, but you lost me on the physical NIC. I thought
> the point of VFs is to bypass the host from having to touch the packet,
> so the processing path with a VM using a VF would be the same as a non-VM.

In the VF case, the host is only involved in processing the packet on
it's end of the connection, but the packet still has to go all the way
out to the physical device and all the way back.  Handled on one end by
the VM and the other end by the host.

An analogy might be sending a letter to an office coworker in a
neighboring cube.  You could just pass the letter over the wall (virtio)
or you could go put it in the mailbox, signal the mail carrier, who
comes and moves it to your neighbor's mailbox, who then gets signaled
that they have a letter (device assignment).

Since the networks stacks are completely separate from one another,
there's very little difference in data path whether you're talking to
the host, a remote system, or a remote VM, which is reflected in your
performance data.  Hope that helps,

Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux