From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by dpdk.org (Postfix) with ESMTP id 943501B137 for ; Wed, 13 Feb 2019 10:45:29 +0100 (CET) Received: by mail-wr1-f66.google.com with SMTP id c8so1704637wrs.4 for ; Wed, 13 Feb 2019 01:45:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=yCtvs/jtdM1vzdwrBDUQ/fb/RzdD4fzAZhma5B4cU4s=; b=c+1V2i9Yo3AHrGbICRzwVBB1RserQtVV0SW9NfHp8tg88mTf3JHlxXmaEuEtDZ36vO ePJWs3DdEU1RxaKVTQQIRP1fgjKCLjYMwxK5y7afxcp7SLYEFGM3rp/oYtUzmbguQqzN v5yGK+KHHUqdoEIPHqFcjnJ5y8lwDd8rDg6wb+N2QPLV7It2yRUnr6kwR0h54Dq7/Mf0 ilWm0QJl71HrGufmJqjFILGKEONA5393MrRjz9QrpHhkn69kCSrhstE0PcdzuOScKHiV gGnB5n6sN8xw+q7jlugmOyYZnWD0+uh3QPIwvrQ0ln3IrCXVjHfuTJ+ON2pEI1Jn28W6 QBLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=yCtvs/jtdM1vzdwrBDUQ/fb/RzdD4fzAZhma5B4cU4s=; b=HKN9eZKvfFK4gx6n3YvR4eWqR4wCCPMCDFqmFxAXZOa9SG45Lo+BLmjTVWe/H7jLkD 0y2dMxEq2WGcn2fTsrgYX3U4uLIc25gXoledzcUzQJFxj2oSUpBC2+b7ftEpeKukwvTu LI/lUC+Zemfh3ULkKc/peZ8n2JJ1cOVxO5CCkb4mzWLZnaQ5wNDJ/LhYi5NIeToM7pQF 28RMwEKA92d3R9k6lKx8dJNT2sM1f1PTlfVoGPdT8/VqHdG8rhDqmkVznpSq4U3uxwYC +cuVxW+pJyay8ushQMcmXBTcrevKh8qtsh+bjM7T6IiBQtA9V61/JKlpDN5sVHsZ+DS7 +VIQ== X-Gm-Message-State: AHQUAua/EofrgO1FdCCx3vj9n3KVszxk//8zq7WFBtgLx0+bOwwmb1// iymCU2G8rUzebJPMEWI3jBktog== X-Google-Smtp-Source: AHgI3IYXQeI/NBHscSjXLNkrbJkCtUdmqv/Se6bhnkTihv/8IeuswAPvBs8b76wEaTQ/vWEkHn8p1A== X-Received: by 2002:adf:c54d:: with SMTP id s13mr6047404wrf.169.1550051129026; Wed, 13 Feb 2019 01:45:29 -0800 (PST) Received: from bidouze.vm.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id i13sm20900015wrm.86.2019.02.13.01.45.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 13 Feb 2019 01:45:27 -0800 (PST) Date: Wed, 13 Feb 2019 10:45:05 +0100 From: =?iso-8859-1?Q?Ga=EBtan?= Rivet To: Shahaf Shuler Cc: anatoly.burakov@intel.com, yskoh@mellanox.com, thomas@monjalon.net, ferruh.yigit@intel.com, nhorman@tuxdriver.com, dev@dpdk.org Message-ID: <20190213094505.d7ly2sundvmffiny@bidouze.vm.6wind.com> References: <0f98e0a06c535d58ac8d2c39645b07eb966ec5ec.1550048187.git.shahafs@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <0f98e0a06c535d58ac8d2c39645b07eb966ec5ec.1550048187.git.shahafs@mellanox.com> User-Agent: NeoMutt/20170113 (1.7.2) Subject: Re: [dpdk-dev] [PATCH 1/6] vfio: allow DMA map of memory for the default vfio fd X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Feb 2019 09:45:29 -0000 Hello Shahaf, On Wed, Feb 13, 2019 at 11:10:21AM +0200, Shahaf Shuler wrote: > Enable users the option to call rte_vfio_dma_map with request to map > to the default vfio fd. > > Signed-off-by: Shahaf Shuler > --- > lib/librte_eal/common/include/rte_vfio.h | 6 ++++-- > lib/librte_eal/linuxapp/eal/eal_vfio.c | 14 ++++++++++++-- > 2 files changed, 16 insertions(+), 4 deletions(-) > > diff --git a/lib/librte_eal/common/include/rte_vfio.h b/lib/librte_eal/common/include/rte_vfio.h > index cae96fab90..2a6827012f 100644 > --- a/lib/librte_eal/common/include/rte_vfio.h > +++ b/lib/librte_eal/common/include/rte_vfio.h > @@ -347,7 +347,8 @@ rte_vfio_container_group_unbind(int container_fd, int iommu_group_num); > * Perform DMA mapping for devices in a container. > * > * @param container_fd > - * the specified container fd > + * the specified container fd. In case of -1 the default container > + * fd will be used. I think #define RTE_VFIO_DEFAULT_CONTAINER_FD (-1) might help reading the code that will later call these functions. > * > * @param vaddr > * Starting virtual address of memory to be mapped. > @@ -370,7 +371,8 @@ rte_vfio_container_dma_map(int container_fd, uint64_t vaddr, > * Perform DMA unmapping for devices in a container. > * > * @param container_fd > - * the specified container fd > + * the specified container fd. In case of -1 the default container > + * fd will be used. > * > * @param vaddr > * Starting virtual address of memory to be unmapped. > diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.c b/lib/librte_eal/linuxapp/eal/eal_vfio.c > index c821e83826..48ca9465d4 100644 > --- a/lib/librte_eal/linuxapp/eal/eal_vfio.c > +++ b/lib/librte_eal/linuxapp/eal/eal_vfio.c > @@ -1897,7 +1897,12 @@ rte_vfio_container_dma_map(int container_fd, uint64_t vaddr, uint64_t iova, > return -1; > } > > - vfio_cfg = get_vfio_cfg_by_container_fd(container_fd); > + if (container_fd > 0) { Should it not be container_fd >= 0? This seems inconsistent with the doc above. Reading the code quickly, it's not clear that the container_fd==0 would be at vfio_cfgs[0], so this seems wrong. > + vfio_cfg = get_vfio_cfg_by_container_fd(container_fd); > + } else { > + /* when no fd provided use the default. */ > + vfio_cfg = &vfio_cfgs[0]; > + } Can you use: vfio_cfg = default_vfio_cfg; instead? Then the comment is redundant. Actually, to keep with my comment above, it might be better to simply have if (container_fd == RTE_VFIO_DEFAULT_CONTAINER_FD) vfio_cfg = default_vfio_cfg; else vfio_cfg = get_vfio_cfg_by_group_num(container_fd); > if (vfio_cfg == NULL) { > RTE_LOG(ERR, EAL, "Invalid container fd\n"); > return -1; > @@ -1917,7 +1922,12 @@ rte_vfio_container_dma_unmap(int container_fd, uint64_t vaddr, uint64_t iova, > return -1; > } > > - vfio_cfg = get_vfio_cfg_by_container_fd(container_fd); > + if (container_fd > 0) { > + vfio_cfg = get_vfio_cfg_by_container_fd(container_fd); > + } else { > + /* when no fd provided use the default. */ > + vfio_cfg = &vfio_cfgs[0]; > + } > if (vfio_cfg == NULL) { > RTE_LOG(ERR, EAL, "Invalid container fd\n"); > return -1; > -- > 2.12.0 > -- Gaëtan Rivet 6WIND