mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [stable 4.4: PATCH] sched/cputime: Fix prev steal time accouting during CPU hotplug
@ 2017-08-01  4:18 Andres Oportus
       [not found] ` <CAFEhuF=+NLG7UDpDD4oOi-78O7svMWHnJpErcvn743=bfymjcQ@mail.gmail.com>
  0 siblings, 1 reply; 3+ messages in thread
From: Andres Oportus @ 2017-08-01  4:18 UTC (permalink / raw)
  To: stable
  Cc: linux-kernel, Wanpeng Li, Peter Zijlstra (Intel),
	Frederic Weisbecker, Linus Torvalds, Mike Galbraith,
	Radim Krčmář,
	Rik van Riel, Thomas Gleixner, Ingo Molnar, Greg Kroah-Hartman,
	Andres Oportus

commit 3d89e5478bf550a50c99e93adf659369798263b0 upstream.

Commit:

  e9532e69b8d1 ("sched/cputime: Fix steal time accounting vs. CPU hotplug")

... set rq->prev_* to 0 after a CPU hotplug comes back, in order to
fix the case where (after CPU hotplug) steal time is smaller than
rq->prev_steal_time.

However, this should never happen. Steal time was only smaller because of the
KVM-specific bug fixed by the previous patch.  Worse, the previous patch
triggers a bug on CPU hot-unplug/plug operation: because
rq->prev_steal_time is cleared, all of the CPU's past steal time will be
accounted again on hot-plug.

Since the root cause has been fixed, we can just revert
commit e9532e69b8d1 ("sched/cputime: Fix steal time accounting vs. CPU hotplug").

Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Radim Krčmář <rkrcmar@redhat.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: 'commit e9532e69b8d1 ("sched/cputime: Fix steal time accounting vs. CPU hotplug")'
Link: http://lkml.kernel.org/r/1465813966-3116-3-git-send-email-wanpeng.li@hotmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Andres Oportus <andresoportus@google.com>
---
 kernel/sched/core.c  |  1 -
 kernel/sched/sched.h | 13 -------------
 2 files changed, 14 deletions(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index c436426..b103b9c 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -5553,7 +5553,6 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
 
 	case CPU_UP_PREPARE:
 		rq->calc_load_update = calc_load_update;
-		account_reset_rq(rq);
 		break;
 
 	case CPU_ONLINE:
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 4e5db65..55d92a1 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -1770,16 +1770,3 @@ static inline u64 irq_time_read(int cpu)
 }
 #endif /* CONFIG_64BIT */
 #endif /* CONFIG_IRQ_TIME_ACCOUNTING */
-
-static inline void account_reset_rq(struct rq *rq)
-{
-#ifdef CONFIG_IRQ_TIME_ACCOUNTING
-	rq->prev_irq_time = 0;
-#endif
-#ifdef CONFIG_PARAVIRT
-	rq->prev_steal_time = 0;
-#endif
-#ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
-	rq->prev_steal_time_rq = 0;
-#endif
-}
-- 
1.9.1

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [stable 4.4: PATCH] sched/cputime: Fix prev steal time accouting during CPU hotplug
       [not found] ` <CAFEhuF=+NLG7UDpDD4oOi-78O7svMWHnJpErcvn743=bfymjcQ@mail.gmail.com>
@ 2017-08-02 16:46   ` Paolo Bonzini
  2017-08-04 19:56     ` Greg Kroah-Hartman
  0 siblings, 1 reply; 3+ messages in thread
From: Paolo Bonzini @ 2017-08-02 16:46 UTC (permalink / raw)
  To: Andres Oportus, stable
  Cc: LKML, Wanpeng Li, Peter Zijlstra (Intel),
	Frederic Weisbecker, Linus Torvalds, Mike Galbraith,
	Radim Krčmář,
	Rik van Riel, Thomas Gleixner, Ingo Molnar, Greg Kroah-Hartman,
	Andres Oportus

On 02/08/2017 18:36, Andres Oportus wrote:
> +Paolo Bonzini
> 
> On Mon, Jul 31, 2017 at 9:18 PM, Andres Oportus
> <andresoportus@android.com <mailto:andresoportus@android.com>> wrote:
> 
>     commit 3d89e5478bf550a50c99e93adf659369798263b0 upstream.

Not an easy call because this is a guest patch that depends on a host
patch.  But since it is a corner case (CPU hotplug) and it was
backported to 4.7 already,

Acked-by: Paolo Bonzini <pbonzini@redhat.com>

Paolo

