kallsyms: increase maximum kernel symbol length to 512
authorMiguel Ojeda <ojeda@kernel.org>
Mon, 5 Apr 2021 03:03:50 +0000 (05:03 +0200)
committerMiguel Ojeda <ojeda@kernel.org>
Sun, 16 Jan 2022 23:40:23 +0000 (00:40 +0100)
commit11c213b0028cebfefda818a145a6f5500aed1567
tree58ff55cc3c0546e930aed0eb7bb9cb8ad1f2c886
parent80783c83f50f4dd01b78b50c8cc86835967b19fe
kallsyms: increase maximum kernel symbol length to 512

Rust symbols can become quite long due to namespacing introduced
by modules, types, traits, generics, etc. For instance,
the following code:

    pub mod my_module {
        pub struct MyType;
        pub struct MyGenericType<T>(T);

        pub trait MyTrait {
            fn my_method() -> u32;
        }

        impl MyTrait for MyGenericType<MyType> {
            fn my_method() -> u32 {
                42
            }
        }
    }

generates a symbol of length 96 when using the upcoming v0 mangling scheme:

    _RNvXNtCshGpAVYOtgW1_7example9my_moduleINtB2_13MyGenericTypeNtB2_6MyTypeENtB2_7MyTrait9my_method

At the moment, Rust symbols may reach up to 300 in length.
Setting 512 as the maximum seems like a reasonable choice to
keep some headroom.

Co-developed-by: Alex Gaynor <alex.gaynor@gmail.com>
Signed-off-by: Alex Gaynor <alex.gaynor@gmail.com>
Co-developed-by: Wedson Almeida Filho <wedsonaf@google.com>
Signed-off-by: Wedson Almeida Filho <wedsonaf@google.com>
Co-developed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Gary Guo <gary@garyguo.net>
Co-developed-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
include/linux/kallsyms.h
kernel/livepatch/core.c
scripts/kallsyms.c
tools/include/linux/kallsyms.h
tools/lib/perf/include/perf/event.h
tools/lib/symbol/kallsyms.h