* [dpdk-dev] Doubt regarding DPDK hash Library implementation @ 2021-11-01 10:55 Syam Prasad N Pearson 2021-11-04 14:11 ` Thomas Monjalon 0 siblings, 1 reply; 6+ messages in thread From: Syam Prasad N Pearson @ 2021-11-01 10:55 UTC (permalink / raw) To: users, dev; +Cc: Syam Prasad N Pearson Dear Sir/Madam, I am a developer trying to get familiar with the DPDK hash library. I tried to make and use a hash table successfully. During the development I came across a variable /** Number of items per bucket. */ *#define RTE_HASH_BUCKET_ENTRIES 8* defined inside: dpdk-20.11.3/dpdk-stable-20.11.3/lib/librte_hash /rte_cuckoo_hash.h Why does the library take this value as *8*, is there any particular reason for this? what if it is 16,32... etc. I am using DPDK 20.11.3 LTS. Please help. -- Regards, Syam Pearson Syam Pearson Gadgeon Smart Systems m: +91-97460-44420 (India) w: www.gadgeon.com <https://link.aeusercontent.com/mt/lt/D78C05ADDA56BE856A051569556899538/1?targetURL=https%3A%2F%2Fwww.gadgeon.com%2F> www.delpheon.io <https://link.aeusercontent.com/mt/lt/D78C05ADDA56BE856A051569556899538/2?targetURL=https%3A%2F%2Fdelpheon.io%2F> <https://twitter.com/gadgeon> [image: www.linkedin.com/in/kirankumar-c-32349964] <http://www.linkedin.com/in/syam-prasad-n-pearson-4903b5a8> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] Doubt regarding DPDK hash Library implementation 2021-11-01 10:55 [dpdk-dev] Doubt regarding DPDK hash Library implementation Syam Prasad N Pearson @ 2021-11-04 14:11 ` Thomas Monjalon 2021-11-04 14:46 ` Kinsella, Ray 0 siblings, 1 reply; 6+ messages in thread From: Thomas Monjalon @ 2021-11-04 14:11 UTC (permalink / raw) To: Syam Prasad N Pearson Cc: users, dev, Yipeng Wang, Sameh Gobriel, Bruce Richardson, Vladimir Medvedkin +Cc hash lib maintainers 01/11/2021 11:55, Syam Prasad N Pearson: > Dear Sir/Madam, > I am a developer trying to get familiar with the DPDK hash library. I tried > to make and use a hash table successfully. > During the development I came across a variable > > /** Number of items per bucket. */ > *#define RTE_HASH_BUCKET_ENTRIES 8* > > defined inside: > dpdk-20.11.3/dpdk-stable-20.11.3/lib/librte_hash /rte_cuckoo_hash.h > > Why does the library take this value as *8*, is there any particular reason > for this? what if it is 16,32... etc. > > I am using DPDK 20.11.3 LTS. > > Please help. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] Doubt regarding DPDK hash Library implementation 2021-11-04 14:11 ` Thomas Monjalon @ 2021-11-04 14:46 ` Kinsella, Ray 2021-11-04 16:39 ` Medvedkin, Vladimir 0 siblings, 1 reply; 6+ messages in thread From: Kinsella, Ray @ 2021-11-04 14:46 UTC (permalink / raw) To: Thomas Monjalon, Syam Prasad N Pearson Cc: users, dev, Wang, Yipeng1, Gobriel, Sameh, Richardson, Bruce, Medvedkin, Vladimir I would guess it - I would say it is related to cache alignment. Assuming each entry is 8 bytes 😊 Ray K > -----Original Message----- > From: Thomas Monjalon <thomas@monjalon.net> > Sent: Thursday 4 November 2021 14:12 > To: Syam Prasad N Pearson <syam.pearson@gadgeon.com> > Cc: users@dpdk.org; dev@dpdk.org; Wang, Yipeng1 > <yipeng1.wang@intel.com>; Gobriel, Sameh <sameh.gobriel@intel.com>; > Richardson, Bruce <bruce.richardson@intel.com>; Medvedkin, Vladimir > <vladimir.medvedkin@intel.com> > Subject: Re: [dpdk-dev] Doubt regarding DPDK hash Library > implementation > > +Cc hash lib maintainers > > 01/11/2021 11:55, Syam Prasad N Pearson: > > Dear Sir/Madam, > > I am a developer trying to get familiar with the DPDK hash library. > I > > tried to make and use a hash table successfully. > > During the development I came across a variable > > > > /** Number of items per bucket. */ > > *#define RTE_HASH_BUCKET_ENTRIES 8* > > > > defined inside: > > dpdk-20.11.3/dpdk-stable-20.11.3/lib/librte_hash /rte_cuckoo_hash.h > > > > Why does the library take this value as *8*, is there any particular > > reason for this? what if it is 16,32... etc. > > > > I am using DPDK 20.11.3 LTS. > > > > Please help. > > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] Doubt regarding DPDK hash Library implementation 2021-11-04 14:46 ` Kinsella, Ray @ 2021-11-04 16:39 ` Medvedkin, Vladimir 2021-11-04 16:49 ` Thomas Monjalon 0 siblings, 1 reply; 6+ messages in thread From: Medvedkin, Vladimir @ 2021-11-04 16:39 UTC (permalink / raw) To: Kinsella, Ray, Thomas Monjalon, Syam Prasad N Pearson Cc: users, dev, Wang, Yipeng1, Gobriel, Sameh, Richardson, Bruce Hello, On 04/11/2021 15:46, Kinsella, Ray wrote: > I would guess it - I would say it is related to cache alignment. > Assuming each entry is 8 bytes 😊 > > Ray K > >> -----Original Message----- >> From: Thomas Monjalon <thomas@monjalon.net> >> Sent: Thursday 4 November 2021 14:12 >> To: Syam Prasad N Pearson <syam.pearson@gadgeon.com> >> Cc: users@dpdk.org; dev@dpdk.org; Wang, Yipeng1 >> <yipeng1.wang@intel.com>; Gobriel, Sameh <sameh.gobriel@intel.com>; >> Richardson, Bruce <bruce.richardson@intel.com>; Medvedkin, Vladimir >> <vladimir.medvedkin@intel.com> >> Subject: Re: [dpdk-dev] Doubt regarding DPDK hash Library >> implementation >> >> +Cc hash lib maintainers >> >> 01/11/2021 11:55, Syam Prasad N Pearson: >>> Dear Sir/Madam, >>> I am a developer trying to get familiar with the DPDK hash library. >> I >>> tried to make and use a hash table successfully. >>> During the development I came across a variable >>> >>> /** Number of items per bucket. */ >>> *#define RTE_HASH_BUCKET_ENTRIES 8* >>> >>> defined inside: >>> dpdk-20.11.3/dpdk-stable-20.11.3/lib/librte_hash /rte_cuckoo_hash.h >>> >>> Why does the library take this value as *8*, is there any particular >>> reason for this? what if it is 16,32... etc. >>> Yes, RTE_HASH_BUCKET_ENTRIES can be any power of 2. The reason for choosing 8 is a tradeoff between performance and memory. When it is equal to 8, the sizeof(struct rte_hash_bucket) equal to RTE_CACHE_LINE_SIZE, thus, there are no gaps in memory between the hash buckets due to their alignment. >>> I am using DPDK 20.11.3 LTS. >>> >>> Please help. >> >> > -- Regards, Vladimir ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] Doubt regarding DPDK hash Library implementation 2021-11-04 16:39 ` Medvedkin, Vladimir @ 2021-11-04 16:49 ` Thomas Monjalon 2021-11-06 23:23 ` Syam Prasad N Pearson 0 siblings, 1 reply; 6+ messages in thread From: Thomas Monjalon @ 2021-11-04 16:49 UTC (permalink / raw) To: Medvedkin, Vladimir Cc: Kinsella, Ray, Syam Prasad N Pearson, users, dev, Wang, Yipeng1, Gobriel, Sameh, Richardson, Bruce 04/11/2021 17:39, Medvedkin, Vladimir: > >> 01/11/2021 11:55, Syam Prasad N Pearson: > >>> /** Number of items per bucket. */ > >>> *#define RTE_HASH_BUCKET_ENTRIES 8* > >>> > >>> defined inside: > >>> dpdk-20.11.3/dpdk-stable-20.11.3/lib/librte_hash /rte_cuckoo_hash.h > >>> > >>> Why does the library take this value as *8*, is there any particular > >>> reason for this? what if it is 16,32... etc. > > Yes, RTE_HASH_BUCKET_ENTRIES can be any power of 2. > The reason for choosing 8 is a tradeoff between performance and memory. > When it is equal to 8, the sizeof(struct rte_hash_bucket) equal to > RTE_CACHE_LINE_SIZE, thus, there are no gaps in memory between the hash > buckets due to their alignment. That's a good comment to add in the code. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dpdk-dev] Doubt regarding DPDK hash Library implementation 2021-11-04 16:49 ` Thomas Monjalon @ 2021-11-06 23:23 ` Syam Prasad N Pearson 0 siblings, 0 replies; 6+ messages in thread From: Syam Prasad N Pearson @ 2021-11-06 23:23 UTC (permalink / raw) To: Thomas Monjalon Cc: Medvedkin, Vladimir, Kinsella, Ray, users, dev, Wang, Yipeng1, Gobriel, Sameh, Richardson, Bruce Thank you all. On Thu, Nov 4, 2021 at 10:19 PM Thomas Monjalon <thomas@monjalon.net> wrote: > 04/11/2021 17:39, Medvedkin, Vladimir: > > >> 01/11/2021 11:55, Syam Prasad N Pearson: > > >>> /** Number of items per bucket. */ > > >>> *#define RTE_HASH_BUCKET_ENTRIES 8* > > >>> > > >>> defined inside: > > >>> dpdk-20.11.3/dpdk-stable-20.11.3/lib/librte_hash /rte_cuckoo_hash.h > > >>> > > >>> Why does the library take this value as *8*, is there any particular > > >>> reason for this? what if it is 16,32... etc. > > > > Yes, RTE_HASH_BUCKET_ENTRIES can be any power of 2. > > The reason for choosing 8 is a tradeoff between performance and memory. > > When it is equal to 8, the sizeof(struct rte_hash_bucket) equal to > > RTE_CACHE_LINE_SIZE, thus, there are no gaps in memory between the hash > > buckets due to their alignment. > > That's a good comment to add in the code. > > > -- Regards, Syam Pearson Syam Pearson Gadgeon Smart Systems m: +91-97460-44420 (India) w: www.gadgeon.com <https://link.aeusercontent.com/mt/lt/D78C05ADDA56BE856A051569556899538/1?targetURL=https%3A%2F%2Fwww.gadgeon.com%2F> www.delpheon.io <https://link.aeusercontent.com/mt/lt/D78C05ADDA56BE856A051569556899538/2?targetURL=https%3A%2F%2Fdelpheon.io%2F> <https://twitter.com/gadgeon> [image: www.linkedin.com/in/kirankumar-c-32349964] <http://www.linkedin.com/in/syam-prasad-n-pearson-4903b5a8> ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-11-07 15:33 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-11-01 10:55 [dpdk-dev] Doubt regarding DPDK hash Library implementation Syam Prasad N Pearson 2021-11-04 14:11 ` Thomas Monjalon 2021-11-04 14:46 ` Kinsella, Ray 2021-11-04 16:39 ` Medvedkin, Vladimir 2021-11-04 16:49 ` Thomas Monjalon 2021-11-06 23:23 ` Syam Prasad N Pearson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).