RE: [PATCH] kernel: x86: tboot: Replace mdelay with usleep_range in tboot_wait_for_aps

From: Sun, Ning
Date: Wed Jan 24 2018 - 12:20:36 EST


It looks like tboot_wait_for_aps(...) is not called in atomic context .

mdelay(1) delays exactly 1msecs, I understand udelay(...) may not be appropriate, as it is used for delay around 20usecs.
In terms of reducing busy wait, how can we determine the range in usleep_range(...) is 1000 to 2000, not from 20 to 1000?

Thanks,
-ning


-----Original Message-----
From: Jia-Ju Bai [mailto:baijiaju1990@xxxxxxxxx]
Sent: Wednesday, January 24, 2018 5:38 AM
To: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Sun, Ning <ning.sun@xxxxxxxxx>; mingo@xxxxxxxxxx; hpa@xxxxxxxxx; x86@xxxxxxxxxx; tboot-devel@xxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH] kernel: x86: tboot: Replace mdelay with usleep_range in tboot_wait_for_aps


On 2018/1/24 19:47, Thomas Gleixner wrote:
> On Wed, 24 Jan 2018, Jia-Ju Bai wrote:
>
>> The function tboot_wait_for_aps is not called in atomic context.
>> Thus mdelay can be replaced with usleep_range, to reduce busy wait.
> And how did you establish that it's not called in atomic context?
>
> Thanks,
>
> tglx

It is reported by a static analysis tool written by myself.
This tool finds that mdelay in tboot_wait_for_aps is not called by holding a spinlock or in an interrupt handler, thus mdelay can be replaced.


Thanks,
Jia-Ju Bai