From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id AE64458E8 for ; Tue, 10 Feb 2015 01:49:56 +0100 (CET) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP; 09 Feb 2015 16:44:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,547,1418112000"; d="scan'208";a="683387634" Received: from pgsmsx105.gar.corp.intel.com ([10.221.44.96]) by orsmga002.jf.intel.com with ESMTP; 09 Feb 2015 16:49:54 -0800 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by PGSMSX105.gar.corp.intel.com (10.221.44.96) with Microsoft SMTP Server (TLS) id 14.3.195.1; Tue, 10 Feb 2015 08:45:19 +0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.62]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.46]) with mapi id 14.03.0195.001; Tue, 10 Feb 2015 08:45:18 +0800 From: "Liang, Cunming" To: Olivier MATZ , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v4 01/17] eal: add cpuset into per EAL thread lcore_config Thread-Index: AQHQPoxi3bPvn2MkCEGzQGAgf6IU95zmsFqAgAGGOaD//9u5AIABBbjg Date: Tue, 10 Feb 2015 00:45:18 +0000 Message-ID: References: <1422491072-5114-1-git-send-email-cunming.liang@intel.com> <1422842559-13617-1-git-send-email-cunming.liang@intel.com> <1422842559-13617-2-git-send-email-cunming.liang@intel.com> <54D7C02F.1080308@6wind.com> <54D8E918.2040302@6wind.com> In-Reply-To: <54D8E918.2040302@6wind.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4 01/17] eal: add cpuset into per EAL thread lcore_config X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Feb 2015 00:49:57 -0000 > -----Original Message----- > From: Olivier MATZ [mailto:olivier.matz@6wind.com] > Sent: Tuesday, February 10, 2015 1:07 AM > To: Liang, Cunming; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v4 01/17] eal: add cpuset into per EAL thr= ead > lcore_config >=20 > Hi, >=20 > On 02/09/2015 12:33 PM, Liang, Cunming wrote: > >> On 02/02/2015 03:02 AM, Cunming Liang wrote: > >>> The patch adds 'cpuset' into per-lcore configure 'lcore_config[]', > >>> as the lcore no longer always 1:1 pinning with physical cpu. > >>> The lcore now stands for a EAL thread rather than a logical cpu. > >>> > >>> It doesn't change the default behavior of 1:1 mapping, but allows to > >>> affinity the EAL thread to multiple cpus. > >>> > >>> [...] > >>> diff --git a/lib/librte_eal/bsdapp/eal/eal_memory.c > >> b/lib/librte_eal/bsdapp/eal/eal_memory.c > >>> index 65ee87d..a34d500 100644 > >>> --- a/lib/librte_eal/bsdapp/eal/eal_memory.c > >>> +++ b/lib/librte_eal/bsdapp/eal/eal_memory.c > >>> @@ -45,6 +45,8 @@ > >>> #include "eal_internal_cfg.h" > >>> #include "eal_filesystem.h" > >>> > >>> +/* avoid re-defined against with freebsd header */ > >>> +#undef PAGE_SIZE > >>> #define PAGE_SIZE (sysconf(_SC_PAGESIZE)) > >> > >> I don't see the link with the patch. Should this go somewhere else? >=20 > Maybe you missed this one. [LCM] Yes, I missed this one. I agree to move to a separate one and remove = undef but rename the PAGE_SIZE to EAL_PAGE_SIZE. >=20 >=20 > >>> diff --git a/lib/librte_eal/common/include/rte_lcore.h > >> b/lib/librte_eal/common/include/rte_lcore.h > >>> index 49b2c03..4c7d6bb 100644 > >>> --- a/lib/librte_eal/common/include/rte_lcore.h > >>> +++ b/lib/librte_eal/common/include/rte_lcore.h > >>> @@ -50,6 +50,13 @@ extern "C" { > >>> > >>> #define LCORE_ID_ANY -1 /**< Any lcore. */ > >>> > >>> +#if defined(__linux__) > >>> + typedef cpu_set_t rte_cpuset_t; > >>> +#elif defined(__FreeBSD__) > >>> +#include > >>> + typedef cpuset_t rte_cpuset_t; > >>> +#endif > >>> + > >> > >> Should we also define RTE_CPU_SETSIZE? > >> For linux, should be included? > > [LCM] It uses the fix size cpuset, won't use CPU_ALLOC() to get the poi= nter of > cpuset. > > The RTE_CPU_SETSIZE always equal to sizeof(rte_cpuset_t). >=20 > The advantage of using CPU_ALLOC() is to avoid issues when the number > of core will be higher than 1024. I agree it's probably a bit early > to think about this, but it could happen soon :) >=20 >=20 > >> If I understand well, after the patch series, the user of > >> rte_thread_set_affinity() and rte_thread_get_affinity() are > >> supposed to use the macros from sched.h to access to this > >> cpuset parameter. So I'm wondering if it's not better to > >> use cpu_set_t from libc instead of redefining rte_cpuset_t. > >> > >> To reword my question: what is the purpose of redefining > >> cpu_set_t in rte_cpuset_t if we still need to use all the > >> libc API to access to it? > > [LCM] In linux the type is *cpu_set_t*, but in freebsd it's *cpuset_t*. > > The purpose of *rte_cpuset_t* is to make the consistent type definition= in EAL, > and to avoid lots of #ifdef for this diff. > > In either linux or freebsd, it still can use the MACRO in libc to set t= he > rte_cpuset_t. >=20 > OK, it makes sense then. I did not notice the difference between linux > and bsd.