From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 44D21A0353; Wed, 13 Nov 2019 08:34:37 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id ED2801BE95; Wed, 13 Nov 2019 08:34:35 +0100 (CET) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by dpdk.org (Postfix) with ESMTP id F044D1BDAC for ; Wed, 13 Nov 2019 08:34:33 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1573630473; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X5gUCLtLfel0QhAJlelsd56sKa1JtV4SjV5AksyOWvM=; b=UYz2PJ11QwGe8QEHiZCCXdxec9YX5iw5KAF9mK8iDdCvW/y6nco+/B4BSAvhnl2AL1T7G2 EgVV/rlY18p2TE7qNQlsI9SS1Zb6QOws5DJicReLrNU/Fg5yZgxia598c+Nktcv30w3F8+ mtPTVRdxY4+iNghnqb5WsMoa/vcH9VQ= Received: from mail-vk1-f197.google.com (mail-vk1-f197.google.com [209.85.221.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-141-xB_fUi03MZK34iQ-G4z_Zw-1; Wed, 13 Nov 2019 02:34:32 -0500 Received: by mail-vk1-f197.google.com with SMTP id 131so711153vkb.11 for ; Tue, 12 Nov 2019 23:34:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=FxNwd+JuGwxdHjPHA1JuLAEW4koDwqYm6Ap9Qy+iAOU=; b=an7T0awS88ejA8gp0YDpnfnJ+y3FfkRsWdad6yWjqKxR27/RsVJTUUAQ/AYeE5ECs+ CnzDONGg8N6Agdx2jjNBVx/sEs8K9RLknagnYWNWvUW5k2fRwU4Z+EPJ9xKYK+dhMG1I 2Wc29hLdo6kvK7y5b5N8QG6vlaJpULiwlXGM8nwySTD9/YUEvHYpdhzt/Xv7j5b2p30K RixfYS5xImC3ZHd+lRjWeO+UcaAY9B73a73Ch551J8AcgkwZp9SDXJ+5RtfWDMVR/ceU 1WpDIMS03uXrYxt6K1o6MQYJmEva9x9/sspWV2uB9Nj1D20kKWuBigOz7ryhFsbEiClc mTEA== X-Gm-Message-State: APjAAAXAV6WVJBMTnhFzjZ3ZM2Nlot7wS9RhLFijU6HMU3eb5K+IELrq RwH420xXEtFNgfg0gHI/gGv5I2OEi54kFKgKroK/yAS9iWI0HuuUteO6GAZ/0XD2KEgHrXTQu8o K5sBMlhfxii++Sp/fRKk= X-Received: by 2002:a67:7d95:: with SMTP id y143mr1043261vsc.39.1573630471738; Tue, 12 Nov 2019 23:34:31 -0800 (PST) X-Google-Smtp-Source: APXvYqyzIZatedu57DL2Q2cRxgVzDs8Sc/5Ti44ijfMlQiiOtP4hsSLJUQJmIING5304yPGksrwLWWoKXpPL5ih2mZ4= X-Received: by 2002:a67:7d95:: with SMTP id y143mr1043245vsc.39.1573630471427; Tue, 12 Nov 2019 23:34:31 -0800 (PST) MIME-Version: 1.0 References: <1572680282-89785-1-git-send-email-dengxiaofeng@huawei.com> <78A93308629D474AA53B84C5879E84D24B0FF9AB@DGGEMM533-MBX.china.huawei.com> In-Reply-To: From: David Marchand Date: Wed, 13 Nov 2019 08:34:20 +0100 Message-ID: To: "Wangyu (Turing Solution Development Dep)" Cc: "dev@dpdk.org" , "ferruh.yigit@intel.com" , Linuxarm , "humin (Q)" , "Liyuan (Larry)" , dengxiaofeng , "Burakov, Anatoly" X-MC-Unique: xB_fUi03MZK34iQ-G4z_Zw-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [dpdk-dev] [PATCH] lib/eal: resolve address conflicts 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Mon, Nov 4, 2019 at 11:15 AM Burakov, Anatoly wrote: > > On 04-Nov-19 6:32 AM, Wangyu (Turing Solution Development Dep) wrote: > > > > Resolve address conflicts on 64K pagesize without base_virtaddr, which = cause new address conflicts in eal_get_virtual_area(). > > > > Signed-off-by: Beard-627 > > Acked-by: Eric wang > > Acked-by: Wei Hu > > Acked-by: Min Hu > > --- > > lib/librte_eal/linux/eal/eal.c | 22 ++++++++++++++++++++++ > > 1 file changed, 22 insertions(+) > > > > diff --git a/lib/librte_eal/linux/eal/eal.c b/lib/librte_eal/linux/eal/= eal.c index 946222c..c15d406 100644 > > --- a/lib/librte_eal/linux/eal/eal.c > > +++ b/lib/librte_eal/linux/eal/eal.c > > @@ -360,6 +360,28 @@ enum rte_iova_mode > > return -1; > > } > > > > + if ((getpagesize() =3D=3D RTE_PGSIZE_64K) && > > + (internal_config.base_virtaddr =3D=3D 0)) { > > + > > + munmap(rte_mem_cfg_addr, sizeof(*rte_config.mem_config)); > > + rte_mem_cfg_addr =3D (void *)RTE_PTR_ALIGN_CEIL( > > + (uintptr_t)rte_mem_cfg_addr, (size_t)RTE_PGSIZE_1= 6M); > > + rte_mem_cfg_addr =3D (void *)RTE_ALIGN_FLOOR( > > + (uintptr_t)rte_mem_cfg_addr - > > + sizeof(*rte_config.mem_config), sysconf(_SC_PAGE_= SIZE)); > > Please use RTE_PTR_ADD and RTE_PTR_DIFF to perform pointer arithmetic. > > > + > > + rte_mem_cfg_addr =3D mmap(rte_mem_cfg_addr, > > + sizeof(*rte_config.mem_config), > > + PROT_READ | PROT_WRITE, MAP_SHARED, mem_cfg_fd, 0= ); > > + > > + if (rte_mem_cfg_addr =3D=3D MAP_FAILED) { > > + close(mem_cfg_fd); > > + mem_cfg_fd =3D -1; > > + RTE_LOG(ERR, EAL, "Cannot mmap memory for rte_con= fig\n"); > > + return -1; > > + } > > + } > > + > > memcpy(rte_mem_cfg_addr, &early_mem_config, sizeof(early_mem_conf= ig)); > > rte_config.mem_config =3D rte_mem_cfg_addr; > > > > -- > > 1.8.3.1 > > > > The patch requires a bit more explanation - what exactly is the problem, > and why the solution is as above? Also, did you test it on the latest > master, since the eal_get_virtal_area() patches [1] got merged? > > [1] http://patches.dpdk.org/project/dpdk/list/?series=3D7043&state=3D* Please, do you still have an issue after the fix Anatoly pointed at? Thanks. --=20 David Marchand