From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [dpdk-stable] [PATCH] eal/vfio: share the default container in multi process Date: Mon, 29 Oct 2018 01:17:47 +0100 Message-ID: <2151144.DLmmOzqKvU@xps> References: <20181003123925.6343-1-dariusz.stojaczyk@intel.com> <45f61fc2-ee13-e342-6f4d-0178df40c94d@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: stable@dpdk.org, "Burakov, Anatoly" , dev@dpdk.org, wuzhouhui250@gmail.com, pawelx.wodkowski@intel.com, gowrishankar.m@linux.vnet.ibm.com To: Darek Stojaczyk Return-path: In-Reply-To: <45f61fc2-ee13-e342-6f4d-0178df40c94d@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 05/10/2018 10:57, Burakov, Anatoly: > On 03-Oct-18 1:39 PM, Darek Stojaczyk wrote: > > So far each process in MP used to have a separate container > > and relied on the primary process to register all memsegs. > > > > Mapping external memory via rte_vfio_container_dma_map() > > in secondary processes was broken, because the default > > (process-local) container had no groups bound. There was > > even no way to bind any groups to it, because the container > > fd was deeply encapsulated within EAL. > > > > This patch introduces a new SOCKET_REQ_DEFAULT_CONTAINER > > message type for MP synchronization, makes all processes > > within a MP party use a single default container, and hence > > fixes rte_vfio_container_dma_map() for secondary processes. > > > >>From what I checked this behavior was always the same, but > > started to be invalid/insufficient once mapping external > > memory was allowed. > > > > Fixes: 73a639085938 ("vfio: allow to map other memory regions") > > Cc: anatoly.burakov@intel.com > > Cc: pawelx.wodkowski@intel.com > > Cc: gowrishankar.m@linux.vnet.ibm.com > > Cc: stable@dpdk.org > > > > While here, fix up the comment on rte_vfio_get_container_fd(). > > This function always opens a new container, never reuses > > an old one. > > > > Signed-off-by: Darek Stojaczyk > > --- > > > > > + if (internal_config.process_type == RTE_PROC_PRIMARY) { > > + /* if we were secondary process we would try requesting > > + * container fd from the primary, but we're the primary > > + * process so just exit here > > + */ > > + return -1; > > + } > > + > > + p->req = SOCKET_REQ_DEFAULT_CONTAINER; > > + strcpy(mp_req.name, EAL_VFIO_MP); > > strlcpy? > > Otherwise, > Reviewed-by: Anatoly Burakov Applied, thanks