From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C744DA0A05; Wed, 20 Jan 2021 15:54:59 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7189D140D3A; Wed, 20 Jan 2021 15:54:59 +0100 (CET) Received: from out0-145.mail.aliyun.com (out0-145.mail.aliyun.com [140.205.0.145]) by mails.dpdk.org (Postfix) with ESMTP id 891D6140D38 for ; Wed, 20 Jan 2021 15:54:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alibaba-inc.com; s=default; t=1611154494; h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type; bh=ZEeA7vlChIU/XX/RmUiwGBdhq1Utf7nnniqkF5Wuqpg=; b=Uau8+tjbCOjHsK2YR4HBbEuw0CSHic3WVwR2Ls0FpMlldYP4RJLzzI6TBLdt3ahOpuPOyS3DdpZH65eER1RHpcOJlJRTb2uwMjFC0j2GPm1uD0Q51sK/IJockZycdwnjZVKzTt3qRR1+witxgvjzzIkcLc1rMbBFd2KE5GDdJ78= X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R111e4; CH=green; DM=||false|; DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=ay29a033018047190; MF=huawei.xhw@alibaba-inc.com; NM=1; PH=DS; RN=8; SR=0; TI=SMTPD_---.JNLmZbv_1611154489; Received: from 30.43.73.118(mailfrom:huawei.xhw@alibaba-inc.com fp:SMTPD_---.JNLmZbv_1611154489) by smtp.aliyun-inc.com(127.0.0.1); Wed, 20 Jan 2021 22:54:50 +0800 To: Maxime Coquelin , ferruh.yigit@intel.com Cc: dev@dpdk.org, anatoly.burakov@intel.com, david.marchand@redhat.com, zhihong.wang@intel.com, chenbo.xia@intel.com, grive@u256.net References: <68ecd941-9c56-4de7-fae2-2ad15bdfd81a@alibaba-inc.com> <1603381885-88819-1-git-send-email-huawei.xhw@alibaba-inc.com> <1603381885-88819-4-git-send-email-huawei.xhw@alibaba-inc.com> From: "=?UTF-8?B?6LCi5Y2O5LyfKOatpOaXtuatpOWIu++8iQ==?=" Message-ID: <18871462-4d25-302a-2716-99ebec65c3ac@alibaba-inc.com> Date: Wed, 20 Jan 2021 22:54:46 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Subject: Re: [dpdk-dev] [PATCH v5 3/3] PCI: don't use vfio ioctl call to access PIO resource X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 2021/1/13 0:58, Maxime Coquelin wrote: > > On 1/12/21 10:37 AM, Maxime Coquelin wrote: >> bus/pci: ... >> >> On 10/22/20 5:51 PM, 谢华伟(此时此刻) wrote: >>> From: "huawei.xhw" >>> >>> VFIO should use the same way to map/read/write PORT IO as UIO, for >>> virtio PMD. >> Please provide more details in the commit message on why the way VFIO >> works today is wrong (The cover letter is lost once applied). ok >> >>> Signed-off-by: huawei.xhw >> Same comment about name format as on previous patches. >> >>> --- >>> drivers/bus/pci/linux/pci.c | 8 ++++---- >>> drivers/bus/pci/linux/pci_uio.c | 4 +++- >>> 2 files changed, 7 insertions(+), 5 deletions(-) >>> >>> diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c >>> index 0dc99e9..2ed9f2b 100644 >>> --- a/drivers/bus/pci/linux/pci.c >>> +++ b/drivers/bus/pci/linux/pci.c >>> @@ -687,7 +687,7 @@ int rte_pci_write_config(const struct rte_pci_device *device, >>> #ifdef VFIO_PRESENT >>> case RTE_PCI_KDRV_VFIO: >>> if (pci_vfio_is_enabled()) >>> - ret = pci_vfio_ioport_map(dev, bar, p); >>> + ret = pci_uio_ioport_map(dev, bar, p); >> Doesn't it create a regression with regards to needed capabilities? >> My understanding is that before this patch we don't need to call iopl(), >> whereas once applied it is required, correct? > I did some testing today, and think it is not a regression with para- > virtualized Virtio devices. > > Indeed, I thought it would be a regression with Legacy devices when > IOMMU is enabled and the program is run as non-root (IOMMU enabled > just to suport IOVA as VA mode). But it turns out para-virtualized > Virtio legacy device and vIOMMU enabled is not a supported configuration > by QEMU. > > Note that when noiommu mode is enabled, the app needs cap_sys_rawio, so > same as iopl(). No regression in this case too. > > That said, with real (non para-virtualized) Virtio device using PIO like > yours, doesn't your patch introduce a restriction for your device that > it will require cap_sys_rawio whereas it would not be needed? I don't catch the regression issue. With real virtio device(hardware implemented), if it is using MMIO, no cap_sys_rawio is required. If it is using PIO, iopl is required always. > Thanks, > Maxime > >> Regards, >> Maxime >>