Skip to content

asdf

Kees Cook cocci linux-doc linux-hardening linux-mm lkml llvm workflows 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v6 Latest5 patches 23 repliesIn review
  2. v54 patches 24 repliesSuperseded
  3. v42 patches 20 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v31 patch5 repliesSuperseded
v11 patch2 repliesSuperseded

Changes in v6 from the cover letter

- Drop _sz() helpers and simplify the resulting internals
- Split _flex() helper into its own patch to make review easier
- Explicitly use TYPE within the internals to make things more readable
- Move treewide change details into the cover letter
v5: https://lore.kernel.org/lkml/[email protected]/
v4: https://lore.kernel.org/lkml/[email protected]/
v3: https://lore.kernel.org/lkml/[email protected]/
v2: https://lore.kernel.org/lkml/[email protected]/
v1: https://lore.kernel.org/lkml/[email protected]/

Patches in v6 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5slab: Introduce kmalloc_obj() and familyDocumentation/process/deprecated.rst include/linux/slab.h+82 -07 replies
2/5checkpatch: Suggest kmalloc_obj family for sizeof allocationsscripts/checkpatch.pl+33 -60 replies
3/5compiler_types: Introduce __flex_counter() and familyinclude/linux/compiler_types.h include/linux/overflow.h+73 -02 replies
4/5slab: Introduce kmalloc_flex() and familyDocumentation/process/deprecated.rst include/linux/slab.h+55 -07 replies
5/5coccinelle: Add kmalloc_objs conversion scriptscripts/coccinelle/api/kmalloc_objs.cocci+109 -06 replies

Reviews trailers per patch

2 of 5 patches have a Reviewed-by or Acked-by.

PatchVlastimil Babka
1/5A-b
2/5
3/5
4/5A-b
5/5

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v6 thread

Cover letter [PATCH v6 0/5] asdf

Hi,

Here's an update for the kmalloc_obj() API proposal based on Linus's feedback. I normally wouldn't send this during the merge window, but I wanted to have it updated for discussion at LPC[1] (and here in email). Please see patches 1 and 4 for the bulk of the details. This is obviously not v6.19 material! :)

Replacing[2] all existing simple code patterns found via Coccinelle shows what could be replaced immediately (also saving roughly 1000 lines):

 7971 files changed, 19880 insertions(+), 20752 deletions(-)

This would take us from 24515 size-based k*alloc assignments to 7682:

$ git grep ' = kv\?[mzcv]alloc\(\|_array\)(' | wc -l
24515
$ git reset --hard HEAD^
HEAD is now at 8bccc91e6cdf treewide: kmalloc_obj conversion
$ git grep ' = kv\?[mzcv]alloc\(\|_array\)(' | wc -l
7682

This treewide change could be done at the end of the merge window just before -rc1 is released (as is common for treewide changes). Handling this API change in backports to -stable should be possible without much hassle by backporting the __flex_counter() patch and this patch, while taking conversions as-needed.

The impact on my bootable testing image size (with the treewide patch applied) is tiny. With both GCC 13 (no __counted_by support) and GCC 15 (with __counted_by) the images are actually very slightly smaller:

$ size -G gcc-boot/vmlinux.gcc*
      text       data        bss      total filename
  29975593   21527689   16601200   68104482 gcc-boot/vmlinux.gcc13-before
  29969263   21528663   16601112   68099038 gcc-boot/vmlinux.gcc13-after
  30555626   21291299   17086620   68933545 gcc-boot/vmlinux.gcc15-before
  30550144   21292039   17086540   68928723 gcc-boot/vmlinux.gcc15-after

Thanks!

-Kees

[1] https://lpc.events/event/19/contributions/2136/
[2] https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=dev/v6.18-rc6/alloc_obj/v5&id=f79ee96ad6a3cafdb274fe15d3ae067724e72327

v6:
- Drop _sz() helpers and simplify the resulting internals
- Split _flex() helper into its own patch to make review easier
- Explicitly use TYPE within the internals to make things more readable
- Move treewide change details into the cover letter
v5: https://lore.kernel.org/lkml/[email protected]/
v4: https://lore.kernel.org/lkml/[email protected]/
v3: https://lore.kernel.org/lkml/[email protected]/
v2: https://lore.kernel.org/lkml/[email protected]/
v1: https://lore.kernel.org/lkml/[email protected]/

Kees Cook (5):
slab: Introduce kmalloc_obj() and family
checkpatch: Suggest kmalloc_obj family for sizeof allocations
compiler_types: Introduce __flex_counter() and family
slab: Introduce kmalloc_flex() and family
coccinelle: Add kmalloc_objs conversion script

 scripts/checkpatch.pl                     |  39 ++++++--
 scripts/coccinelle/api/kmalloc_objs.cocci | 109 ++++++++++++++++++++++
 Documentation/process/deprecated.rst      |  31 ++++++
 include/linux/compiler_types.h            |  31 ++++++
 include/linux/overflow.h                  |  42 +++++++++
 include/linux/slab.h                      | 106 +++++++++++++++++++++
 6 files changed, 352 insertions(+), 6 deletions(-)
 create mode 100644 scripts/coccinelle/api/kmalloc_objs.cocci
Signature · 1 line
2.34.1