From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 05D492BB9 for ; Tue, 31 May 2016 11:17:43 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP; 31 May 2016 02:17:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,395,1459839600"; d="scan'208";a="711475465" Received: from dhunt5-mobl.ger.corp.intel.com (HELO [10.237.220.49]) ([10.237.220.49]) by FMSMGA003.fm.intel.com with ESMTP; 31 May 2016 02:17:41 -0700 To: Jan Viktorin References: <1463665501-18325-3-git-send-email-david.hunt@intel.com> <20160523144530.290b8e97@pcviktorin.fit.vutbr.cz> Cc: dev@dpdk.org, olivier.matz@6wind.com, yuanhan.liu@linux.intel.com, pmatilai@redhat.com From: "Hunt, David" Message-ID: <574D56B5.8040009@intel.com> Date: Tue, 31 May 2016 10:17:41 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <20160523144530.290b8e97@pcviktorin.fit.vutbr.cz> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [dpdk-dev, v5, 2/3] app/test: test external mempool handler 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, 31 May 2016 09:17:44 -0000 Hi Jan, On 5/23/2016 1:45 PM, Jan Viktorin wrote: > On Thu, 19 May 2016 14:45:00 +0100 > David Hunt wrote: --snip-- >> + * Loop though all the element pointers and allocate a chunk of memory, then > s/though/through/ Fixed. >> +static struct rte_mempool_handler mempool_handler_custom = { >> + .name = "custom_handler", >> + .alloc = custom_mempool_alloc, >> + .free = custom_mempool_free, >> + .put = custom_mempool_put, >> + .get = custom_mempool_get, >> + .get_count = custom_mempool_get_count, >> +}; >> + >> +MEMPOOL_REGISTER_HANDLER(mempool_handler_custom); > What about to drop the rte_mempool_handler.name field and derive the > name from the variable name given to the MEMPOOL_REGISTER_HANDLER. > The MEMPOOL_REGISTER_HANDLER sould do some macro magic inside and call > > rte_mempool_handler_register(name, handler); > > Just an idea... Lets see if anyone else has any strong opinions on this :) >> + >> +/* >> * save the object number in the first 4 bytes of object data. All >> * other bytes are set to 0. >> */ >> @@ -479,6 +569,7 @@ test_mempool(void) >> { >> struct rte_mempool *mp_cache = NULL; >> struct rte_mempool *mp_nocache = NULL; >> + struct rte_mempool *mp_ext = NULL; >> >> rte_atomic32_init(&synchro); >> >> @@ -507,6 +598,27 @@ test_mempool(void) >> goto err; >> } >> >> + /* create a mempool with an external handler */ >> + mp_ext = rte_mempool_create_empty("test_ext", >> + MEMPOOL_SIZE, >> + MEMPOOL_ELT_SIZE, >> + RTE_MEMPOOL_CACHE_MAX_SIZE, 0, >> + SOCKET_ID_ANY, 0); >> + >> + if (mp_ext == NULL) { >> + printf("cannot allocate mp_ext mempool\n"); >> + goto err; >> + } >> + if (rte_mempool_set_handler(mp_ext, "custom_handler") < 0) { >> + printf("cannot set custom handler\n"); >> + goto err; >> + } >> + if (rte_mempool_populate_default(mp_ext) < 0) { >> + printf("cannot populate mp_ext mempool\n"); >> + goto err; >> + } >> + rte_mempool_obj_iter(mp_ext, my_obj_init, NULL); >> + > The test becomes quite complex. What about having several smaller > tests with a clear setup and cleanup steps? I guess that's something we can look at in the future. For the moment can we leave it? Thanks, Dave.