Rust for Linux List
 help / color / mirror / Atom feed
* [PATCH v5 24/37] rust: Add a rust helper for krealloc()
       [not found] <20240306182440.2003814-1-surenb@google.com>
@ 2024-03-06 18:24 ` Suren Baghdasaryan
  2024-03-08 15:23   ` Miguel Ojeda
  0 siblings, 1 reply; 2+ messages in thread
From: Suren Baghdasaryan @ 2024-03-06 18:24 UTC (permalink / raw)
  To: akpm
  Cc: kent.overstreet, mhocko, vbabka, hannes, roman.gushchin, mgorman,
	dave, willy, liam.howlett, penguin-kernel, corbet, void, peterz,
	juri.lelli, catalin.marinas, will, arnd, tglx, mingo, dave.hansen,
	x86, peterx, david, axboe, mcgrof, masahiroy, nathan, dennis,
	jhubbard, tj, muchun.song, rppt, paulmck, pasha.tatashin,
	yosryahmed, yuzhao, dhowells, hughd, andreyknvl, keescook,
	ndesaulniers, vvvvvv, gregkh, ebiggers, ytcoode, vincent.guittot,
	dietmar.eggemann, rostedt, bsegall, bristot, vschneid, cl,
	penberg, iamjoonsoo.kim, 42.hyeyoo, glider, elver, dvyukov,
	shakeelb, songmuchun, jbaron, aliceryhl, rientjes, minchan,
	kaleshsingh, surenb, kernel-team, linux-doc, linux-kernel, iommu,
	linux-arch, linux-fsdevel, linux-mm, linux-modules, kasan-dev,
	cgroups, Miguel Ojeda, Alex Gaynor, Wedson Almeida Filho,
	Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
	Andreas Hindborg, rust-for-linux

From: Kent Overstreet <kent.overstreet@linux.dev>

Memory allocation profiling is turning krealloc() into a nontrivial
macro - so for now, we need a helper for it.

Until we have proper support on the rust side for memory allocation
profiling this does mean that all Rust allocations will be accounted to
the helper.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Miguel Ojeda <ojeda@kernel.org>
Cc: Alex Gaynor <alex.gaynor@gmail.com>
Cc: Wedson Almeida Filho <wedsonaf@gmail.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Gary Guo <gary@garyguo.net>
Cc: "Björn Roy Baron" <bjorn3_gh@protonmail.com>
Cc: Benno Lossin <benno.lossin@proton.me>
Cc: Andreas Hindborg <a.hindborg@samsung.com>
Cc: Alice Ryhl <aliceryhl@google.com>
Cc: rust-for-linux@vger.kernel.org
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
---
 rust/helpers.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/rust/helpers.c b/rust/helpers.c
index 70e59efd92bc..ad62eaf604b3 100644
--- a/rust/helpers.c
+++ b/rust/helpers.c
@@ -28,6 +28,7 @@
 #include <linux/mutex.h>
 #include <linux/refcount.h>
 #include <linux/sched/signal.h>
+#include <linux/slab.h>
 #include <linux/spinlock.h>
 #include <linux/wait.h>
 #include <linux/workqueue.h>
@@ -157,6 +158,13 @@ void rust_helper_init_work_with_key(struct work_struct *work, work_func_t func,
 }
 EXPORT_SYMBOL_GPL(rust_helper_init_work_with_key);
 
+void * __must_check rust_helper_krealloc(const void *objp, size_t new_size,
+					 gfp_t flags) __realloc_size(2)
+{
+	return krealloc(objp, new_size, flags);
+}
+EXPORT_SYMBOL_GPL(rust_helper_krealloc);
+
 /*
  * `bindgen` binds the C `size_t` type as the Rust `usize` type, so we can
  * use it in contexts where Rust expects a `usize` like slice (array) indices.
-- 
2.44.0.278.ge034bb2e1d-goog


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v5 24/37] rust: Add a rust helper for krealloc()
  2024-03-06 18:24 ` [PATCH v5 24/37] rust: Add a rust helper for krealloc() Suren Baghdasaryan
@ 2024-03-08 15:23   ` Miguel Ojeda
  0 siblings, 0 replies; 2+ messages in thread
From: Miguel Ojeda @ 2024-03-08 15:23 UTC (permalink / raw)
  To: Suren Baghdasaryan
  Cc: akpm, kent.overstreet, mhocko, vbabka, hannes, roman.gushchin,
	mgorman, dave, willy, liam.howlett, penguin-kernel, corbet, void,
	peterz, juri.lelli, catalin.marinas, will, arnd, tglx, mingo,
	dave.hansen, x86, peterx, david, axboe, mcgrof, masahiroy, nathan,
	dennis, jhubbard, tj, muchun.song, rppt, paulmck, pasha.tatashin,
	yosryahmed, yuzhao, dhowells, hughd, andreyknvl, keescook,
	ndesaulniers, vvvvvv, gregkh, ebiggers, ytcoode, vincent.guittot,
	dietmar.eggemann, rostedt, bsegall, bristot, vschneid, cl,
	penberg, iamjoonsoo.kim, 42.hyeyoo, glider, elver, dvyukov,
	shakeelb, songmuchun, jbaron, aliceryhl, rientjes, minchan,
	kaleshsingh, kernel-team, linux-doc, linux-kernel, iommu,
	linux-arch, linux-fsdevel, linux-mm, linux-modules, kasan-dev,
	cgroups, Miguel Ojeda, Alex Gaynor, Wedson Almeida Filho,
	Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
	Andreas Hindborg, rust-for-linux

On Wed, Mar 6, 2024 at 7:26 PM Suren Baghdasaryan <surenb@google.com> wrote:
>
> +void * __must_check rust_helper_krealloc(const void *objp, size_t new_size,
> +                                        gfp_t flags) __realloc_size(2)

The `__realloc_size(2)` should be placed earlier, i.e. this triggers:

rust/helpers.c:162:20: error: GCC does not allow '__alloc_size__'
attribute in this position on a function definition [-Wgcc-compat]

With that fixed:

Acked-by: Miguel Ojeda <ojeda@kernel.org>

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-03-08 15:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20240306182440.2003814-1-surenb@google.com>
2024-03-06 18:24 ` [PATCH v5 24/37] rust: Add a rust helper for krealloc() Suren Baghdasaryan
2024-03-08 15:23   ` Miguel Ojeda

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox