From: Jerin Jacob <jerinjacobk@gmail.com> To: Dharmik Thakkar <dharmik.thakkar@arm.com> Cc: Olivier Matz <olivier.matz@6wind.com>, Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>, dpdk-dev <dev@dpdk.org>, nd <nd@arm.com>, Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>, "Ruifeng Wang (Arm Technology China)" <ruifeng.wang@arm.com> Subject: Re: [PATCH v2 1/1] mempool: implement index-based per core cache Date: Thu, 13 Jan 2022 15:48:54 +0530 Message-ID: <CALBAE1PVTorr+uV=ou=4Z-v6Kd9bAqb5QazGSrS5H1Nou6p4-Q@mail.gmail.com> (raw) In-Reply-To: <20220113053630.886638-2-dharmik.thakkar@arm.com> On Thu, Jan 13, 2022 at 11:06 AM Dharmik Thakkar <dharmik.thakkar@arm.com> wrote: > > Current mempool per core cache implementation stores pointers to mbufs > On 64b architectures, each pointer consumes 8B > This patch replaces it with index-based implementation, > where in each buffer is addressed by (pool base address + index) > It reduces the amount of memory/cache required for per core cache > > L3Fwd performance testing reveals minor improvements in the cache > performance (L1 and L2 misses reduced by 0.60%) > with no change in throughput > > Suggested-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> > Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> > --- > > /* Now fill in the response ... */ > +#ifdef RTE_MEMPOOL_INDEX_BASED_LCORE_CACHE Instead of having this #ifdef clutter everywhere for the pair, I think, we can define RTE_MEMPOOL_INDEX_BASED_LCORE_CACHE once, and have a different implementation. i.e #ifdef RTE_MEMPOOL_INDEX_BASED_LCORE_CACHE void x() { } void y() { } #else void x() { } void y() { } #endif call x(); y(); in the main code. > diff --git a/lib/mempool/rte_mempool_ops_default.c b/lib/mempool/rte_mempool_ops_default.c > index 22fccf9d7619..3543cad9d4ce 100644 > --- a/lib/mempool/rte_mempool_ops_default.c > +++ b/lib/mempool/rte_mempool_ops_default.c > @@ -127,6 +127,13 @@ rte_mempool_op_populate_helper(struct rte_mempool *mp, unsigned int flags, > obj = va + off; > obj_cb(mp, obj_cb_arg, obj, > (iova == RTE_BAD_IOVA) ? RTE_BAD_IOVA : (iova + off)); > +#ifdef RTE_MEMPOOL_INDEX_BASED_LCORE_CACHE This is the only place used in C code. Since we are going compile time approach. Can make this unconditional? That will enable the use of this model in the application, without recompiling DPDK. All application needs to #define RTE_MEMPOOL_INDEX_BASED_LCORE_CACHE 1 #include <rte_mempool.h> I believe enabling such structuring helps to avoid DPDK recompilation of code. > + /* Store pool base value to calculate indices for index-based > + * lcore cache implementation > + */ > + if (i == 0) > + mp->pool_base_value = obj; > +#endif > rte_mempool_ops_enqueue_bulk(mp, &obj, 1); > off += mp->elt_size + mp->trailer_size; > } > -- > 2.17.1 >
next prev parent reply other threads:[~2022-01-13 10:19 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-30 17:27 [dpdk-dev] [RFC] " Dharmik Thakkar 2021-10-01 12:36 ` Jerin Jacob 2021-10-01 15:44 ` Honnappa Nagarahalli 2021-10-01 17:32 ` Jerin Jacob 2021-10-01 17:57 ` Honnappa Nagarahalli 2021-10-01 18:21 ` Jerin Jacob 2021-10-01 21:30 ` Ananyev, Konstantin 2021-10-02 0:07 ` Honnappa Nagarahalli 2021-10-02 18:51 ` Ananyev, Konstantin 2021-10-04 16:36 ` Honnappa Nagarahalli 2021-10-30 10:23 ` Morten Brørup 2021-10-31 8:14 ` Morten Brørup 2021-11-03 15:12 ` Dharmik Thakkar 2021-11-03 15:52 ` Morten Brørup 2021-11-04 4:42 ` Dharmik Thakkar 2021-11-04 8:04 ` Morten Brørup 2021-11-08 4:32 ` Honnappa Nagarahalli 2021-11-08 7:22 ` Morten Brørup 2021-11-08 15:29 ` Honnappa Nagarahalli 2021-11-08 15:39 ` Morten Brørup 2021-11-08 15:46 ` Honnappa Nagarahalli 2021-11-08 16:03 ` Morten Brørup 2021-11-08 16:47 ` Jerin Jacob 2021-12-24 22:59 ` [PATCH 0/1] " Dharmik Thakkar 2021-12-24 22:59 ` [PATCH 1/1] " Dharmik Thakkar 2022-01-11 2:26 ` Ananyev, Konstantin 2022-01-13 5:17 ` Dharmik Thakkar 2022-01-13 10:37 ` Ananyev, Konstantin 2022-01-19 15:32 ` Dharmik Thakkar 2022-01-21 11:25 ` Ananyev, Konstantin 2022-01-21 11:31 ` Ananyev, Konstantin 2022-03-24 19:51 ` Dharmik Thakkar 2021-12-25 0:16 ` [PATCH 0/1] " Morten Brørup 2022-01-07 11:15 ` Bruce Richardson 2022-01-07 11:29 ` Morten Brørup 2022-01-07 13:50 ` Bruce Richardson 2022-01-08 9:37 ` Morten Brørup 2022-01-10 6:38 ` Jerin Jacob 2022-01-13 5:31 ` Dharmik Thakkar 2022-01-13 5:36 ` [PATCH v2 " Dharmik Thakkar 2022-01-13 5:36 ` [PATCH v2 1/1] " Dharmik Thakkar 2022-01-13 10:18 ` Jerin Jacob [this message] 2022-01-20 8:21 ` Morten Brørup 2022-01-21 6:01 ` Honnappa Nagarahalli 2022-01-21 7:36 ` Morten Brørup 2022-01-24 13:05 ` Ray Kinsella 2022-01-21 9:12 ` Bruce Richardson 2022-01-23 7:13 ` Wang, Haiyue
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CALBAE1PVTorr+uV=ou=4Z-v6Kd9bAqb5QazGSrS5H1Nou6p4-Q@mail.gmail.com' \ --to=jerinjacobk@gmail.com \ --cc=andrew.rybchenko@oktetlabs.ru \ --cc=dev@dpdk.org \ --cc=dharmik.thakkar@arm.com \ --cc=honnappa.nagarahalli@arm.com \ --cc=nd@arm.com \ --cc=olivier.matz@6wind.com \ --cc=ruifeng.wang@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ http://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git