mm-add-comments-for-allocation-helpers-explaining-why-they-are-macros.patch removed from -mm tree
The quilt patch titled
Subject: mm: add comments for allocation helpers explaining why they are macros
has been removed from the -mm tree. Its filename was
mm-add-comments-for-allocation-helpers-explaining-why-they-are-macros.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Suren Baghdasaryan <[email protected]>
Subject: mm: add comments for allocation helpers explaining why they are macros
Date: Wed, 3 Jul 2024 10:42:25 -0700
A number of allocation helper functions were converted into macros to account them at the call sites. Add a comment for each converted allocation helper explaining why it has to be a macro and why we typecast the return value wherever required. The patch also moves acpi_os_acquire_object() closer to other allocation helpers to group them together under the same comment. The patch has no functional changes.
---
fs/nfs/iostat.h | 4 ++++ include/acpi/platform/aclinuxex.h | 9 ++++++--- include/linux/bpf.h | 4 ++++ include/linux/dma-fence-chain.h | 4 ++++ include/linux/hid_bpf.h | 5 +++++ include/linux/jbd2.h | 10 ++++++++++ include/linux/skbuff.h | 8 ++++++++ include/linux/skmsg.h | 5 +++++ 8 files changed, 46 insertions(+), 3 deletions(-)
fs/nfs/iostat.h renamed from fs/nfs/iostat.h~mm-add-comments-for-allocation-helpers-explaining-why-they-are-macros +4 -0
@@ -46,6 +46,10 @@ static inline void nfs_add_stats(const snfs_add_server_stats (NFS_SERVER (inode), stat, addend); } +/* +* This specialized allocator has to be a macro for its allocations to be +* accounted separately (to have a separate alloc_tag). +*/ #define nfs_alloc_iostats () alloc_percpu(struct nfs_iostats)static inline void nfs_free_iostats (struct nfs_iostats __percpu *stats)
include/acpi/platform/aclinuxex.h renamed from include/acpi/platform/aclinuxex.h~mm-add-comments-for-allocation-helpers-explaining-why-they-are-macros +6 -3
@@ -46,6 +46,9 @@ acpi_status acpi_os_terminate(void);* Interrupts are off during resume, just like they are for boot. * However, boot has (system_state != SYSTEM_RUNNING) * to quiet __might_sleep() in kmalloc() and resume does not. +* +* These specialized allocators have to be macros for their allocations to be +* accounted separately (to have separate alloc_tag). */ #define acpi_os_allocate (_size) \ kmalloc(_size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL)
@@ -53,14 +56,14 @@ acpi_status acpi_os_terminate(void);#define acpi_os_allocate_zeroed (_size) \ kzalloc(_size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL) +#define acpi_os_acquire_object (_cache) \ + kmem_cache_zalloc(_cache, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL) +static inline void acpi_os_free (void *memory) {kfree (memory); } -#define acpi_os_acquire_object (_cache) \ - kmem_cache_zalloc(_cache, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL) -static inline acpi_thread_id acpi_os_get_thread_id (void ) {return (acpi_thread_id ) (unsigned long )current;
include/linux/bpf.h renamed from include/linux/bpf.h~mm-add-comments-for-allocation-helpers-explaining-why-they-are-macros +4 -0
@@ -2261,6 +2261,10 @@ void *bpf_map_kvcalloc(struct bpf_map *mvoid __percpu *bpf_map_alloc_percpu (const struct bpf_map *map,size_t size,size_t align,gfp_t flags);#else +/* +* These specialized allocators have to be macros for their allocations to be +* accounted separately (to have separate alloc_tag). +*/ #define bpf_map_kmalloc_node (_map, _size, _flags, _node) \ kmalloc_node(_size, _flags, _node)#define bpf_map_kzalloc (_map, _size, _flags) \
include/linux/dma-fence-chain.h renamed from include/linux/dma-fence-chain.h~mm-add-comments-for-allocation-helpers-explaining-why-they-are-macros +4 -0
@@ -85,6 +85,10 @@ dma_fence_chain_contained(struct dma_fen* dma_fence_chain_alloc * * Returns a new struct dma_fence_chain object or NULL on failure. +* +* This specialized allocator has to be a macro for its allocations to be +* accounted separately (to have a separate alloc_tag). The typecast is +* intentional to enforce typesafety. */ #define dma_fence_chain_alloc () \ ((struct dma_fence_chain *)kmalloc(sizeof(struct dma_fence_chain), GFP_KERNEL))
include/linux/hid_bpf.h renamed from include/linux/hid_bpf.h~mm-add-comments-for-allocation-helpers-explaining-why-they-are-macros +5 -0
@@ -152,6 +152,11 @@ static inline int hid_bpf_connect_devicestatic inline void hid_bpf_disconnect_device (struct hid_device *hdev) {}static inline void hid_bpf_destroy_device (struct hid_device *hid) {}static inline void hid_bpf_device_init (struct hid_device *hid) {} +/* +* This specialized allocator has to be a macro for its allocations to be +* accounted separately (to have a separate alloc_tag). The typecast is +* intentional to enforce typesafety. +*/ #define call_hid_bpf_rdesc_fixup (_hdev, _rdesc, _size) \ ((u8 *)kmemdup(_rdesc, *(_size), GFP_KERNEL))
include/linux/jbd2.h renamed from include/linux/jbd2.h~mm-add-comments-for-allocation-helpers-explaining-why-they-are-macros +10 -0
@@ -1588,6 +1588,11 @@ void jbd2_journal_put_journal_head(struc*/ extern struct kmem_cache *jbd2_handle_cache; +/* +* This specialized allocator has to be a macro for its allocations to be +* accounted separately (to have a separate alloc_tag). The typecast is +* intentional to enforce typesafety. +*/ #define jbd2_alloc_handle (_gfp_flags) \ ((handle_t *)kmem_cache_zalloc(jbd2_handle_cache, _gfp_flags))
@@ -1602,6 +1607,11 @@ static inline void jbd2_free_handle(hand*/ extern struct kmem_cache *jbd2_inode_cache; +/* +* This specialized allocator has to be a macro for its allocations to be +* accounted separately (to have a separate alloc_tag). The typecast is +* intentional to enforce typesafety. +*/ #define jbd2_alloc_inode (_gfp_flags) \ ((struct jbd2_inode *)kmem_cache_alloc(jbd2_inode_cache, _gfp_flags))
include/linux/skbuff.h renamed from include/linux/skbuff.h~mm-add-comments-for-allocation-helpers-explaining-why-they-are-macros +8 -0
@@ -3400,6 +3400,10 @@ static inline struct page *__dev_alloc_p }#define __dev_alloc_pages (...) alloc_hooks(__dev_alloc_pages_noprof(__VA_ARGS__)) +/* +* This specialized allocator has to be a macro for its allocations to be +* accounted separately (to have a separate alloc_tag). +*/ #define dev_alloc_pages (_order) __dev_alloc_pages(GFP_ATOMIC | __GFP_NOWARN, _order)/**
@@ -3416,6 +3420,10 @@ static inline struct page *__dev_alloc_p }#define __dev_alloc_page (...) alloc_hooks(__dev_alloc_page_noprof(__VA_ARGS__)) +/* +* This specialized allocator has to be a macro for its allocations to be +* accounted separately (to have a separate alloc_tag). +*/ #define dev_alloc_page () dev_alloc_pages(0)/**
include/linux/skmsg.h renamed from include/linux/skmsg.h~mm-add-comments-for-allocation-helpers-explaining-why-they-are-macros +5 -0
@@ -414,6 +414,11 @@ void sk_psock_stop_verdict(struct sock *int sk_psock_msg_verdict (struct sock *sk,struct sk_psock *psock,struct sk_msg *msg); +/* +* This specialized allocator has to be a macro for its allocations to be +* accounted separately (to have a separate alloc_tag). The typecast is +* intentional to enforce typesafety. +*/ #define sk_psock_init_link () \ ((struct sk_psock_link *)kzalloc(sizeof(struct sk_psock_link), \ GFP_ATOMIC | __GFP_NOWARN))
_
Patches currently in -mm which might be from [email protected] are
alloc_tag-export-memory-allocation-profiling-symbols-used-by-modules.patch