>     Commit:
> 
>       e9532e69b8d1 ("sched/cputime: Fix steal time accounting vs. CPU
>     hotplug")
> 
>     ... set rq->prev_* to 0 after a CPU hotplug comes back, in order to
>     fix the case where (after CPU hotplug) steal time is smaller than
>     rq->prev_steal_time.
> 
>     However, this should never happen. Steal time was only smaller
>     because of the
>     KVM-specific bug fixed by the previous patch.  Worse, the previous patch
>     triggers a bug on CPU hot-unplug/plug operation: because
>     rq->prev_steal_time is cleared, all of the CPU's past steal time will be
>     accounted again on hot-plug.
> 
>     Since the root cause has been fixed, we can just revert
>     commit e9532e69b8d1 ("sched/cputime: Fix steal time accounting vs.
>     CPU hotplug").
> 
>     Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com
>     <mailto:wanpeng.li@hotmail.com>>
>     Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org
>     <mailto:peterz@infradead.org>>
>     Acked-by: Paolo Bonzini <pbonzini@redhat.com
>     <mailto:pbonzini@redhat.com>>
>     Cc: Frederic Weisbecker <fweisbec@gmail.com <mailto:fweisbec@gmail.com>>
>     Cc: Linus Torvalds <torvalds@linux-foundation.org
>     <mailto:torvalds@linux-foundation.org>>
>     Cc: Mike Galbraith <efault@gmx.de <mailto:efault@gmx.de>>
>     Cc: Peter Zijlstra <peterz@infradead.org <mailto:peterz@infradead.org>>
>     Cc: Radim Krčmář <rkrcmar@redhat.com <mailto:rkrcmar@redhat.com>>
>     Cc: Rik van Riel <riel@redhat.com <mailto:riel@redhat.com>>
>     Cc: Thomas Gleixner <tglx@linutronix.de <mailto:tglx@linutronix.de>>
>     Fixes: 'commit e9532e69b8d1 ("sched/cputime: Fix steal time
>     accounting vs. CPU hotplug")'
>     Link:
>     http://lkml.kernel.org/r/1465813966-3116-3-git-send-email-wanpeng.li@hotmail.com
>     <http://lkml.kernel.org/r/1465813966-3116-3-git-send-email-wanpeng.li@hotmail.com>
>     Signed-off-by: Ingo Molnar <mingo@kernel.org <mailto:mingo@kernel.org>>
>     Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org
>     <mailto:gregkh@linuxfoundation.org>>
>     Signed-off-by: Andres Oportus <andresoportus@google.com
>     <mailto:andresoportus@google.com>>
>     ---
>      kernel/sched/core.c  |  1 -
>      kernel/sched/sched.h | 13 -------------
>      2 files changed, 14 deletions(-)
> 
>     diff --git a/kernel/sched/core.c b/kernel/sched/core.c
>     index c436426..b103b9c 100644
>     --- a/kernel/sched/core.c
>     +++ b/kernel/sched/core.c
>     @@ -5553,7 +5553,6 @@ migration_call(struct notifier_block *nfb,
>     unsigned long action, void *hcpu)
> 
>             case CPU_UP_PREPARE:
>                     rq->calc_load_update = calc_load_update;
>     -               account_reset_rq(rq);
>                     break;
> 
>             case CPU_ONLINE:
>     diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
>     index 4e5db65..55d92a1 100644
>     --- a/kernel/sched/sched.h
>     +++ b/kernel/sched/sched.h
>     @@ -1770,16 +1770,3 @@ static inline u64 irq_time_read(int cpu)
>      }
>      #endif /* CONFIG_64BIT */
>      #endif /* CONFIG_IRQ_TIME_ACCOUNTING */
>     -
>     -static inline void account_reset_rq(struct rq *rq)
>     -{
>     -#ifdef CONFIG_IRQ_TIME_ACCOUNTING
>     -       rq->prev_irq_time = 0;
>     -#endif
>     -#ifdef CONFIG_PARAVIRT
>     -       rq->prev_steal_time = 0;
>     -#endif
>     -#ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
>     -       rq->prev_steal_time_rq = 0;
>     -#endif
>     -}
>     --
>     1.9.1
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [stable 4.4: PATCH] sched/cputime: Fix prev steal time accouting during CPU hotplug
  2017-08-02 16:46   ` Paolo Bonzini
@ 2017-08-04 19:56     ` Greg Kroah-Hartman
  0 siblings, 0 replies; 3+ messages in thread
From: Greg Kroah-Hartman @ 2017-08-04 19:56 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Andres Oportus, stable, LKML, Wanpeng Li, Peter Zijlstra (Intel),
	Frederic Weisbecker, Linus Torvalds, Mike Galbraith,
	Radim Krčmář,
	Rik van Riel, Thomas Gleixner, Ingo Molnar, Andres Oportus

On Wed, Aug 02, 2017 at 06:46:46PM +0200, Paolo Bonzini wrote:
> On 02/08/2017 18:36, Andres Oportus wrote:
> > +Paolo Bonzini
> > 
> > On Mon, Jul 31, 2017 at 9:18 PM, Andres Oportus
> > <andresoportus@android.com <mailto:andresoportus@android.com>> wrote:
> > 
> >     commit 3d89e5478bf550a50c99e93adf659369798263b0 upstream.
> 
> Not an easy call because this is a guest patch that depends on a host
> patch.  But since it is a corner case (CPU hotplug) and it was
> backported to 4.7 already,
> 
> Acked-by: Paolo Bonzini <pbonzini@redhat.com>

Thanks for the review, now queued up.

greg k-h

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-08-04 19:56 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-01  4:18 [stable 4.4: PATCH] sched/cputime: Fix prev steal time accouting during CPU hotplug Andres Oportus
     [not found] ` <CAFEhuF=+NLG7UDpDD4oOi-78O7svMWHnJpErcvn743=bfymjcQ@mail.gmail.com>
2017-08-02 16:46   ` Paolo Bonzini
2017-08-04 19:56     ` Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome