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
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.
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
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!
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