From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ilya Maximets Subject: Re: [04/12] vhost: introduce postcopy's advise message Date: Fri, 28 Sep 2018 16:17:34 +0300 Message-ID: <20180928131524eucas1p174f4057454f99c035b2025c4a7c7dec1~YkqhekGjc3150031500eucas1p1X@eucas1p1.samsung.com> References: <20180926072705.22641-1-maxime.coquelin@redhat.com> <20180926072705.22641-5-maxime.coquelin@redhat.com> <20180927082608eucas1p17cd1d99e54134fb2a6de3151e52048f3~YNErH8Swu2138421384eucas1p1G@eucas1p1.samsung.com> <20180928103815eucas1p1ddb4141bea8b9ef965073a4706ccdaea~YihUJIT9-2460124601eucas1p1Z@eucas1p1.samsung.com> <20180928121334.GA6880@bricha3-MOBL.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Cc: Maxime Coquelin , dev@dpdk.org, tiwei.bie@intel.com, zhihong.wang@intel.com, jfreimann@redhat.com, dgilbert@redhat.com, Thomas Monjalon To: Bruce Richardson Return-path: Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 0DC671B4BA for ; Fri, 28 Sep 2018 15:15:26 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20180928131525euoutp013d0f146bffa1847f38a7a80bf7b9a2ee~Ykqisx4HB2183821838euoutp01D for ; Fri, 28 Sep 2018 13:15:25 +0000 (GMT) In-Reply-To: <20180928121334.GA6880@bricha3-MOBL.ger.corp.intel.com> Content-Language: en-GB 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 28.09.2018 15:13, Bruce Richardson wrote: > On Fri, Sep 28, 2018 at 01:40:25PM +0300, Ilya Maximets wrote: >> On 27.09.2018 11:28, Ilya Maximets wrote: >>> On 26.09.2018 10:26, Maxime Coquelin wrote: >>>> This patch opens a userfaultfd and sends it back to Qemu's >>>> VHOST_USER_POSTCOPY_ADVISE request. >>>> >>>> Signed-off-by: Dr. David Alan Gilbert >>>> Signed-off-by: Maxime Coquelin >>>> --- >>>> lib/librte_vhost/vhost.h | 2 ++ >>>> lib/librte_vhost/vhost_user.c | 37 +++++++++++++++++++++++++++++++++++ >>>> lib/librte_vhost/vhost_user.h | 3 ++- >>>> 3 files changed, 41 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h >>>> index 25ffd7614..21722d8a8 100644 >>>> --- a/lib/librte_vhost/vhost.h >>>> +++ b/lib/librte_vhost/vhost.h >>>> @@ -363,6 +363,8 @@ struct virtio_net { >>>> int slave_req_fd; >>>> rte_spinlock_t slave_req_lock; >>>> >>>> + int postcopy_ufd; >>>> + >>>> /* >>>> * Device id to identify a specific backend device. >>>> * It's set to -1 for the default software implementation. >>>> diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c >>>> index a9b429598..bdfe2cac0 100644 >>>> --- a/lib/librte_vhost/vhost_user.c >>>> +++ b/lib/librte_vhost/vhost_user.c >>>> @@ -24,9 +24,13 @@ >>>> #include >>>> #include >>>> #include >>>> +#include >>>> +#include >>> >>> Maybe we need compile time check for this header existence? >>> Otherwise, this will bump minimal kernel version for default linux build >>> to something like 4.3. >> >> We'll need a config option here (disabled by default) and guard all >> the postcopy related code. >> Meson build will be able to detect the header file and enable >> the config if possible. Like this: >> >> lib/librte_vhost/meson.build: >> if cc.has_header('linux/userfaultfd.h') >> dpdk_conf.set10('RTE_LIBRTE_VHOST_POSTCOPY', true) > > Are you sure you want 'set10' rather than 'set'. Set is probably easier > because it ensures no define on false, while set10 has a define of 0. This > has caught me out before. > > FYI, you can also avoid the if by putting the condition into the define: > > dpdk_conf.set('RTE_LIBRTE_VHOST_POSTCOPY', cc.has_header('...')) Sure, this variant looks better. Thanks for suggestions. I just copied my version from the similar code for 'RTE_HAS_LIBNUMA'. Best regards, Ilya Maximets.