Skip to content

mm, slab: Make kmalloc_info[] contain all types of names

Pengfei Li linux-mm lkml 7 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v6 Latest3 patches 2 repliesIn review
  2. v57 patches 3 repliesSuperseded
  3. v4 posting 2/27 patches 12 repliesSuperseded
Earlier versions · 4
VersionPostedPatchesRepliesStatus
v4 posting 1/27 patches0 repliesSuperseded
v34 patches3 repliesSuperseded
v24 patches2 repliesSuperseded
v15 patches13 repliesSuperseded

Changes in v6 from the cover letter

--
1. abandon patch 4-7 (Because there is not enough reason to explain that they are beneficial)

Patches in v6 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3mm, slab: Make kmalloc_info[] contain all types of namesmm/slab.c mm/slab.h mm/slab_common.c+51 -440 replies
2/3mm, slab: Remove unused kmalloc_size()include/linux/slab.h mm/slab.c mm/slab_common.c+5 -250 replies
3/3mm, slab_common: Use enum kmalloc_cache_type to iterate over kmalloc cachesmm/slab_common.c+3 -20 replies

Reviews trailers per patch

All 3 patches have a Reviewed-by or Acked-by.

PatchVlastimil BabkaRoman GushchinDavid Rientjes
1/3A-b A-b A-b
2/3A-b A-b A-b
3/3A-b A-b A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v6 thread

Cover letter [PATCH v6 0/3] mm, slab: Make kmalloc_info[] contain all types of names

Changes in v6
--
1. abandon patch 4-7 (Because there is not enough reason to explain that they are beneficial)

Changes in v5
--
1. patch 1/7:
- rename SET_KMALLOC_SIZE to INIT_KMALLOC_INFO
2. patch 5/7:
- fix build errors (Reported-by: kbuild test robot)
- make all_kmalloc_info[] static (Reported-by: kbuild test robot)
3. patch 6/7:
- for robustness, determine kmalloc_cache is !NULL in new_kmalloc_cache()
4. add ack tag from David Rientjes

Changes in v4
--
1. [old] abandon patch 4/4
2. [new] patch 4/7:
- return ZERO_SIZE_ALLOC instead 0 for zero sized requests
3. [new] patch 5/7:
- reorder kmalloc_info[], kmalloc_caches[] (in order of size)
- hard to split, so slightly larger
4. [new] patch 6/7:
- initialize kmalloc_cache[] with the same size but different types
5. [new] patch 7/7:
- modify kmalloc_caches[type][idx] to kmalloc_caches[idx][type]

Patch 4-7 are newly added, more information can be obtained from commit messages.

Changes in v3
--
1. restore __initconst (patch 1/4)
2. rename patch 3/4
3. add more clarification for patch 4/4
4. add ack tag from Roman Gushchin

Changes in v2
--
1. remove __initconst (patch 1/5)
2. squash patch 2/5
3. add ack tag from Vlastimil Babka

There are three types of kmalloc, KMALLOC_NORMAL, KMALLOC_RECLAIM and KMALLOC_DMA.

The name of KMALLOC_NORMAL is contained in kmalloc_info[].name, but the names of KMALLOC_RECLAIM and KMALLOC_DMA are dynamically generated by kmalloc_cache_name().

Patch1 predefines the names of all types of kmalloc to save the time spent dynamically generating names.

These changes make sense, and the time spent by new_kmalloc_cache() has been reduced by approximately 36.3%.

Time spent by new_kmalloc_cache()
(CPU cycles)
5.3-rc7 66264
5.3-rc7+patch 42188

Pengfei Li (3):
mm, slab: Make kmalloc_info[] contain all types of names mm, slab: Remove unused kmalloc_size()
mm, slab_common: Use enum kmalloc_cache_type to iterate over kmalloc
caches

 include/linux/slab.h | 20 -----------
 mm/slab.c            |  7 ++--
 mm/slab.h            |  2 +-
 mm/slab_common.c     | 99 ++++++++++++++++++++++++++++------------------------
 4 files changed, 58 insertions(+), 70 deletions(-)
Signature · 1 line
2.7.4