Re: [PATCH v9 1/8] sched/core: Add __might_sleep_precision()

From: FUJITA Tomonori
Date: Wed Jan 29 2025 - 18:57:07 EST


On Tue, 28 Jan 2025 12:37:38 +0100
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Sat, Jan 25, 2025 at 07:18:46PM +0900, FUJITA Tomonori wrote:
>> Add __might_sleep_precision(), Rust friendly version of
>> __might_sleep(), which takes a pointer to a string with the length
>> instead of a null-terminated string.
>>
>> Rust's core::panic::Location::file(), which gives the file name of a
>> caller, doesn't provide a null-terminated
>> string. __might_sleep_precision() uses a precision specifier in the
>> printk format, which specifies the length of a string; a string
>> doesn't need to be a null-terminated.
>>
>> Modify __might_sleep() to call __might_sleep_precision() but the
>> impact should be negligible. strlen() isn't called in a normal case;
>> it's called only when printing the error (sleeping function called
>> from invalid context).
>>
>> Note that Location::file() providing a null-terminated string for
>> better C interoperability is under discussion [1].
>
> Urgh :/

Yeah... so not acceptable?

Then I switch to the implementation with Rust macros, which gives a
null terminated string.