From: Suren Baghdasaryan <surenb@google.com>
To: akpm@linux-foundation.org
Cc: kent.overstreet@linux.dev, mhocko@suse.com, vbabka@suse.cz,
hannes@cmpxchg.org, roman.gushchin@linux.dev, mgorman@suse.de,
dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com,
corbet@lwn.net, void@manifault.com, peterz@infradead.org,
juri.lelli@redhat.com, catalin.marinas@arm.com, will@kernel.org,
arnd@arndb.de, tglx@linutronix.de, mingo@redhat.com,
dave.hansen@linux.intel.com, x86@kernel.org, peterx@redhat.com,
david@redhat.com, axboe@kernel.dk, mcgrof@kernel.org,
masahiroy@kernel.org, nathan@kernel.org, dennis@kernel.org,
tj@kernel.org, muchun.song@linux.dev, rppt@kernel.org,
paulmck@kernel.org, pasha.tatashin@soleen.com,
yosryahmed@google.com, yuzhao@google.com, dhowells@redhat.com,
hughd@google.com, andreyknvl@gmail.com, keescook@chromium.org,
ndesaulniers@google.com, vvvvvv@google.com,
gregkh@linuxfoundation.org, ebiggers@google.com,
ytcoode@gmail.com, vincent.guittot@linaro.org,
dietmar.eggemann@arm.com, rostedt@goodmis.org,
bsegall@google.com, bristot@redhat.com, vschneid@redhat.com,
cl@linux.com, penberg@kernel.org, iamjoonsoo.kim@lge.com,
42.hyeyoo@gmail.com, glider@google.com, elver@google.com,
dvyukov@google.com, shakeelb@google.com,
songmuchun@bytedance.com, jbaron@akamai.com,
rientjes@google.com, minchan@google.com, kaleshsingh@google.com,
surenb@google.com, kernel-team@android.com,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
iommu@lists.linux.dev, linux-arch@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
linux-modules@vger.kernel.org, kasan-dev@googlegroups.com,
cgroups@vger.kernel.org
Subject: [PATCH v3 30/35] rhashtable: Plumb through alloc tag
Date: Mon, 12 Feb 2024 13:39:16 -0800 [thread overview]
Message-ID: <20240212213922.783301-31-surenb@google.com> (raw)
In-Reply-To: <20240212213922.783301-1-surenb@google.com>
From: Kent Overstreet <kent.overstreet@linux.dev>
This gives better memory allocation profiling results; rhashtable
allocations will be accounted to the code that initialized the
rhashtable.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
---
include/linux/rhashtable-types.h | 11 +++++--
lib/rhashtable.c | 52 +++++++++++++++++++++++++-------
2 files changed, 50 insertions(+), 13 deletions(-)
diff --git a/include/linux/rhashtable-types.h b/include/linux/rhashtable-types.h
index b6f3797277ff..015c8298bebc 100644
--- a/include/linux/rhashtable-types.h
+++ b/include/linux/rhashtable-types.h
@@ -9,6 +9,7 @@
#ifndef _LINUX_RHASHTABLE_TYPES_H
#define _LINUX_RHASHTABLE_TYPES_H
+#include <linux/alloc_tag.h>
#include <linux/atomic.h>
#include <linux/compiler.h>
#include <linux/mutex.h>
@@ -88,6 +89,9 @@ struct rhashtable {
struct mutex mutex;
spinlock_t lock;
atomic_t nelems;
+#ifdef CONFIG_MEM_ALLOC_PROFILING
+ struct alloc_tag *alloc_tag;
+#endif
};
/**
@@ -127,9 +131,12 @@ struct rhashtable_iter {
bool end_of_table;
};
-int rhashtable_init(struct rhashtable *ht,
+int rhashtable_init_noprof(struct rhashtable *ht,
const struct rhashtable_params *params);
-int rhltable_init(struct rhltable *hlt,
+#define rhashtable_init(...) alloc_hooks(rhashtable_init_noprof(__VA_ARGS__))
+
+int rhltable_init_noprof(struct rhltable *hlt,
const struct rhashtable_params *params);
+#define rhltable_init(...) alloc_hooks(rhltable_init_noprof(__VA_ARGS__))
#endif /* _LINUX_RHASHTABLE_TYPES_H */
diff --git a/lib/rhashtable.c b/lib/rhashtable.c
index 6ae2ba8e06a2..b62116f332b8 100644
--- a/lib/rhashtable.c
+++ b/lib/rhashtable.c
@@ -63,6 +63,27 @@ EXPORT_SYMBOL_GPL(lockdep_rht_bucket_is_held);
#define ASSERT_RHT_MUTEX(HT)
#endif
+#ifdef CONFIG_MEM_ALLOC_PROFILING
+static inline void rhashtable_alloc_tag_init(struct rhashtable *ht)
+{
+ ht->alloc_tag = current->alloc_tag;
+}
+
+static inline struct alloc_tag *rhashtable_alloc_tag_save(struct rhashtable *ht)
+{
+ return alloc_tag_save(ht->alloc_tag);
+}
+
+static inline void rhashtable_alloc_tag_restore(struct rhashtable *ht, struct alloc_tag *old)
+{
+ alloc_tag_restore(ht->alloc_tag, old);
+}
+#else
+#define rhashtable_alloc_tag_init(ht)
+static inline struct alloc_tag *rhashtable_alloc_tag_save(struct rhashtable *ht) { return NULL; }
+#define rhashtable_alloc_tag_restore(ht, old)
+#endif
+
static inline union nested_table *nested_table_top(
const struct bucket_table *tbl)
{
@@ -130,7 +151,7 @@ static union nested_table *nested_table_alloc(struct rhashtable *ht,
if (ntbl)
return ntbl;
- ntbl = kzalloc(PAGE_SIZE, GFP_ATOMIC);
+ ntbl = kmalloc_noprof(PAGE_SIZE, GFP_ATOMIC|__GFP_ZERO);
if (ntbl && leaf) {
for (i = 0; i < PAGE_SIZE / sizeof(ntbl[0]); i++)
@@ -157,7 +178,7 @@ static struct bucket_table *nested_bucket_table_alloc(struct rhashtable *ht,
size = sizeof(*tbl) + sizeof(tbl->buckets[0]);
- tbl = kzalloc(size, gfp);
+ tbl = kmalloc_noprof(size, gfp|__GFP_ZERO);
if (!tbl)
return NULL;
@@ -180,8 +201,10 @@ static struct bucket_table *bucket_table_alloc(struct rhashtable *ht,
size_t size;
int i;
static struct lock_class_key __key;
+ struct alloc_tag * __maybe_unused old = rhashtable_alloc_tag_save(ht);
- tbl = kvzalloc(struct_size(tbl, buckets, nbuckets), gfp);
+ tbl = kvmalloc_node_noprof(struct_size(tbl, buckets, nbuckets),
+ gfp|__GFP_ZERO, NUMA_NO_NODE);
size = nbuckets;
@@ -190,6 +213,8 @@ static struct bucket_table *bucket_table_alloc(struct rhashtable *ht,
nbuckets = 0;
}
+ rhashtable_alloc_tag_restore(ht, old);
+
if (tbl == NULL)
return NULL;
@@ -975,7 +1000,7 @@ static u32 rhashtable_jhash2(const void *key, u32 length, u32 seed)
}
/**
- * rhashtable_init - initialize a new hash table
+ * rhashtable_init_noprof - initialize a new hash table
* @ht: hash table to be initialized
* @params: configuration parameters
*
@@ -1016,7 +1041,7 @@ static u32 rhashtable_jhash2(const void *key, u32 length, u32 seed)
* .obj_hashfn = my_hash_fn,
* };
*/
-int rhashtable_init(struct rhashtable *ht,
+int rhashtable_init_noprof(struct rhashtable *ht,
const struct rhashtable_params *params)
{
struct bucket_table *tbl;
@@ -1031,6 +1056,8 @@ int rhashtable_init(struct rhashtable *ht,
spin_lock_init(&ht->lock);
memcpy(&ht->p, params, sizeof(*params));
+ rhashtable_alloc_tag_init(ht);
+
if (params->min_size)
ht->p.min_size = roundup_pow_of_two(params->min_size);
@@ -1076,26 +1103,26 @@ int rhashtable_init(struct rhashtable *ht,
return 0;
}
-EXPORT_SYMBOL_GPL(rhashtable_init);
+EXPORT_SYMBOL_GPL(rhashtable_init_noprof);
/**
- * rhltable_init - initialize a new hash list table
+ * rhltable_init_noprof - initialize a new hash list table
* @hlt: hash list table to be initialized
* @params: configuration parameters
*
* Initializes a new hash list table.
*
- * See documentation for rhashtable_init.
+ * See documentation for rhashtable_init_noprof.
*/
-int rhltable_init(struct rhltable *hlt, const struct rhashtable_params *params)
+int rhltable_init_noprof(struct rhltable *hlt, const struct rhashtable_params *params)
{
int err;
- err = rhashtable_init(&hlt->ht, params);
+ err = rhashtable_init_noprof(&hlt->ht, params);
hlt->ht.rhlist = true;
return err;
}
-EXPORT_SYMBOL_GPL(rhltable_init);
+EXPORT_SYMBOL_GPL(rhltable_init_noprof);
static void rhashtable_free_one(struct rhashtable *ht, struct rhash_head *obj,
void (*free_fn)(void *ptr, void *arg),
@@ -1222,6 +1249,7 @@ struct rhash_lock_head __rcu **rht_bucket_nested_insert(
unsigned int index = hash & ((1 << tbl->nest) - 1);
unsigned int size = tbl->size >> tbl->nest;
union nested_table *ntbl;
+ struct alloc_tag * __maybe_unused old = rhashtable_alloc_tag_save(ht);
ntbl = nested_table_top(tbl);
hash >>= tbl->nest;
@@ -1236,6 +1264,8 @@ struct rhash_lock_head __rcu **rht_bucket_nested_insert(
size <= (1 << shift));
}
+ rhashtable_alloc_tag_restore(ht, old);
+
if (!ntbl)
return NULL;
--
2.43.0.687.g38aa6559b0-goog
next prev parent reply other threads:[~2024-02-12 21:40 UTC|newest]
Thread overview: 215+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-12 21:38 [PATCH v3 00/35] Memory allocation profiling Suren Baghdasaryan
2024-02-12 21:38 ` [PATCH v3 01/35] lib/string_helpers: Add flags param to string_get_size() Suren Baghdasaryan
2024-02-12 22:09 ` Kees Cook
2024-02-13 8:26 ` Andy Shevchenko
2024-02-13 8:29 ` Andy Shevchenko
2024-02-13 23:55 ` Kent Overstreet
2024-02-13 22:06 ` Kent Overstreet
2024-02-29 20:54 ` Andy Shevchenko
2024-02-14 20:11 ` Matthew Wilcox
2024-02-12 21:38 ` [PATCH v3 02/35] scripts/kallysms: Always include __start and __stop symbols Suren Baghdasaryan
2024-02-12 22:06 ` Kees Cook
2024-02-12 21:38 ` [PATCH v3 03/35] fs: Convert alloc_inode_sb() to a macro Suren Baghdasaryan
2024-02-12 22:07 ` Kees Cook
2024-02-12 21:38 ` [PATCH v3 04/35] mm: enumerate all gfp flags Suren Baghdasaryan
2024-02-12 22:10 ` Kees Cook
2024-02-12 21:38 ` [PATCH v3 05/35] mm: introduce slabobj_ext to support slab object extensions Suren Baghdasaryan
2024-02-12 22:14 ` Kees Cook
2024-02-13 2:20 ` Suren Baghdasaryan
2024-02-14 17:59 ` Vlastimil Babka
2024-02-14 19:19 ` Suren Baghdasaryan
2024-02-12 21:38 ` [PATCH v3 06/35] mm: introduce __GFP_NO_OBJ_EXT flag to selectively prevent slabobj_ext creation Suren Baghdasaryan
2024-02-12 22:14 ` Kees Cook
2024-02-12 21:38 ` [PATCH v3 07/35] mm/slab: introduce SLAB_NO_OBJ_EXT to avoid obj_ext creation Suren Baghdasaryan
2024-02-12 22:14 ` Kees Cook
2024-02-15 21:31 ` Vlastimil Babka
2024-02-15 21:37 ` Kent Overstreet
2024-02-15 21:50 ` Vlastimil Babka
2024-02-15 22:10 ` Suren Baghdasaryan
2024-02-16 18:41 ` Suren Baghdasaryan
2024-02-16 18:49 ` Vlastimil Babka
2024-02-12 21:38 ` [PATCH v3 08/35] mm: prevent slabobj_ext allocations for slabobj_ext and kmem_cache objects Suren Baghdasaryan
2024-02-12 22:15 ` Kees Cook
2024-02-15 21:44 ` Vlastimil Babka
2024-02-15 22:13 ` Suren Baghdasaryan
2024-02-12 21:38 ` [PATCH v3 09/35] slab: objext: introduce objext_flags as extension to page_memcg_data_flags Suren Baghdasaryan
2024-02-12 22:15 ` Kees Cook
2024-02-12 21:38 ` [PATCH v3 10/35] lib: code tagging framework Suren Baghdasaryan
2024-02-12 22:27 ` Kees Cook
2024-02-13 2:04 ` Suren Baghdasaryan
2024-02-16 7:22 ` Suren Baghdasaryan
2024-02-12 21:38 ` [PATCH v3 11/35] lib: code tagging module support Suren Baghdasaryan
2024-02-12 21:38 ` [PATCH v3 12/35] lib: prevent module unloading if memory is not freed Suren Baghdasaryan
2024-02-12 21:38 ` [PATCH v3 13/35] lib: add allocation tagging support for memory allocation profiling Suren Baghdasaryan
2024-02-12 22:40 ` Kees Cook
2024-02-13 1:01 ` Suren Baghdasaryan
2024-02-13 22:28 ` Darrick J. Wong
2024-02-13 22:35 ` Suren Baghdasaryan
2024-02-13 22:38 ` Kees Cook
2024-02-13 22:47 ` Steven Rostedt
2024-02-16 8:50 ` Vlastimil Babka
2024-02-16 8:55 ` Suren Baghdasaryan
2024-02-16 23:26 ` Kent Overstreet
2024-02-17 0:08 ` Kees Cook
2024-02-14 6:34 ` kernel test robot
2024-02-16 0:54 ` Andrew Morton
2024-02-16 1:00 ` Kent Overstreet
2024-02-16 1:22 ` Pasha Tatashin
2024-02-16 1:27 ` Kent Overstreet
2024-02-16 9:02 ` Suren Baghdasaryan
2024-02-16 9:03 ` Suren Baghdasaryan
2024-02-16 17:18 ` Pasha Tatashin
2024-02-17 20:10 ` Kent Overstreet
2024-02-16 8:57 ` Vlastimil Babka
2024-02-18 2:21 ` Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 14/35] lib: introduce support for page allocation tagging Suren Baghdasaryan
2024-02-16 9:45 ` Vlastimil Babka
2024-02-16 16:44 ` Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 15/35] mm: percpu: increase PERCPU_MODULE_RESERVE to accommodate allocation tags Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 16/35] change alloc_pages name in dma_map_ops to avoid name conflicts Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 17/35] mm: enable page allocation tagging Suren Baghdasaryan
2024-02-12 22:59 ` Kees Cook
2024-02-12 21:39 ` [PATCH v3 18/35] mm: create new codetag references during page splitting Suren Baghdasaryan
2024-02-16 14:33 ` Vlastimil Babka
2024-02-16 16:46 ` Suren Baghdasaryan
2024-02-18 0:44 ` Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 19/35] mm/page_ext: enable early_page_ext when CONFIG_MEM_ALLOC_PROFILING_DEBUG=y Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 20/35] lib: add codetag reference into slabobj_ext Suren Baghdasaryan
2024-02-13 19:12 ` kernel test robot
2024-02-16 15:36 ` Vlastimil Babka
2024-02-16 17:04 ` Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 21/35] mm/slab: add allocation accounting into slab allocation and free paths Suren Baghdasaryan
2024-02-12 22:59 ` Kees Cook
2024-02-16 16:31 ` Vlastimil Babka
2024-02-16 16:38 ` Kent Overstreet
2024-02-16 17:11 ` Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 22/35] mm/slab: enable slab allocation tagging for kmalloc and friends Suren Baghdasaryan
2024-02-12 23:01 ` Kees Cook
2024-02-14 1:03 ` kernel test robot
2024-02-16 16:52 ` Vlastimil Babka
2024-02-16 17:03 ` Kent Overstreet
2024-02-17 8:46 ` kernel test robot
2024-02-12 21:39 ` [PATCH v3 23/35] mm/slub: Mark slab_free_freelist_hook() __always_inline Suren Baghdasaryan
2024-02-13 0:31 ` Kees Cook
2024-02-13 0:34 ` Suren Baghdasaryan
2024-02-13 2:08 ` Kent Overstreet
2024-02-14 15:13 ` Vlastimil Babka
2024-02-15 4:04 ` Liam R. Howlett
2024-02-12 21:39 ` [PATCH v3 24/35] mempool: Hook up to memory allocation profiling Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 25/35] xfs: Memory allocation profiling fixups Suren Baghdasaryan
2024-02-14 22:22 ` Dave Chinner
2024-02-14 22:36 ` Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 26/35] mm: percpu: Introduce pcpuobj_ext Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 27/35] mm: percpu: Add codetag reference into pcpuobj_ext Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 28/35] mm: percpu: enable per-cpu allocation tagging Suren Baghdasaryan
2024-02-15 2:06 ` kernel test robot
2024-02-12 21:39 ` [PATCH v3 29/35] mm: vmalloc: Enable memory allocation profiling Suren Baghdasaryan
2024-02-13 23:09 ` kernel test robot
2024-02-13 23:19 ` kernel test robot
2024-02-12 21:39 ` Suren Baghdasaryan [this message]
2024-02-12 21:39 ` [PATCH v3 31/35] lib: add memory allocations report in show_mem() Suren Baghdasaryan
2024-02-13 0:10 ` Kees Cook
2024-02-13 0:22 ` Steven Rostedt
2024-02-13 4:33 ` Kent Overstreet
2024-02-13 8:17 ` Suren Baghdasaryan
2024-02-15 9:22 ` Michal Hocko
2024-02-15 14:58 ` Suren Baghdasaryan
2024-02-15 16:44 ` Michal Hocko
2024-02-15 16:47 ` Suren Baghdasaryan
2024-02-15 18:29 ` Kent Overstreet
2024-02-15 18:33 ` Suren Baghdasaryan
2024-02-15 18:38 ` Kent Overstreet
2024-02-15 18:41 ` Michal Hocko
2024-02-15 18:49 ` Suren Baghdasaryan
2024-02-15 20:22 ` Vlastimil Babka
2024-02-15 20:33 ` Kent Overstreet
2024-02-15 21:54 ` Michal Hocko
2024-02-15 22:54 ` Kent Overstreet
2024-02-15 23:07 ` Steven Rostedt
2024-02-15 23:16 ` Steven Rostedt
2024-02-15 23:27 ` Steven Rostedt
2024-02-15 23:56 ` Kent Overstreet
2024-02-19 17:17 ` Suren Baghdasaryan
2024-02-20 16:23 ` Michal Hocko
2024-02-20 17:18 ` Kent Overstreet
2024-02-20 17:24 ` Michal Hocko
2024-02-20 17:32 ` Kent Overstreet
2024-02-20 18:27 ` Vlastimil Babka
2024-02-20 20:59 ` Suren Baghdasaryan
2024-02-21 13:21 ` Tetsuo Handa
2024-02-21 18:26 ` Suren Baghdasaryan
2024-02-15 23:19 ` Dave Hansen
2024-02-15 23:54 ` Kent Overstreet
2024-02-15 23:51 ` Kent Overstreet
2024-02-16 0:21 ` Steven Rostedt
2024-02-16 0:32 ` Kent Overstreet
2024-02-16 0:39 ` Steven Rostedt
2024-02-16 0:50 ` Kent Overstreet
2024-02-16 1:12 ` Steven Rostedt
2024-02-16 1:18 ` Kent Overstreet
2024-02-16 1:31 ` Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 32/35] codetag: debug: skip objext checking when it's for objext itself Suren Baghdasaryan
2024-02-16 18:39 ` Vlastimil Babka
2024-02-19 1:04 ` Suren Baghdasaryan
2024-02-19 9:17 ` Vlastimil Babka
2024-02-19 16:55 ` Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 33/35] codetag: debug: mark codetags for reserved pages as empty Suren Baghdasaryan
2024-02-12 22:45 ` Kees Cook
2024-02-13 0:15 ` Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 34/35] codetag: debug: introduce OBJEXTS_ALLOC_FAIL to mark failed slab_ext allocations Suren Baghdasaryan
2024-02-12 22:49 ` Kees Cook
2024-02-13 0:09 ` Suren Baghdasaryan
2024-02-12 21:39 ` [PATCH v3 35/35] MAINTAINERS: Add entries for code tagging and memory allocation profiling Suren Baghdasaryan
2024-02-12 22:43 ` Kees Cook
2024-02-13 0:33 ` Suren Baghdasaryan
2024-02-13 0:14 ` [PATCH v3 00/35] Memory " Pasha Tatashin
2024-02-13 0:29 ` Kees Cook
2024-02-13 0:47 ` Suren Baghdasaryan
2024-02-13 12:24 ` Michal Hocko
2024-02-13 21:58 ` Suren Baghdasaryan
2024-02-13 22:04 ` David Hildenbrand
2024-02-13 22:09 ` Kent Overstreet
2024-02-13 22:17 ` David Hildenbrand
2024-02-13 22:29 ` Kent Overstreet
2024-02-13 23:11 ` Darrick J. Wong
2024-02-13 23:24 ` Kent Overstreet
2024-02-13 22:30 ` Suren Baghdasaryan
2024-02-13 22:48 ` David Hildenbrand
2024-02-13 22:50 ` Kent Overstreet
2024-02-13 22:57 ` David Hildenbrand
2024-02-13 22:59 ` Suren Baghdasaryan
2024-02-13 23:02 ` David Hildenbrand
2024-02-13 23:12 ` Kent Overstreet
2024-02-13 23:22 ` David Hildenbrand
2024-02-13 23:28 ` Suren Baghdasaryan
2024-02-13 23:54 ` Pasha Tatashin
2024-02-14 0:04 ` Kent Overstreet
2024-02-14 10:01 ` David Hildenbrand
2024-02-13 23:08 ` Kent Overstreet
2024-02-14 10:20 ` Vlastimil Babka
2024-02-14 16:38 ` Kent Overstreet
2024-02-14 15:00 ` Matthew Wilcox
2024-02-14 15:13 ` Kent Overstreet
2024-02-14 13:23 ` Michal Hocko
2024-02-14 16:55 ` Andrew Morton
2024-02-14 17:14 ` Suren Baghdasaryan
2024-02-14 17:52 ` Kent Overstreet
2024-02-14 19:24 ` Suren Baghdasaryan
2024-02-14 20:00 ` Kent Overstreet
2024-02-14 6:20 ` Johannes Weiner
2024-02-14 14:46 ` Michal Hocko
2024-02-14 15:01 ` Kent Overstreet
2024-02-14 16:02 ` Michal Hocko
2024-02-14 16:17 ` Kent Overstreet
2024-02-14 16:31 ` Michal Hocko
2024-02-14 17:14 ` Suren Baghdasaryan
2024-02-14 18:44 ` Andy Shevchenko
2024-02-14 18:51 ` Suren Baghdasaryan
2024-02-14 18:53 ` Tim Chen
2024-02-14 19:09 ` Suren Baghdasaryan
2024-02-14 20:17 ` Yosry Ahmed
2024-02-14 20:30 ` Suren Baghdasaryan
2024-02-14 22:59 ` Tim Chen
2024-02-16 8:38 ` Jani Nikula
2024-02-16 8:42 ` Kent Overstreet
2024-02-16 9:07 ` Jani Nikula
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240212213922.783301-31-surenb@google.com \
--to=surenb@google.com \
--cc=42.hyeyoo@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=andreyknvl@gmail.com \
--cc=arnd@arndb.de \
--cc=axboe@kernel.dk \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=catalin.marinas@arm.com \
--cc=cgroups@vger.kernel.org \
--cc=cl@linux.com \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=dave@stgolabs.net \
--cc=david@redhat.com \
--cc=dennis@kernel.org \
--cc=dhowells@redhat.com \
--cc=dietmar.eggemann@arm.com \
--cc=dvyukov@google.com \
--cc=ebiggers@google.com \
--cc=elver@google.com \
--cc=glider@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=iommu@lists.linux.dev \
--cc=jbaron@akamai.com \
--cc=juri.lelli@redhat.com \
--cc=kaleshsingh@google.com \
--cc=kasan-dev@googlegroups.com \
--cc=keescook@chromium.org \
--cc=kent.overstreet@linux.dev \
--cc=kernel-team@android.com \
--cc=liam.howlett@oracle.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-modules@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=mcgrof@kernel.org \
--cc=mgorman@suse.de \
--cc=mhocko@suse.com \
--cc=minchan@google.com \
--cc=mingo@redhat.com \
--cc=muchun.song@linux.dev \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=pasha.tatashin@soleen.com \
--cc=paulmck@kernel.org \
--cc=penberg@kernel.org \
--cc=peterx@redhat.com \
--cc=peterz@infradead.org \
--cc=rientjes@google.com \
--cc=roman.gushchin@linux.dev \
--cc=rostedt@goodmis.org \
--cc=rppt@kernel.org \
--cc=shakeelb@google.com \
--cc=songmuchun@bytedance.com \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=vbabka@suse.cz \
--cc=vincent.guittot@linaro.org \
--cc=void@manifault.com \
--cc=vschneid@redhat.com \
--cc=vvvvvv@google.com \
--cc=will@kernel.org \
--cc=willy@infradead.org \
--cc=x86@kernel.org \
--cc=yosryahmed@google.com \
--cc=ytcoode@gmail.com \
--cc=yuzhao@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.