From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.droids-corp.org (zoll.droids-corp.org [94.23.50.67]) by dpdk.org (Postfix) with ESMTP id 3465A58F4 for ; Mon, 9 Feb 2015 18:52:22 +0100 (CET) Received: from was59-1-82-226-113-214.fbx.proxad.net ([82.226.113.214] helo=[192.168.0.10]) by mail.droids-corp.org with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1YKsZ0-0006nv-C1; Mon, 09 Feb 2015 18:56:08 +0100 Message-ID: <54D8F3C8.4000101@6wind.com> Date: Mon, 09 Feb 2015 18:52:08 +0100 From: Olivier MATZ User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.3.0 MIME-Version: 1.0 To: "Liang, Cunming" , "dev@dpdk.org" References: <1422491072-5114-1-git-send-email-cunming.liang@intel.com> <1422842559-13617-1-git-send-email-cunming.liang@intel.com> <1422842559-13617-15-git-send-email-cunming.liang@intel.com> <54D7C099.60009@6wind.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v4 14/17] mempool: add support to non-EAL thread 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: Mon, 09 Feb 2015 17:52:22 -0000 Hi, On 02/09/2015 03:41 PM, Liang, Cunming wrote: >>> #ifdef RTE_LIBRTE_MEMPOOL_DEBUG >>> -#define __MEMPOOL_STAT_ADD(mp, name, n) do { \ >>> - unsigned __lcore_id = rte_lcore_id(); \ >>> - mp->stats[__lcore_id].name##_objs += n; \ >>> - mp->stats[__lcore_id].name##_bulk += 1; \ >>> +#define __MEMPOOL_STAT_ADD(mp, name, n) do { \ >>> + unsigned __lcore_id = rte_lcore_id(); \ >>> + if (__lcore_id < RTE_MAX_LCORE) { \ >>> + mp->stats[__lcore_id].name##_objs += n; \ >>> + mp->stats[__lcore_id].name##_bulk += 1; \ >>> + } \ >> >> Does it mean that we have no statistics for non-EAL threads? >> (same question for rings and timers in the next patches) > [LCM] Yes, it is in this patch set, mainly focus on EAL thread and make sure no running issue on non-EAL thread. > For full non-EAL function, will have other patch set to enhance non-EAL thread as the 2nd step. OK >>> @@ -952,7 +955,8 @@ __mempool_get_bulk(struct rte_mempool *mp, void >> **obj_table, >>> uint32_t cache_size = mp->cache_size; >>> >>> /* cache is not enabled or single consumer */ >>> - if (unlikely(cache_size == 0 || is_mc == 0 || n >= cache_size)) >>> + if (unlikely(cache_size == 0 || is_mc == 0 || >>> + n >= cache_size || lcore_id >= RTE_MAX_LCORE)) >>> goto ring_dequeue; >>> >>> cache = &mp->local_cache[lcore_id]; >>> >> >> What is the performance impact of adding this test? > [LCM] By perf in unit test, it's almost the same. But haven't measure EAL thread and non-EAL thread share the same mempool. When you say "unit test", are you talking about mempool tests from "make test"? Do you have some numbers to share?