From: Marco Elver
Sent: 21 May 2021 10:48
On Fri, May 21, 2021 at 09:39AM +0000, David Laight wrote:
From: Marco Elver
Sent: 21 May 2021 09:32
Since wait_event() uses TASK_UNINTERRUPTIBLE by default, waiting for an allocation counts towards load. However, for KFENCE, this does not make any sense, since there is no busy work we're awaiting.
Instead, use TASK_IDLE via wait_event_idle() to not count towards load.
Doesn't that let the process be interruptible by a signal. Which is probably not desirable.
There really ought to be a way of sleeping with TASK_UNINTERRUPTIBLE without changing the load-average.
That's what TASK_IDLE is:
include/linux/sched.h:#define TASK_IDLE (TASK_UNINTERRUPTIBLE | TASK_NOLOAD)
That's been added since I last tried to stop tasks updating the load-average :-)
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)