From owner-freebsd-virtualization@freebsd.org Fri Jun 9 08:22:25 2017 Return-Path: Delivered-To: freebsd-virtualization@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2368BEF150 for ; Fri, 9 Jun 2017 08:22:25 +0000 (UTC) (envelope-from freebsd@omnilan.de) Received: from mx0.gentlemail.de (mx0.gentlemail.de [IPv6:2a00:e10:2800::a130]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6EC198346E for ; Fri, 9 Jun 2017 08:22:25 +0000 (UTC) (envelope-from freebsd@omnilan.de) Received: from mh0.gentlemail.de (mh0.gentlemail.de [78.138.80.135]) by mx0.gentlemail.de (8.14.5/8.14.5) with ESMTP id v598MMKK035256; Fri, 9 Jun 2017 10:22:22 +0200 (CEST) (envelope-from freebsd@omnilan.de) Received: from titan.inop.mo1.omnilan.net (s1.omnilan.de [217.91.127.234]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mh0.gentlemail.de (Postfix) with ESMTPSA id 2AA2B743; Fri, 9 Jun 2017 10:22:22 +0200 (CEST) Message-ID: <593A5AB1.7090301@omnilan.de> Date: Fri, 09 Jun 2017 10:22:09 +0200 From: Harry Schmalzbauer Organization: OmniLAN User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; de-DE; rv:1.9.2.8) Gecko/20100906 Lightning/1.0b2 Thunderbird/3.1.2 MIME-Version: 1.0 To: Anish CC: "freebsd-virtualization@freebsd.org" Subject: Re: PCIe passthrough really that expensive? References: <59383F5C.8020801@omnilan.de> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Greylist: ACL 129 matched, not delayed by milter-greylist-4.2.7 (mx0.gentlemail.de [78.138.80.130]); Fri, 09 Jun 2017 10:22:22 +0200 (CEST) X-Milter: Spamilter (Reciever: mx0.gentlemail.de; Sender-ip: 78.138.80.135; Sender-helo: mh0.gentlemail.de; ) X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2017 08:22:25 -0000 Bezüglich Anish's Nachricht vom 08.06.2017 14:35 (localtime): > Hi Harry, >>I thought I'd save these expensive VM_Exits by using the passthru path. > Completely wrong, is it? > > It depends on which processor you are using. For example APICv was > introduced in IvyBridge which enabled h/w assisted localAPIC rather than > using s/w emulated, bhyve supports it on Intel processors. > > Intel Broadwell introduced PostedInterrupt which enabled interrupt to > delivered to guest directly, bypassing hypervisor[2] for > passthrough devices. Emulated devices interrupt will still go through > hypervisor. That's very interesting, thanks so much! I wasn't ware that there were post VT-c improvements, guess I'll have to refresh my very basic knowledge urgently. I'm still usign IvyBridge (E3v2) with this "new" machine, but haven't ever heard/thought about APCIv! > You can verify capability using sysctl hw.vmm.vmx. What processor you > are using for these performance benchmarking? hw.vmm.vmx.vpid_alloc_failed: 0 hw.vmm.vmx.posted_interrupt_vector: -1 hw.vmm.vmx.cap.posted_interrupts: 0 hw.vmm.vmx.cap.virtual_interrupt_delivery: 0 hw.vmm.vmx.cap.invpcid: 0 hw.vmm.vmx.cap.monitor_trap: 1 hw.vmm.vmx.cap.unrestricted_guest: 1 hw.vmm.vmx.cap.pause_exit: 1 hw.vmm.vmx.cap.halt_exit: 1 hw.vmm.vmx.initialized: 1 hw.vmm.vmx.cr4_zeros_mask: 18446744073708017664 hw.vmm.vmx.cr4_ones_mask: 8192 hw.vmm.vmx.cr0_zeros_mask: 18446744071025197056 hw.vmm.vmx.cr0_ones_mask: 3 I did very simply 'time cp' with 8GB files over NFSv4, which come from ZFS-cache on the remote side and locally watching host+guest vmstat. > Can you run a simple experiment, assign pptdev interrupts to core that's > not running guest/vcpu? This will reduce #VMEXIT on vcpu which we know > is expensive. Interesting approach. But I have no idea how I should assign a PCIe specific core to a PCIe dev. Is it pptdev specific? The tunables in device.hints(5) can't be used for that, can they? It seems pptdev(0) couldn't get a man page yet, but I'll have a look at the sources, maybe I can find hints until earth has done it's job and present you the same nice sunshine I'm enjoying today :-) -harry