From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 1B1111C100 for ; Wed, 4 Apr 2018 13:27:48 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Apr 2018 04:27:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,405,1517904000"; d="scan'208";a="44801430" Received: from aburakov-mobl.ger.corp.intel.com (HELO [10.252.51.73]) ([10.252.51.73]) by orsmga001.jf.intel.com with ESMTP; 04 Apr 2018 04:27:42 -0700 To: dev@dpdk.org Cc: Bruce Richardson , keith.wiles@intel.com, jianfeng.tan@intel.com, andras.kovacs@ericsson.com, laszlo.vadkeri@ericsson.com, benjamin.walker@intel.com, thomas@monjalon.net, konstantin.ananyev@intel.com, kuralamudhan.ramakrishnan@intel.com, louise.m.daly@intel.com, nelio.laranjeiro@6wind.com, yskoh@mellanox.com, pepperjo@japf.ch, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, olivier.matz@6wind.com, shreyansh.jain@nxp.com, gowrishankar.m@linux.vnet.ibm.com, Pawel Wodkowski References: <0de49c396f7e2c0651acb4cc4a575919234f4c8d.1522797505.git.anatoly.burakov@intel.com> From: "Burakov, Anatoly" Message-ID: Date: Wed, 4 Apr 2018 12:27:41 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <0de49c396f7e2c0651acb4cc4a575919234f4c8d.1522797505.git.anatoly.burakov@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v3 46/68] vfio: allow to map other memory regions 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, 04 Apr 2018 11:27:49 -0000 On 04-Apr-18 12:21 AM, Anatoly Burakov wrote: > Currently it is not possible to use memory that is not owned by DPDK to > perform DMA. This scenarion might be used in vhost applications (like > SPDK) where guest send its own memory table. To fill this gap provide > API to allow registering arbitrary address in VFIO container. > > Signed-off-by: Pawel Wodkowski > Signed-off-by: Anatoly Burakov > Signed-off-by: Gowrishankar Muthukrishnan > --- > There's a larger issue raised by this patch. We do support hotplug for VFIO devices, and VFIO will drop all maps whenever last device used by VFIO is unplugged. Since primary use case for this API is mapping non-DPDK-owned memory for DMA, this presents a problem, because we're not tracking the mapped areas anywhere, which means that on last device hot-unplug followed by first device hotplug event, whatever DMA maps user has set up, will be gone - only DPDK-owned memory will be remapped. One way we could solve it is to store user maps in a local tailq and remap those on hotplug. Another way would be to not solve it and just document this limitation - that using this API in conjunction with hotplug will result in undefined behavior. I would tend to favor the first way. -- Thanks, Anatoly