Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p->last_ran value

2007-03-01 Thread Andrew Morton
On Thu, 01 Mar 2007 18:45:14 -0500
Chuck Ebbert <[EMAIL PROTECTED]> wrote:

> Thomas Gleixner wrote:
> > Problem description at:
> > http://bugzilla.kernel.org/show_bug.cgi?id=8048
> > 
> > Commit b18ec80396834497933d77b81ec0918519f4e2a7 
> > [PATCH] sched: improve migration accuracy
> > optimized the scheduler time calculations, but broke posix-cpu-timers.
> > 
> > The problem is that the p->last_ran value is not updated after a context
> > switch. So a subsequent call to current_sched_time() calculates with a
> > stale p->last_ran value, i.e. accounts the full time, which the task was
> > scheduled away.
> > 
> > Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
> > 
> > Index: linux-2.6/kernel/sched.c
> > ===
> > --- linux-2.6.orig/kernel/sched.c
> > +++ linux-2.6/kernel/sched.c
> > @@ -3566,7 +3566,7 @@ switch_tasks:
> >  
> > sched_info_switch(prev, next);
> > if (likely(prev != next)) {
> > -   next->timestamp = now;
> > +   next->timestamp = next->last_ran = now;
> > rq->nr_switches++;
> > rq->curr = next;
> > ++*switch_count;
> > 
> 
> Is this going to be merged or not??

It just hit mainline.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p->last_ran value

2007-03-01 Thread Chuck Ebbert
Thomas Gleixner wrote:
> Problem description at:
> http://bugzilla.kernel.org/show_bug.cgi?id=8048
> 
> Commit b18ec80396834497933d77b81ec0918519f4e2a7 
> [PATCH] sched: improve migration accuracy
> optimized the scheduler time calculations, but broke posix-cpu-timers.
> 
> The problem is that the p->last_ran value is not updated after a context
> switch. So a subsequent call to current_sched_time() calculates with a
> stale p->last_ran value, i.e. accounts the full time, which the task was
> scheduled away.
> 
> Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
> 
> Index: linux-2.6/kernel/sched.c
> ===
> --- linux-2.6.orig/kernel/sched.c
> +++ linux-2.6/kernel/sched.c
> @@ -3566,7 +3566,7 @@ switch_tasks:
>  
>   sched_info_switch(prev, next);
>   if (likely(prev != next)) {
> - next->timestamp = now;
> + next->timestamp = next->last_ran = now;
>   rq->nr_switches++;
>   rq->curr = next;
>   ++*switch_count;
> 

Is this going to be merged or not??

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p-last_ran value

2007-03-01 Thread Chuck Ebbert
Thomas Gleixner wrote:
 Problem description at:
 http://bugzilla.kernel.org/show_bug.cgi?id=8048
 
 Commit b18ec80396834497933d77b81ec0918519f4e2a7 
 [PATCH] sched: improve migration accuracy
 optimized the scheduler time calculations, but broke posix-cpu-timers.
 
 The problem is that the p-last_ran value is not updated after a context
 switch. So a subsequent call to current_sched_time() calculates with a
 stale p-last_ran value, i.e. accounts the full time, which the task was
 scheduled away.
 
 Signed-off-by: Thomas Gleixner [EMAIL PROTECTED]
 
 Index: linux-2.6/kernel/sched.c
 ===
 --- linux-2.6.orig/kernel/sched.c
 +++ linux-2.6/kernel/sched.c
 @@ -3566,7 +3566,7 @@ switch_tasks:
  
   sched_info_switch(prev, next);
   if (likely(prev != next)) {
 - next-timestamp = now;
 + next-timestamp = next-last_ran = now;
   rq-nr_switches++;
   rq-curr = next;
   ++*switch_count;
 

Is this going to be merged or not??

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p-last_ran value

2007-03-01 Thread Andrew Morton
On Thu, 01 Mar 2007 18:45:14 -0500
Chuck Ebbert [EMAIL PROTECTED] wrote:

 Thomas Gleixner wrote:
  Problem description at:
  http://bugzilla.kernel.org/show_bug.cgi?id=8048
  
  Commit b18ec80396834497933d77b81ec0918519f4e2a7 
  [PATCH] sched: improve migration accuracy
  optimized the scheduler time calculations, but broke posix-cpu-timers.
  
  The problem is that the p-last_ran value is not updated after a context
  switch. So a subsequent call to current_sched_time() calculates with a
  stale p-last_ran value, i.e. accounts the full time, which the task was
  scheduled away.
  
  Signed-off-by: Thomas Gleixner [EMAIL PROTECTED]
  
  Index: linux-2.6/kernel/sched.c
  ===
  --- linux-2.6.orig/kernel/sched.c
  +++ linux-2.6/kernel/sched.c
  @@ -3566,7 +3566,7 @@ switch_tasks:
   
  sched_info_switch(prev, next);
  if (likely(prev != next)) {
  -   next-timestamp = now;
  +   next-timestamp = next-last_ran = now;
  rq-nr_switches++;
  rq-curr = next;
  ++*switch_count;
  
 
 Is this going to be merged or not??

It just hit mainline.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p->last_ran value

2007-02-22 Thread John

Thomas Gleixner wrote:


Problem description at:
http://bugzilla.kernel.org/show_bug.cgi?id=8048

Commit b18ec80396834497933d77b81ec0918519f4e2a7 
[PATCH] sched: improve migration accuracy

optimized the scheduler time calculations, but broke posix-cpu-timers.

The problem is that the p->last_ran value is not updated after a context
switch. So a subsequent call to current_sched_time() calculates with a
stale p->last_ran value, i.e. accounts the full time, which the task was
scheduled away.


Could you expand on the impact of this bug for non-kernel hackers? :-)

I'm currently testing 2.6.20-rt5. My app runs in SCHED_RR and just 
blocks waiting for several signals. Since my app is the only SCHED_RR 
process running on the system, I get the impression that I'm not 
affected by this bug. Is that correct?



Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>

Index: linux-2.6/kernel/sched.c
===
--- linux-2.6.orig/kernel/sched.c
+++ linux-2.6/kernel/sched.c
@@ -3566,7 +3566,7 @@ switch_tasks:
 
 	sched_info_switch(prev, next);

if (likely(prev != next)) {
-   next->timestamp = now;
+   next->timestamp = next->last_ran = now;
rq->nr_switches++;
rq->curr = next;
++*switch_count;


Regards,

John
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p->last_ran value

2007-02-22 Thread Mike Galbraith
On Thu, 2007-02-22 at 01:33 +0100, Thomas Gleixner wrote:
> Problem description at:
> http://bugzilla.kernel.org/show_bug.cgi?id=8048
> 
> Commit b18ec80396834497933d77b81ec0918519f4e2a7 
> [PATCH] sched: improve migration accuracy
> optimized the scheduler time calculations, but broke posix-cpu-timers.
> 
> The problem is that the p->last_ran value is not updated after a context
> switch. So a subsequent call to current_sched_time() calculates with a
> stale p->last_ran value, i.e. accounts the full time, which the task was
> scheduled away.

Oops, missed that.  You could also remove the prev->last_ran assignment
just above your addition, and turn this into a negative cost bugfix :)

-Mike

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p-last_ran value

2007-02-22 Thread Mike Galbraith
On Thu, 2007-02-22 at 01:33 +0100, Thomas Gleixner wrote:
 Problem description at:
 http://bugzilla.kernel.org/show_bug.cgi?id=8048
 
 Commit b18ec80396834497933d77b81ec0918519f4e2a7 
 [PATCH] sched: improve migration accuracy
 optimized the scheduler time calculations, but broke posix-cpu-timers.
 
 The problem is that the p-last_ran value is not updated after a context
 switch. So a subsequent call to current_sched_time() calculates with a
 stale p-last_ran value, i.e. accounts the full time, which the task was
 scheduled away.

Oops, missed that.  You could also remove the prev-last_ran assignment
just above your addition, and turn this into a negative cost bugfix :)

-Mike

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p-last_ran value

2007-02-22 Thread John

Thomas Gleixner wrote:


Problem description at:
http://bugzilla.kernel.org/show_bug.cgi?id=8048

Commit b18ec80396834497933d77b81ec0918519f4e2a7 
[PATCH] sched: improve migration accuracy

optimized the scheduler time calculations, but broke posix-cpu-timers.

The problem is that the p-last_ran value is not updated after a context
switch. So a subsequent call to current_sched_time() calculates with a
stale p-last_ran value, i.e. accounts the full time, which the task was
scheduled away.


Could you expand on the impact of this bug for non-kernel hackers? :-)

I'm currently testing 2.6.20-rt5. My app runs in SCHED_RR and just 
blocks waiting for several signals. Since my app is the only SCHED_RR 
process running on the system, I get the impression that I'm not 
affected by this bug. Is that correct?



Signed-off-by: Thomas Gleixner [EMAIL PROTECTED]

Index: linux-2.6/kernel/sched.c
===
--- linux-2.6.orig/kernel/sched.c
+++ linux-2.6/kernel/sched.c
@@ -3566,7 +3566,7 @@ switch_tasks:
 
 	sched_info_switch(prev, next);

if (likely(prev != next)) {
-   next-timestamp = now;
+   next-timestamp = next-last_ran = now;
rq-nr_switches++;
rq-curr = next;
++*switch_count;


Regards,

John
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p->last_ran value

2007-02-21 Thread Thomas Gleixner
On Thu, 2007-02-22 at 08:46 +0100, Ingo Molnar wrote:
> * Thomas Gleixner <[EMAIL PROTECTED]> wrote:
> 
> > The problem is that the p->last_ran value is not updated after a 
> > context switch. So a subsequent call to current_sched_time() 
> > calculates with a stale p->last_ran value, i.e. accounts the full 
> > time, which the task was scheduled away.
> > 
> > Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
> 
> > sched_info_switch(prev, next);
> > if (likely(prev != next)) {
> > -   next->timestamp = now;
> > +   next->timestamp = next->last_ran = now;
> 
> ouch! nice catch. Also for v2.6.20.2 i think. 2.6.19 should be 
> unaffected.

Yes, was introduced in 2.6.20 and definitely should hit the stable tree.

tglx


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p->last_ran value

2007-02-21 Thread Ingo Molnar

* Thomas Gleixner <[EMAIL PROTECTED]> wrote:

> The problem is that the p->last_ran value is not updated after a 
> context switch. So a subsequent call to current_sched_time() 
> calculates with a stale p->last_ran value, i.e. accounts the full 
> time, which the task was scheduled away.
> 
> Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>

>   sched_info_switch(prev, next);
>   if (likely(prev != next)) {
> - next->timestamp = now;
> + next->timestamp = next->last_ran = now;

ouch! nice catch. Also for v2.6.20.2 i think. 2.6.19 should be 
unaffected.

Acked-by: Ingo Molnar <[EMAIL PROTECTED]>

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] Fix posix-cpu-timer breakage caused by stale p->last_ran value

2007-02-21 Thread Thomas Gleixner
Problem description at:
http://bugzilla.kernel.org/show_bug.cgi?id=8048

Commit b18ec80396834497933d77b81ec0918519f4e2a7 
[PATCH] sched: improve migration accuracy
optimized the scheduler time calculations, but broke posix-cpu-timers.

The problem is that the p->last_ran value is not updated after a context
switch. So a subsequent call to current_sched_time() calculates with a
stale p->last_ran value, i.e. accounts the full time, which the task was
scheduled away.

Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>

Index: linux-2.6/kernel/sched.c
===
--- linux-2.6.orig/kernel/sched.c
+++ linux-2.6/kernel/sched.c
@@ -3566,7 +3566,7 @@ switch_tasks:
 
sched_info_switch(prev, next);
if (likely(prev != next)) {
-   next->timestamp = now;
+   next->timestamp = next->last_ran = now;
rq->nr_switches++;
rq->curr = next;
++*switch_count;



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] Fix posix-cpu-timer breakage caused by stale p-last_ran value

2007-02-21 Thread Thomas Gleixner
Problem description at:
http://bugzilla.kernel.org/show_bug.cgi?id=8048

Commit b18ec80396834497933d77b81ec0918519f4e2a7 
[PATCH] sched: improve migration accuracy
optimized the scheduler time calculations, but broke posix-cpu-timers.

The problem is that the p-last_ran value is not updated after a context
switch. So a subsequent call to current_sched_time() calculates with a
stale p-last_ran value, i.e. accounts the full time, which the task was
scheduled away.

Signed-off-by: Thomas Gleixner [EMAIL PROTECTED]

Index: linux-2.6/kernel/sched.c
===
--- linux-2.6.orig/kernel/sched.c
+++ linux-2.6/kernel/sched.c
@@ -3566,7 +3566,7 @@ switch_tasks:
 
sched_info_switch(prev, next);
if (likely(prev != next)) {
-   next-timestamp = now;
+   next-timestamp = next-last_ran = now;
rq-nr_switches++;
rq-curr = next;
++*switch_count;



-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p-last_ran value

2007-02-21 Thread Ingo Molnar

* Thomas Gleixner [EMAIL PROTECTED] wrote:

 The problem is that the p-last_ran value is not updated after a 
 context switch. So a subsequent call to current_sched_time() 
 calculates with a stale p-last_ran value, i.e. accounts the full 
 time, which the task was scheduled away.
 
 Signed-off-by: Thomas Gleixner [EMAIL PROTECTED]

   sched_info_switch(prev, next);
   if (likely(prev != next)) {
 - next-timestamp = now;
 + next-timestamp = next-last_ran = now;

ouch! nice catch. Also for v2.6.20.2 i think. 2.6.19 should be 
unaffected.

Acked-by: Ingo Molnar [EMAIL PROTECTED]

Ingo
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Fix posix-cpu-timer breakage caused by stale p-last_ran value

2007-02-21 Thread Thomas Gleixner
On Thu, 2007-02-22 at 08:46 +0100, Ingo Molnar wrote:
 * Thomas Gleixner [EMAIL PROTECTED] wrote:
 
  The problem is that the p-last_ran value is not updated after a 
  context switch. So a subsequent call to current_sched_time() 
  calculates with a stale p-last_ran value, i.e. accounts the full 
  time, which the task was scheduled away.
  
  Signed-off-by: Thomas Gleixner [EMAIL PROTECTED]
 
  sched_info_switch(prev, next);
  if (likely(prev != next)) {
  -   next-timestamp = now;
  +   next-timestamp = next-last_ran = now;
 
 ouch! nice catch. Also for v2.6.20.2 i think. 2.6.19 should be 
 unaffected.

Yes, was introduced in 2.6.20 and definitely should hit the stable tree.

tglx


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/