2022-05-13 13:40:06

by Li Qiong

[permalink] [raw]
Subject: Re: [PATCH] mm: change "char *bdi_unknown_name" to "char bdi_unknown_name[]"



?? 2022??05??12?? 23:29, Muchun Song д??:
> On Thu, May 12, 2022 at 04:26:37PM +0800, liqiong wrote:
>> "char bdi_unknown_nam[]" string form declares a single variable.
>> It is better then "char *bdi_unknown_name" which creates two
>> variables.
>>
> Sorry, I do not understand what you are saying here. Creating
> two variables means what?
>
> Thanks.

Hi there??

The string form of "char *" creates two variables in the final assembly output,
a static string, and a char pointer to the static string.

Use "objdump -S -D *.o", can find out the static string occurring at
"Contents of section .rodata".


>
>> Signed-off-by: liqiong <[email protected]>
>> ---
>> mm/backing-dev.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/mm/backing-dev.c b/mm/backing-dev.c
>> index 7176af65b103..4982ccc63536 100644
>> --- a/mm/backing-dev.c
>> +++ b/mm/backing-dev.c
>> @@ -20,7 +20,7 @@ struct backing_dev_info noop_backing_dev_info;
>> EXPORT_SYMBOL_GPL(noop_backing_dev_info);
>>
>> static struct class *bdi_class;
>> -static const char *bdi_unknown_name = "(unknown)";
>> +static const char bdi_unknown_name[] = "(unknown)";
>>
>> /*
>> * bdi_lock protects bdi_tree and updates to bdi_list. bdi_list has RCU
>> --
>> 2.11.0
>>
>>

--
?????? <13524287433>
?Ϻ????ֶ?????????·99???п?Ժ?Ϻ??ߵ??о?Ժ3??¥3¥