[GIT PULL] slab for 5.17

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

 



Linus,

please pull the latest slab changes from

  git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git tags/slab-for-5.17

======================================

- Separate struct slab from struct page - an offshot of the page
  folio work. Struct page fields used by slab allocators are
  moved from struct page to a new struct slab, that uses the
  same physical storage. Similar to struct folio, it always is a
  head page. This brings better type safety, separation of large
  kmalloc allocations from true slabs, and cleanup of related
  objcg code.

- A SLAB_MERGE_DEFAULT config optimization.

======================================

The struct slab series was originally based on v5.16-rc3 and in linux-next
since beginning of December [1]. I decided to rebase to v5.16-rc6 after Stephen
reported a conflict with mm made it to mainline [2].

If possible I would also like to finish the removal of slab fields from struct
page within this merge window. It now depends on commits in the iommu tree that
remove iommu's usage of the 'freelist' field. I currently have a branch
for-5.17/struct-slab-part2 [3] that merges the iommu 'core' branch after the
main struct slab series and adds a commit on top. I wonder if it's ok to send a
pull request with that structure later (assuming after both this pull request
and iommu tree are merged) or should it rather be rebased on your tree's commit
that does the later merge of those two?

Thanks,
Vlastimil

[1] https://lore.kernel.org/all/20211203073949.3d081406@xxxxxxxxxxxxxxxx/
[2] https://lore.kernel.org/all/3ec33e65-1080-96be-f8bb-0012e3b87387@xxxxxxx/
[3] https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git/log/?h=for-5.17/struct-slab-part2

----------------------------------------------------------------
Hyeonggon Yoo (2):
      mm: Make SLAB_MERGE_DEFAULT depend on SL[AU]B
      mm/slob: Remove unnecessary page_mapcount_reset() function call

Matthew Wilcox (Oracle) (14):
      mm: Split slab into its own type
      mm: Convert [un]account_slab_page() to struct slab
      mm: Convert virt_to_cache() to use struct slab
      mm: Convert __ksize() to struct slab
      mm: Use struct slab in kmem_obj_info()
      mm: Convert check_heap_object() to use struct slab
      mm/slub: Convert detached_freelist to use a struct slab
      mm/slub: Convert kfree() to use a struct slab
      mm/slub: Convert print_page_info() to print_slab_info()
      mm/slub: Convert pfmemalloc_match() to take a struct slab
      mm/slob: Convert SLOB to use struct slab and struct folio
      mm/kasan: Convert to struct folio and struct slab
      zsmalloc: Stop using slab fields in struct page
      bootmem: Use page->index instead of page->freelist

Vlastimil Babka (18):
      mm: add virt_to_folio() and folio_address()
      mm/slab: Dissolve slab_map_pages() in its caller
      mm/slub: Make object_err() static
      mm/slub: Convert __slab_lock() and __slab_unlock() to struct slab
      mm/slub: Convert alloc_slab_page() to return a struct slab
      mm/slub: Convert __free_slab() to use struct slab
      mm/slub: Convert most struct page to struct slab by spatch
      mm/slub: Finish struct page to struct slab conversion
      mm/slab: Convert kmem_getpages() and kmem_freepages() to struct slab
      mm/slab: Convert most struct page to struct slab by spatch
      mm/slab: Finish struct page to struct slab conversion
      mm: Convert struct page to struct slab in functions used by other subsystems
      mm/memcg: Convert slab objcgs from struct page to struct slab
      mm/kfence: Convert kfence_guarded_alloc() to struct slab
      mm/sl*b: Differentiate struct slab fields by sl*b implementations
      mm/slub: Simplify struct slab slabs field definition
      mm/slub: Define struct slab fields for CONFIG_SLUB_CPU_PARTIAL only when enabled
      Merge branch 'for-5.17/struct-slab' into for-linus

 arch/x86/mm/init_64.c        |    2 +-
 include/linux/bootmem_info.h |    2 +-
 include/linux/kasan.h        |    9 +-
 include/linux/memcontrol.h   |   48 --
 include/linux/mm.h           |   12 +
 include/linux/mm_types.h     |   10 +-
 include/linux/slab.h         |    8 -
 include/linux/slab_def.h     |   16 +-
 include/linux/slub_def.h     |   29 +-
 init/Kconfig                 |    1 +
 mm/bootmem_info.c            |    7 +-
 mm/kasan/common.c            |   27 +-
 mm/kasan/generic.c           |    8 +-
 mm/kasan/kasan.h             |    1 +
 mm/kasan/quarantine.c        |    2 +-
 mm/kasan/report.c            |   13 +-
 mm/kasan/report_tags.c       |   10 +-
 mm/kfence/core.c             |   17 +-
 mm/kfence/kfence_test.c      |    6 +-
 mm/memcontrol.c              |   55 +-
 mm/slab.c                    |  456 ++++++++--------
 mm/slab.h                    |  302 +++++++++--
 mm/slab_common.c             |   14 +-
 mm/slob.c                    |   62 +--
 mm/slub.c                    | 1177 +++++++++++++++++++++---------------------
 mm/sparse.c                  |    2 +-
 mm/usercopy.c                |   13 +-
 mm/zsmalloc.c                |   18 +-
 28 files changed, 1265 insertions(+), 1062 deletions(-)




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux