Re: [PATCH] samples: rust: debugfs: fix excessive stack use

"Gary Guo" <[email protected]>
Newsgroups org.kernel.vger.rust-for-linux,dev.linux.lists.driver-core,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Thu Jul 16, 2026 at 9:33 PM BST, Alexandre Courbot wrote:
> On Thu Jul 16, 2026 at 7:41 AM PDT, Gary Guo wrote:
>> From: Gary Guo <[email protected]>
>>
>> The current implementation creates a 4K array and move it into the box.
>> Klint reports that this causes excesssive stack usage:
>>
>> warning: stack size of `create_file_write` is 4472 bytes, exceeds the 2048-byte limit
>>   --> samples/rust/rust_debugfs_scoped.rs:54:1
>>    |
>> 54 | / fn create_file_write(
>> 55 | |     mod_data: &ModuleData,
>> 56 | |     reader: &mut kernel::uaccess::UserSliceReader,
>> 57 | | ) -> Result {
>>    | |___________^
>>    |
>>    = note: the stack size is inferred from instruction `sub $0x1178,%rsp` at .text+2205
>>
>> Use pin-init to create the array in-place instead.
>>
>> Fixes: f656279afde1 ("samples: rust: debugfs_scoped: add example for blobs")
>> Signed-off-by: Gary Guo <[email protected]>
>> ---
>>  samples/rust/rust_debugfs_scoped.rs | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/samples/rust/rust_debugfs_scoped.rs b/samples/rust/rust_debugfs_scoped.rs
>> index 6a575a15a2c2..33a4a0865f5b 100644
>> --- a/samples/rust/rust_debugfs_scoped.rs
>> +++ b/samples/rust/rust_debugfs_scoped.rs
>> @@ -75,7 +75,7 @@ fn create_file_write(
>>              GFP_KERNEL,
>>          )?;
>>      }
>> -    let blob = KBox::pin_init(new_mutex!([0x42; SZ_4K]), GFP_KERNEL)?;
>> +    let blob = KBox::pin_init(new_mutex!(pin_init::init_array_from_fn(|_| 0x42)), GFP_KERNEL)?;
>
> Since this is a sample, do we want to specify the size explicitly as it
> is arguably more readable in this case?

It's not easy to specify size with `init_array_from_fn` because you need to
specify additionally Init, T and E, so it'll become

    init_array_from_fn::<_, SZ_4K, _, _>

which is ugly.

Best,
Gary
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.