On Wed, Jul 7, 2021 at 12:19 PM 'Marco Elver' via Clang Built Linux <clang-built-linux@xxxxxxxxxxxxxxxx> wrote: > > What is the story with Rust and LTO? Intuitively, I would expect Rust > code to only perform optimally if the kernel is built with LTO > (currently only supported via Clang). Cross-language LTO is possible and is used in other major projects. For instance, Firefox seems to use it: https://bugzilla.mozilla.org/show_bug.cgi?id=1486042 However, we have not taken a look at it yet for the kernel. > Because if calls to every one of these helpers are real calls, I would > expect performance to be pretty poor. There's probably a reason these > are macros or inlinable functions. Maybe -- we need to measure. > I would almost go so far and suggest that CONFIG_RUST be modified as > follows: Even if the performance was unacceptable, there are other ways than LTO to solve this, such as implementing the equivalent macro/function on Rust's side. Furthermore, we need to consider GCC too. Thus I would not be premature in making it depend on LTO. Cheers, Miguel