Re: linux-next: build failure after merge of the block tree

From: Jens Axboe
Date: Wed Jul 15 2020 - 11:25:22 EST


On 7/15/20 9:22 AM, Geert Uytterhoeven wrote:
> Hi Jens,
>
>> On Wed, Jul 15, 2020 at 5:08 PM Jens Axboe <axboe@xxxxxxxxx> wrote:
>>> On 7/15/20 3:24 AM, Geert Uytterhoeven wrote:
>>>> On Wed, Jul 15, 2020 at 4:26 AM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>>>>> After merging the block tree, today's linux-next build (arm
>>>>> multi_v7_defconfig) failed like this:
>>>>>
>>>>> block/blk-timeout.c: In function 'blk_round_jiffies':
>>>>> block/blk-timeout.c:96:14: error: 'CONFIG_HZ_ROUGH_MASK' undeclared (first use in this function)
>>>>> 96 | return (j + CONFIG_HZ_ROUGH_MASK) + 1;
>>>>> | ^~~~~~~~~~~~~~~~~~~~
>>>>>
>>>>> Caused by commit
>>>>>
>>>>> 91ba0f529364 ("block: relax jiffies rounding for timeouts")
>>>>>
>>>>> CONFIG_HZ_ROUGH_MASK is not defined for this build even though
>>>>> CONFIG_HZ_100 is set. The arm arch does not include kernel/Kconfig.hz.
>>>>>
>>>>> I have reverted that commit for today.
>>>>
>>>> (as I don't have the original patch in my email, I'm commenting here)
>>>>
>>>> +config HZ_ROUGH_MASK
>>>> + int
>>>> + default 127 if HZ_100
>>>> + default 255 if HZ_250 || HZ_300
>>>> + default 1023 if HZ_1000
>>>>
>>>> What about other HZ_* values?
>>>
>>> Which other ones do we have?
>>
>> $ git grep "\<HZ_[0-9]" -- "*Kconf*"
>> arch/alpha/Kconfig: default HZ_128 if ALPHA_QEMU
>> arch/alpha/Kconfig: default HZ_1200 if ALPHA_RAWHIDE
>> arch/alpha/Kconfig: default HZ_1024
>
> And ARC allows you to enter any integer value:
>
> config HZ
> int "Timer Frequency"
> default 100
>
> So probably you want to derive something from the integer value itself.
>
> Note that not all architectures include kernel/Kconfig.hz.

I've dropped the dependency on Kconfig solving it, and just made it
an initcall setup to generate the mask. That should work on all archs
and not be dependent on fixed HZ settings.

--
Jens Axboe