Re: [PATCH v5 2/3] x86/bus_lock: Handle #DB for bus lock
From: Thomas Gleixner
Date: Wed Apr 14 2021 - 05:41:42 EST
Fenghua,
On Tue, Apr 13 2021 at 23:40, Fenghua Yu wrote:
> On Mon, Apr 12, 2021 at 09:15:08AM +0200, Thomas Gleixner wrote:
>> Aside of that why are you trying to make this throttling in any way
>> accurate? It does not matter at all, really. Limit reached, put it to
>> sleep for some time and be done with it. No point in trying to be clever
>> for no value.
>
> Is it OK to set bld_ratelimit between 1 and 1,000 bus locks/sec for
> bld_ratelimit?
>
> Can I do the throttling like this?
>
> /* Enforce no more than bld_ratelimit bus locks/sec. */
> while (!__ratelimit(&global_bld_ratelimit))
> msleep(10);
>
> On one machine, if bld_ratelimit=1,000, that's about 5msec for a busy
> bus lock loop, i.e. bus is locked for about 5msec and then the process
> sleeps for 10msec and thus won't generate any bus lock.
> "dd" command running on other cores doesn't have noticeable degradation
> with bld_ratelimit=1,000.
Something like this makes sense. Add some rationale for the upper limit
you finally end up with so sysadmins can make informed decisions.
Thanks,
tglx