Message ID | 20240221194052.927623-25-surenb@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Memory allocation profiling | expand |
On Wed, Feb 21, 2024 at 8:41 PM Suren Baghdasaryan <surenb@google.com> wrote: > > 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> Currently, the Rust build doesn't work throughout the entire series since there are some commits where krealloc is missing before you introduce the helper. If you introduce the helper first before krealloc stops being an exported function, then the Rust build should work throughout the entire series. (Having both the helper and the exported function at the same time is not a problem.) With the patch reordered: Reviewed-by: Alice Ryhl <aliceryhl@google.com> Alice
On Thu, Feb 22, 2024 at 2:00 AM Alice Ryhl <aliceryhl@google.com> wrote: > > On Wed, Feb 21, 2024 at 8:41 PM Suren Baghdasaryan <surenb@google.com> wrote: > > > > 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> > > Currently, the Rust build doesn't work throughout the entire series > since there are some commits where krealloc is missing before you > introduce the helper. If you introduce the helper first before > krealloc stops being an exported function, then the Rust build should > work throughout the entire series. (Having both the helper and the > exported function at the same time is not a problem.) Ack. I'll move it up in the series. > > With the patch reordered: > > Reviewed-by: Alice Ryhl <aliceryhl@google.com> Thanks Alice! > > Alice
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.