2014-12-02 08:44:05

by ZhangXiao

[permalink] [raw]
Subject: The DM_BUFIO_HASH_BITS is defined as 20, any plan to make it flexible?

Hi Experts,

See drivers/md/dm-bufio.c as below:
50 /*
51 * Buffer hash
52 */
53 #define DM_BUFIO_HASH_BITS 20
54 #define DM_BUFIO_HASH(block) \
55 ((((block) >> DM_BUFIO_HASH_BITS) ^ (block)) & \
56 ((1 << DM_BUFIO_HASH_BITS) - 1))
"drivers/md/dm-bufio.c" 1854L, 45375C

DM_BUFIO_HASH_BITS was defined as 20 and it maybe not fit for some
use case with limited resources. Do we have any plan to make it more
flexible? Like module parameter or something else?

Thanks
Xiao


2014-12-02 14:00:27

by Mike Snitzer

[permalink] [raw]
Subject: Re: The DM_BUFIO_HASH_BITS is defined as 20, any plan to make it flexible?

On Tue, Dec 02 2014 at 3:43am -0500,
zhangxiao <[email protected]> wrote:

> Hi Experts,
>
> See drivers/md/dm-bufio.c as below:
> 50 /*
> 51 * Buffer hash
> 52 */
> 53 #define DM_BUFIO_HASH_BITS 20
> 54 #define DM_BUFIO_HASH(block) \
> 55 ((((block) >> DM_BUFIO_HASH_BITS) ^ (block)) & \
> 56 ((1 << DM_BUFIO_HASH_BITS) - 1))
> "drivers/md/dm-bufio.c" 1854L, 45375C
>
> DM_BUFIO_HASH_BITS was defined as 20 and it maybe not fit for some
> use case with limited resources. Do we have any plan to make it more
> flexible? Like module parameter or something else?

No immediate plans.

2014-12-03 14:19:26

by Joe Thornber

[permalink] [raw]
Subject: Re: [dm-devel] The DM_BUFIO_HASH_BITS is defined as 20, any plan to make it flexible?

On Tue, Dec 02, 2014 at 09:00:17AM -0500, Mike Snitzer wrote:
> On Tue, Dec 02 2014 at 3:43am -0500,
> zhangxiao <[email protected]> wrote:
>
> > Hi Experts,
> >
> > See drivers/md/dm-bufio.c as below:
> > 50 /*
> > 51 * Buffer hash
> > 52 */
> > 53 #define DM_BUFIO_HASH_BITS 20
> > 54 #define DM_BUFIO_HASH(block) \
> > 55 ((((block) >> DM_BUFIO_HASH_BITS) ^ (block)) & \
> > 56 ((1 << DM_BUFIO_HASH_BITS) - 1))
> > "drivers/md/dm-bufio.c" 1854L, 45375C
> >
> > DM_BUFIO_HASH_BITS was defined as 20 and it maybe not fit for some
> > use case with limited resources. Do we have any plan to make it more
> > flexible? Like module parameter or something else?
>
> No immediate plans.

That hash table has been replaced with a red/black tree.

https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-for-3.19&id=4e420c452b11edf9d510c8180ac66f529e5b6206

2014-12-03 16:18:02

by Mike Snitzer

[permalink] [raw]
Subject: Re: The DM_BUFIO_HASH_BITS is defined as 20, any plan to make it flexible?

On Wed, Dec 03 2014 at 9:19am -0500,
Joe Thornber <[email protected]> wrote:

> On Tue, Dec 02, 2014 at 09:00:17AM -0500, Mike Snitzer wrote:
> > On Tue, Dec 02 2014 at 3:43am -0500,
> > zhangxiao <[email protected]> wrote:
> >
> > > Hi Experts,
> > >
> > > See drivers/md/dm-bufio.c as below:
> > > 50 /*
> > > 51 * Buffer hash
> > > 52 */
> > > 53 #define DM_BUFIO_HASH_BITS 20
> > > 54 #define DM_BUFIO_HASH(block) \
> > > 55 ((((block) >> DM_BUFIO_HASH_BITS) ^ (block)) & \
> > > 56 ((1 << DM_BUFIO_HASH_BITS) - 1))
> > > "drivers/md/dm-bufio.c" 1854L, 45375C
> > >
> > > DM_BUFIO_HASH_BITS was defined as 20 and it maybe not fit for some
> > > use case with limited resources. Do we have any plan to make it more
> > > flexible? Like module parameter or something else?
> >
> > No immediate plans.
>
> That hash table has been replaced with a red/black tree.
>
> https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-for-3.19&id=4e420c452b11edf9d510c8180ac66f529e5b6206

Ah yes, you'd think I'd have remembered that change. Thanks for keeping
me honest Joe!

2014-12-04 01:27:47

by ZhangXiao

[permalink] [raw]
Subject: Re: [dm-devel] The DM_BUFIO_HASH_BITS is defined as 20, any plan to make it flexible?

On 2014年12月03日 22:19, Joe Thornber wrote:
> On Tue, Dec 02, 2014 at 09:00:17AM -0500, Mike Snitzer wrote:
>> On Tue, Dec 02 2014 at 3:43am -0500,
>> zhangxiao <[email protected]> wrote:
>>
>>> Hi Experts,
>>>
>>> See drivers/md/dm-bufio.c as below:
>>> 50 /*
>>> 51 * Buffer hash
>>> 52 */
>>> 53 #define DM_BUFIO_HASH_BITS 20
>>> 54 #define DM_BUFIO_HASH(block) \
>>> 55 ((((block) >> DM_BUFIO_HASH_BITS) ^ (block)) & \
>>> 56 ((1 << DM_BUFIO_HASH_BITS) - 1))
>>> "drivers/md/dm-bufio.c" 1854L, 45375C
>>>
>>> DM_BUFIO_HASH_BITS was defined as 20 and it maybe not fit for some
>>> use case with limited resources. Do we have any plan to make it more
>>> flexible? Like module parameter or something else?
>>
>> No immediate plans.
>
> That hash table has been replaced with a red/black tree.
>
> https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=dm-for-3.19&id=4e420c452b11edf9d510c8180ac66f529e5b6206
>
>
Great Thanks!

Best Regards
Xiao