2011-04-29 18:02:12

by Rakib Mullick

[permalink] [raw]
Subject: [PATCH] sched: Use proper type for runqueue's idle_at_tick.

Searching over scheduler code for uses of idle_at_tick, tells that its been used for making TRUE/FALSE decision. But, its been declared as 'unsigned char', using 'bool' is more rational here. So, for consistency use 'bool' as idle_at_tick type instead of 'unsigned char'.

Signed-off-by: Rakib Mullick <[email protected]>
---

diff --git a/kernel/sched.c b/kernel/sched.c
index 8cb0a57..d9f7f98 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -505,7 +505,7 @@ struct rq {

unsigned long cpu_power;

- unsigned char idle_at_tick;
+ bool idle_at_tick;
/* For active balancing */
int post_schedule;
int active_balance;


2011-04-30 07:16:21

by Rakib Mullick

[permalink] [raw]
Subject: [tip:sched/core] sched: Use bool type for rq->idle_at_tick

Commit-ID: eea502ffd4aeef233b5eadbde405a9df92d57a5e
Gitweb: http://git.kernel.org/tip/eea502ffd4aeef233b5eadbde405a9df92d57a5e
Author: Rakib Mullick <[email protected]>
AuthorDate: Sat, 30 Apr 2011 00:01:02 +0600
Committer: Ingo Molnar <[email protected]>
CommitDate: Sat, 30 Apr 2011 00:17:14 +0200

sched: Use bool type for rq->idle_at_tick

Searching over the scheduler code for uses of rq->idle_at_tick
shows us that it's used for making TRUE/FALSE decision.

Still its type is 'unsigned char' so using 'bool' would be
cleaner.

Signed-off-by: Rakib Mullick <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
---
kernel/sched.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/sched.c b/kernel/sched.c
index f11a2a5..a492209 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -505,7 +505,7 @@ struct rq {

unsigned long cpu_power;

- unsigned char idle_at_tick;
+ bool idle_at_tick;
/* For active balancing */
int post_schedule;
int active_balance;

2011-05-11 16:16:12

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [tip:sched/core] sched: Use bool type for rq->idle_at_tick

On Sat, 2011-04-30 at 07:16 +0000, tip-bot for Rakib Mullick wrote:
> Commit-ID: eea502ffd4aeef233b5eadbde405a9df92d57a5e
> Gitweb: http://git.kernel.org/tip/eea502ffd4aeef233b5eadbde405a9df92d57a5e
> Author: Rakib Mullick <[email protected]>
> AuthorDate: Sat, 30 Apr 2011 00:01:02 +0600
> Committer: Ingo Molnar <[email protected]>
> CommitDate: Sat, 30 Apr 2011 00:17:14 +0200
>
> sched: Use bool type for rq->idle_at_tick
>
> Searching over the scheduler code for uses of rq->idle_at_tick
> shows us that it's used for making TRUE/FALSE decision.
>
> Still its type is 'unsigned char' so using 'bool' would be
> cleaner.
>
> Signed-off-by: Rakib Mullick <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Link: http://lkml.kernel.org/r/[email protected]
> Signed-off-by: Ingo Molnar <[email protected]>
> ---
> kernel/sched.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/kernel/sched.c b/kernel/sched.c
> index f11a2a5..a492209 100644
> --- a/kernel/sched.c
> +++ b/kernel/sched.c
> @@ -505,7 +505,7 @@ struct rq {
>
> unsigned long cpu_power;
>
> - unsigned char idle_at_tick;
> + bool idle_at_tick;
> /* For active balancing */
> int post_schedule;
> int active_balance;

Right, so the problem I have with using bool in structures is that
sizeof(_Bool) is not well defined by the C standard and is
implementation dependent, meaning the struct rq layout can change
between gcc versions, architectures or even between optimization levels.

So for structures where the layout is relevant we must avoid bool.

2011-05-11 17:16:40

by Ingo Molnar

[permalink] [raw]
Subject: Re: [tip:sched/core] sched: Use bool type for rq->idle_at_tick


* Peter Zijlstra <[email protected]> wrote:

> On Sat, 2011-04-30 at 07:16 +0000, tip-bot for Rakib Mullick wrote:
> > Commit-ID: eea502ffd4aeef233b5eadbde405a9df92d57a5e
> > Gitweb: http://git.kernel.org/tip/eea502ffd4aeef233b5eadbde405a9df92d57a5e
> > Author: Rakib Mullick <[email protected]>
> > AuthorDate: Sat, 30 Apr 2011 00:01:02 +0600
> > Committer: Ingo Molnar <[email protected]>
> > CommitDate: Sat, 30 Apr 2011 00:17:14 +0200
> >
> > sched: Use bool type for rq->idle_at_tick
> >
> > Searching over the scheduler code for uses of rq->idle_at_tick
> > shows us that it's used for making TRUE/FALSE decision.
> >
> > Still its type is 'unsigned char' so using 'bool' would be
> > cleaner.
> >
> > Signed-off-by: Rakib Mullick <[email protected]>
> > Cc: Peter Zijlstra <[email protected]>
> > Link: http://lkml.kernel.org/r/[email protected]
> > Signed-off-by: Ingo Molnar <[email protected]>
> > ---
> > kernel/sched.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/kernel/sched.c b/kernel/sched.c
> > index f11a2a5..a492209 100644
> > --- a/kernel/sched.c
> > +++ b/kernel/sched.c
> > @@ -505,7 +505,7 @@ struct rq {
> >
> > unsigned long cpu_power;
> >
> > - unsigned char idle_at_tick;
> > + bool idle_at_tick;
> > /* For active balancing */
> > int post_schedule;
> > int active_balance;
>
> Right, so the problem I have with using bool in structures is that
> sizeof(_Bool) is not well defined by the C standard and is
> implementation dependent, meaning the struct rq layout can change
> between gcc versions, architectures or even between optimization levels.
>
> So for structures where the layout is relevant we must avoid bool.

Okay, zapped it stays then.

Thanks,

Ingo