2022-10-13 18:56:22

by Leonardo Bras

[permalink] [raw]
Subject: [PATCH v2 2/4] sched/isolation: Improve documentation

Improve documentation on housekeeping types and what to expect from
housekeeping functions.

Signed-off-by: Leonardo Bras <[email protected]>
---
include/linux/sched/isolation.h | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/include/linux/sched/isolation.h b/include/linux/sched/isolation.h
index 762701f295d1c..9333c28153a7a 100644
--- a/include/linux/sched/isolation.h
+++ b/include/linux/sched/isolation.h
@@ -7,18 +7,25 @@
#include <linux/tick.h>

enum hk_type {
- HK_TYPE_TIMER,
- HK_TYPE_RCU,
- HK_TYPE_MISC,
- HK_TYPE_SCHED,
- HK_TYPE_TICK,
- HK_TYPE_DOMAIN,
- HK_TYPE_WQ,
- HK_TYPE_MANAGED_IRQ,
- HK_TYPE_KTHREAD,
+ HK_TYPE_TIMER, /* Timer interrupt, watchdogs */
+ HK_TYPE_RCU, /* RCU callbacks */
+ HK_TYPE_MISC, /* Minor housekeeping categories */
+ HK_TYPE_SCHED, /* Scheduling and idle load balancing */
+ HK_TYPE_TICK, /* See isolcpus=nohz boot parameter */
+ HK_TYPE_DOMAIN, /* See isolcpus=domain boot parameter*/
+ HK_TYPE_WQ, /* Work Queues*/
+ HK_TYPE_MANAGED_IRQ, /* See isolcpus=managed_irq boot parameter */
+ HK_TYPE_KTHREAD, /* kernel threads */
HK_TYPE_MAX
};

+/* Kernel parameters like nohz_full and isolcpus allow passing cpu numbers
+ * for disabling housekeeping types.
+ *
+ * The functions bellow work the opposite way, by referencing which cpus
+ * are able to perform the housekeeping type in parameter.
+ */
+
#ifdef CONFIG_CPU_ISOLATION
DECLARE_STATIC_KEY_FALSE(housekeeping_overridden);
int housekeeping_any_cpu(enum hk_type type);
--
2.38.0


2022-12-17 05:18:27

by Leonardo Bras

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] sched/isolation: Improve documentation

On Tue, 2022-11-29 at 12:54 +0100, Frederic Weisbecker wrote:
> On Thu, Oct 13, 2022 at 03:40:27PM -0300, Leonardo Bras wrote:
> > Improve documentation on housekeeping types and what to expect from
> > housekeeping functions.
> >
> > Signed-off-by: Leonardo Bras <[email protected]>
> > ---
> > include/linux/sched/isolation.h | 25 ++++++++++++++++---------
> > 1 file changed, 16 insertions(+), 9 deletions(-)
> >
> > diff --git a/include/linux/sched/isolation.h b/include/linux/sched/isolation.h
> > index 762701f295d1c..9333c28153a7a 100644
> > --- a/include/linux/sched/isolation.h
> > +++ b/include/linux/sched/isolation.h
> > @@ -7,18 +7,25 @@
> > #include <linux/tick.h>
> >
> > enum hk_type {
> > - HK_TYPE_TIMER,
> > - HK_TYPE_RCU,
> > - HK_TYPE_MISC,
> > - HK_TYPE_SCHED,
> > - HK_TYPE_TICK,
> > - HK_TYPE_DOMAIN,
> > - HK_TYPE_WQ,
> > - HK_TYPE_MANAGED_IRQ,
> > - HK_TYPE_KTHREAD,
> > + HK_TYPE_TIMER, /* Timer interrupt, watchdogs */
>
> More precisely:
>
> /* Unbound timer callbacks */
>
> > + HK_TYPE_RCU, /* RCU callbacks */
>
> More generally, because it's more than just about callbacks:
>
> /* Unbound RCU work */

Both updated, thanks!

Out of curiosity, what does 'Unbound' means in this context?

>
> > + HK_TYPE_MISC, /* Minor housekeeping categories */
> > + HK_TYPE_SCHED, /* Scheduling and idle load balancing */
> > + HK_TYPE_TICK, /* See isolcpus=nohz boot parameter */
>
> Yes or nohz_full=
>
> > + HK_TYPE_DOMAIN, /* See isolcpus=domain boot parameter*/
> > + HK_TYPE_WQ, /* Work Queues*/
>
> /* Unbound workqueues */
>
> > + HK_TYPE_MANAGED_IRQ, /* See isolcpus=managed_irq boot parameter */
> > + HK_TYPE_KTHREAD, /* kernel threads */
>
> /* Unbound kernel threads */
>
>
> > HK_TYPE_MAX
> > };
> >
> > +/* Kernel parameters like nohz_full and isolcpus allow passing cpu numbers
> > + * for disabling housekeeping types.
> > + *
> > + * The functions bellow work the opposite way, by referencing which cpus
> > + * are able to perform the housekeeping type in parameter.
> > + */
>
> *below
>
> Thanks!

Done, done, done, done.
Thanks a lot for reviewing!

Best regards,
Leo

>
> > +
> > #ifdef CONFIG_CPU_ISOLATION
> > DECLARE_STATIC_KEY_FALSE(housekeeping_overridden);
> > int housekeeping_any_cpu(enum hk_type type);
> > --
> > 2.38.0
> >
>