Re: [PATCH bpf-next v3 03/18] bpf: hashtab memory usage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Hou Tao <houtao1@xxxxxxxxxx>

> htab_map_mem_usage() is introduced to calculate hashmap memory usage. In
> this helper, some small memory allocations are ignore, as their size is
> quite small compared with the total size. The inner_map_meta in
> hash_of_map is also ignored.
> 
> The result for hashtab as follows,
> 
> - before this change
> 1: hash  name count_map  flags 0x1  <<<< no prealloc, fully set
>         key 16B  value 24B  max_entries 1048576  memlock 41943040B
> 2: hash  name count_map  flags 0x1  <<<< no prealloc, none set
>         key 16B  value 24B  max_entries 1048576  memlock 41943040B
> 3: hash  name count_map  flags 0x0  <<<< prealloc
>         key 16B  value 24B  max_entries 1048576  memlock 41943040B
> 
> The memlock is always a fixed size whatever it is preallocated or
> not, and whatever the count of allocated elements is.
> 
> - after this change
> 1: hash  name count_map  flags 0x1    <<<< non prealloc, fully set
>         key 16B  value 24B  max_entries 1048576  memlock 117441536B
> 2: hash  name count_map  flags 0x1    <<<< non prealloc, non set
>         key 16B  value 24B  max_entries 1048576  memlock 16778240B
> 3: hash  name count_map  flags 0x0    <<<< prealloc
>         key 16B  value 24B  max_entries 1048576  memlock 109056000B
> 
> The memlock now is hashtab actually allocated.
> 
> The result for percpu hash map as follows,
> - before this change
> 4: percpu_hash  name count_map  flags 0x0       <<<< prealloc
>         key 16B  value 24B  max_entries 1048576  memlock 822083584B
> 5: percpu_hash  name count_map  flags 0x1       <<<< no prealloc
>         key 16B  value 24B  max_entries 1048576  memlock 822083584B
> 
> - after this change
> 4: percpu_hash  name count_map  flags 0x0
>         key 16B  value 24B  max_entries 1048576  memlock 897582080B
> 5: percpu_hash  name count_map  flags 0x1
>         key 16B  value 24B  max_entries 1048576  memlock 922748736B
> 
> At worst, the difference can be 10x, for example,
> - before this change
> 6: hash  name count_map  flags 0x0
>         key 4B  value 4B  max_entries 1048576  memlock 8388608B
> 
> - after this change
> 6: hash  name count_map  flags 0x0
>         key 4B  value 4B  max_entries 1048576  memlock 83889408B
> 
> Signed-off-by: Yafang Shao <laoar.shao@xxxxxxxxx>
> 
Acked-by: Hou Tao <houtao1@xxxxxxxxxx>




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux