From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34380) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fijE1-00077D-FY for qemu-devel@nongnu.org; Thu, 26 Jul 2018 12:34:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fijDy-0003xt-7w for qemu-devel@nongnu.org; Thu, 26 Jul 2018 12:34:49 -0400 Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:55390) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fijDx-0003x3-Sa for qemu-devel@nongnu.org; Thu, 26 Jul 2018 12:34:46 -0400 Received: by mail-wm0-x242.google.com with SMTP id f21-v6so2579135wmc.5 for ; Thu, 26 Jul 2018 09:34:45 -0700 (PDT) References: <1407239306.11199051.1530240887935.JavaMail.zimbra@redhat.com> <20180705194311-mutt-send-email-mst@kernel.org> <20180726145214.GD17777@stefanha-x1.localdomain> <488bdc8d-e36c-ad3e-f7b3-a45a78a99dda@gmail.com> <20180726191315-mutt-send-email-mst@kernel.org> From: Marcel Apfelbaum Message-ID: Date: Thu, 26 Jul 2018 19:34:41 +0300 MIME-Version: 1.0 In-Reply-To: <20180726191315-mutt-send-email-mst@kernel.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Subject: Re: [Qemu-devel] Question: SRIOV support over Win Hyper-V VM running in QEMU process on Linux host List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: Stefan Hajnoczi , Elijah Shakkour , Knut Omang , "qemu-devel@nongnu.org" , Tal Attaly On 07/26/2018 07:14 PM, Michael S. Tsirkin wrote: > On Thu, Jul 26, 2018 at 06:51:13PM +0300, Marcel Apfelbaum wrote: >> Hi >> >> On 07/26/2018 05:52 PM, Stefan Hajnoczi wrote: >>> On Thu, Jul 12, 2018 at 07:33:14AM +0000, Elijah Shakkour wrote: >>>> Hey, >>>> >>>> Our team is adding a NIC functional emulation to QEMU. >>>> One of the features we are adding to this NIC is SRIOV. >>>> >>>> Here is the error message I get when checking SRIOV support of our emulated NIC on Win2016 server (the hyper-v VM). >>>> " >>>> SR-IOV cannot be used on this system as the PCI Express hardware does not support Access Control Services (ACS) at any root port. >> QEMU's emulated PCI Express Root Ports do not support ACS yet, however I am >> not sure ACS is a prerequisite >> for SR-IOV. > Looks like windows blocks dev assignment in nested VMs without it. > Thinking about it, doesn't vfio do the same by default? vfio requires vIOMMU even for nested, as far as I know. They do have a "no-iommu" option, but I don't know how  it can help in this case. Elijah, what about implementing ACS for QEMU's generic PCIe Root Ports? Maybe is not too complicated and it seems like a handy feature to have anyway. Patches would be welcomed :) Thanks, Marcel > I think vfio has > a flag to override this though. > >> We would need ARI support for allowing more than 8VFs, but QEMU >> doesn't support that either (yet). >> >> Knut Omag has some working patches, he successfully implemented SR-IOV with >> QEMU, see: >>      https://github.com/knuto/qemu/tree/sriov_patches_v7 >> >> The code was not merged since we need at least a device with SR-IOV support >> to justify the addition. >> >>>> Contact your system vendor for further information. >>>> " >>> I'm not sure what the status of emulated SR-IOV is so I have CCed >>> Michael Tsirkin and Marcel Apfelbaum, the PCI maintainers in QEMU. >> Thanks, >> Marcel >> >>>> Could you please advise about what could be the issue here? >>>> >>>> BTW: I use same configuration (VM XML file attached) when running linux VM (RH7.2) image (instead of Win Hyper-V) over the same host and SRIOV is working for me there. >>>> >>>> Here the XML file I use to define the VM (our emulated NIC is added at the end of XML): >>>> " >>>> >>>> nst105 >>>> 0249a525-2ee2-432b-a1f5-a6db83b089a3 >>>> 8388608 >>>> 8388608 >>>> 8 >>>> >>>> /machine >>>> >>>> >>>> hvm >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> SandyBridge >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> destroy >>>> restart >>>> destroy >>>> >>>> >>>> >>>> >>>> >>>> /opt/qemu/bin/qemu-system-x86_64 >>>> >>>> >>>> >>>> >>>> >>>>
>>>> >>>> >>>>
>>>> >>>> >>>> >>>>
>>>> >>>> >>>> >>>>
>>>> >>>> >>>> >>>>
>>>> >>>> >>>>
>>>> >>>> >>>> >>>> >>>> >>>>
>>>> >>>> >>>> >>>> >>>>
>>>> >>>> >>>> >>>> >>>>
>>>> >>>> >>>> >>>>
>>>> >>>> >>>> >>>> >>>>
>>>> >>>> >>>> >>>> >>>> >>>> >>>>
>>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>>
>>>> >>>> >>>> >>>> >>>> >>>> >>>>