From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: PCI passthrough with VT-d - native performance Date: Wed, 16 Jul 2008 18:22:33 +0300 Message-ID: <487E1239.6080909@qumranet.com> References: <1216214225-18030-1-git-send-email-benami@il.ibm.com> <487E076D.4050306@qumranet.com> <1216221530.31546.274.camel@cluwyn.haifa.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: amit.shah@qumranet.com, kvm@vger.kernel.org, Muli Ben-Yehuda , weidong.han@intel.com, anthony@codemonkey.ws To: Ben-Ami Yassour Return-path: Received: from il.qumranet.com ([212.179.150.194]:30279 "EHLO il.qumranet.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760448AbYGPPWf (ORCPT ); Wed, 16 Jul 2008 11:22:35 -0400 In-Reply-To: <1216221530.31546.274.camel@cluwyn.haifa.ibm.com> Sender: kvm-owner@vger.kernel.org List-ID: Ben-Ami Yassour wrote: >>> (with higher CPU utilization). >>> =20 >>> =20 >> How much higher? >> =20 > > Here are some numbers for running iperf -l 1M: > > e1000 NIC (behind a PCI bridge) > Bandwidth (Mbit/sec) CPU utilization > Native OS 771 18% > Native OS with VT-d 760 18%=20 > KVM VT-d 390 95%=20 > =EF=BB=BFKVM VT-d with direct mmio 770 84% > KVM emulated 57 100% =20 > > Comment: its not clear to me why the native linux can not get closer = to 1G for this NIC, > (I verified that its not external network issues). But clearly we sho= uldn't hope to=20 > get more then the host does with a KVM guest (especially if the guest= and host are the=20 > same OS as in this case...). > > e1000e NIC (onboard) > Bandwidth (Mbit/sec) CPU utilization > Native OS 915 18% > Native OS with VT-d 915 18% > =EF=BB=BFKVM VT-d with direct mmio 914 98% > > Clearly we need to try and improve the CPU utilization, but I think t= hat this is good enough=20 > for the first phase. > > =20 Agree; part of the higher utilization is of course not the fault of th= e=20 device assignment code, rather it is ordinary virtualization overhead. = =20 We'll have to tune this. --=20 error compiling committee.c: too many arguments to function