All of lore.kernel.org
 help / color / mirror / Atom feed
* 2.6.16-rc3 macromedia flash regression...
@ 2006-02-17  4:08 Ernst Herzberg
  2006-02-17  7:10 ` Andrew Morton
  2006-02-17  7:23 ` Andrew Morton
  0 siblings, 2 replies; 8+ messages in thread
From: Ernst Herzberg @ 2006-02-17  4:08 UTC (permalink / raw)
  To: linux-kernel


.... or not regession, that's the question.

2.6.16-rc2 works without problems.

With -rc3 a .swf that opens a ip connection back to the server takes ages to 
load. strace shows that the player hangs for long times in select().

Digging through the changelog brings up

commit 643a654540579b0dcc7a206a4a7475276a41aff0
Author: Andrew Morton <akpm@osdl.org>
Date:   Sat Feb 11 17:55:52 2006 -0800

    [PATCH] select: fix returned timeval


Reverting the patch partial like

--- lx-2.6.16-rc3/fs/select.c   2006-02-17 04:35:10.000000000 +0100
+++ lx-2.6.16-rc3.old/fs/select.c       2006-02-17 04:44:00.000000000 +0100
@@ -404,8 +404,6 @@ asmlinkage long sys_select(int n, fd_set
                        goto sticky;
                rtv.tv_usec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ));
                rtv.tv_sec = timeout;
-               if (timeval_compare(&rtv, &tv) < 0)
-                       rtv = tv;
                if (copy_to_user(tvp, &rtv, sizeof(rtv))) {
 sticky:
                        /*
@@ -471,8 +469,6 @@ asmlinkage long sys_pselect7(int n, fd_s
                rts.tv_nsec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ)) 
*
                                                1000;
                rts.tv_sec = timeout;
-               if (timespec_compare(&rts, &ts) < 0)
-                       rts = ts;
                if (copy_to_user(tsp, &rts, sizeof(rts))) {
 sticky:
                        /*

----------------------

fixed that, the player works again in normal speed.

The player is the newest from macromedia (7.0.61.0, gentoo ebuild), binary 
only of course:( Reading the patch and the documentation of select() i think 
the player is buggy... but works until 2.6.16-rc3

So what is your opinion? I think, macromedia should fix the player... 

Thanks 

<earny/>

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

* Re: 2.6.16-rc3 macromedia flash regression...
  2006-02-17  4:08 2.6.16-rc3 macromedia flash regression Ernst Herzberg
@ 2006-02-17  7:10 ` Andrew Morton
  2006-02-17 19:37   ` Ernst Herzberg
  2006-02-17  7:23 ` Andrew Morton
  1 sibling, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2006-02-17  7:10 UTC (permalink / raw)
  To: earny; +Cc: list-lkml, linux-kernel

Ernst Herzberg <list-lkml@net4u.de> wrote:
>
> .... or not regession, that's the question.
> 
>  2.6.16-rc2 works without problems.
> 
>  With -rc3 a .swf that opens a ip connection back to the server takes ages to 
>  load. strace shows that the player hangs for long times in select().
>
>  Digging through the changelog brings up
> 
>  commit 643a654540579b0dcc7a206a4a7475276a41aff0
>  Author: Andrew Morton <akpm@osdl.org>
>  Date:   Sat Feb 11 17:55:52 2006 -0800
> 
>      [PATCH] select: fix returned timeval

Thanks for working that out.

Are you able to send along the relevant parts of the strace output, so we
see the select() inputs and outputs?

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

* Re: 2.6.16-rc3 macromedia flash regression...
  2006-02-17  4:08 2.6.16-rc3 macromedia flash regression Ernst Herzberg
  2006-02-17  7:10 ` Andrew Morton
@ 2006-02-17  7:23 ` Andrew Morton
  2006-02-17 19:38   ` Ernst Herzberg
  1 sibling, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2006-02-17  7:23 UTC (permalink / raw)
  To: earny; +Cc: list-lkml, linux-kernel

Ernst Herzberg <list-lkml@net4u.de> wrote:
>
> .... or not regession, that's the question.
> 
>  2.6.16-rc2 works without problems.
> 
>  With -rc3 a .swf that opens a ip connection back to the server takes ages to 
>  load. strace shows that the player hangs for long times in select().
> 
>  Digging through the changelog brings up
> 
>  commit 643a654540579b0dcc7a206a4a7475276a41aff0
>  Author: Andrew Morton <akpm@osdl.org>
>  Date:   Sat Feb 11 17:55:52 2006 -0800
> 
>      [PATCH] select: fix returned timeval

y'know, when I sent that patch out to reviewers I said "Could you guys
please double-check this like hawks?  Especially the handy-dandy new
timespec/timeval comparison functions.  I invariably screw that sort of
thing up."

Does this help?


diff -puN fs/select.c~select-time-comparison-fixes fs/select.c
--- devel/fs/select.c~select-time-comparison-fixes	2006-02-16 23:17:54.000000000 -0800
+++ devel-akpm/fs/select.c	2006-02-16 23:19:21.000000000 -0800
@@ -404,7 +404,7 @@ asmlinkage long sys_select(int n, fd_set
 			goto sticky;
 		rtv.tv_usec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ));
 		rtv.tv_sec = timeout;
-		if (timeval_compare(&rtv, &tv) < 0)
+		if (timeval_compare(&rtv, &tv) >= 0)
 			rtv = tv;
 		if (copy_to_user(tvp, &rtv, sizeof(rtv))) {
 sticky:
@@ -471,7 +471,7 @@ asmlinkage long sys_pselect7(int n, fd_s
 		rts.tv_nsec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ)) *
 						1000;
 		rts.tv_sec = timeout;
-		if (timespec_compare(&rts, &ts) < 0)
+		if (timespec_compare(&rts, &ts) >= 0)
 			rts = ts;
 		if (copy_to_user(tsp, &rts, sizeof(rts))) {
 sticky:
@@ -775,7 +775,7 @@ asmlinkage long sys_ppoll(struct pollfd 
 		rts.tv_nsec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ)) *
 						1000;
 		rts.tv_sec = timeout;
-		if (timespec_compare(&rts, &ts) < 0)
+		if (timespec_compare(&rts, &ts) >= 0)
 			rts = ts;
 		if (copy_to_user(tsp, &rts, sizeof(rts))) {
 		sticky:
diff -puN fs/compat.c~select-time-comparison-fixes fs/compat.c
--- devel/fs/compat.c~select-time-comparison-fixes	2006-02-16 23:17:54.000000000 -0800
+++ devel-akpm/fs/compat.c	2006-02-16 23:19:33.000000000 -0800
@@ -1757,7 +1757,7 @@ asmlinkage long compat_sys_select(int n,
 			goto sticky;
 		rtv.tv_usec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ));
 		rtv.tv_sec = timeout;
-		if (compat_timeval_compare(&rtv, &tv) < 0)
+		if (compat_timeval_compare(&rtv, &tv) >= 0)
 			rtv = tv;
 		if (copy_to_user(tvp, &rtv, sizeof(rtv))) {
 sticky:
@@ -1834,7 +1834,7 @@ asmlinkage long compat_sys_pselect7(int 
 			rts.tv_sec++;
 			rts.tv_nsec -= NSEC_PER_SEC;
 		}
-		if (compat_timespec_compare(&rts, &ts) < 0)
+		if (compat_timespec_compare(&rts, &ts) >= 0)
 			rts = ts;
 		copy_to_user(tsp, &rts, sizeof(rts));
 	}
@@ -1934,7 +1934,7 @@ asmlinkage long compat_sys_ppoll(struct 
 		rts.tv_nsec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ)) *
 					1000;
 		rts.tv_sec = timeout;
-		if (compat_timespec_compare(&rts, &ts) < 0)
+		if (compat_timespec_compare(&rts, &ts) >= 0)
 			rts = ts;
 		if (copy_to_user(tsp, &rts, sizeof(rts))) {
 sticky:
_


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

* Re: 2.6.16-rc3 macromedia flash regression...
  2006-02-17  7:10 ` Andrew Morton
@ 2006-02-17 19:37   ` Ernst Herzberg
  0 siblings, 0 replies; 8+ messages in thread
From: Ernst Herzberg @ 2006-02-17 19:37 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Freitag 17 Februar 2006 08:10, Andrew Morton wrote:
> Ernst Herzberg <list-lkml@net4u.de> wrote:
> > .... or not regession, that's the question.
> >
> >  2.6.16-rc2 works without problems.
> >
> >  With -rc3 a .swf that opens a ip connection back to the server takes
> > ages to load. strace shows that the player hangs for long times in
> > select().
> >
> >  Digging through the changelog brings up
> >
> >  commit 643a654540579b0dcc7a206a4a7475276a41aff0
> >  Author: Andrew Morton <akpm@osdl.org>
> >  Date:   Sat Feb 11 17:55:52 2006 -0800
> >
> >      [PATCH] select: fix returned timeval
>
> Thanks for working that out.
>
> Are you able to send along the relevant parts of the strace output, so
> we see the select() inputs and outputs?

The straces are available at

http://dev.net4u.de/~earny/flash_regression/

If someone want to debug this by itself should contact me private, i will 
then setup an URL with the problematic swf.

Thanks

<earny/>

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

* Re: 2.6.16-rc3 macromedia flash regression...
  2006-02-17  7:23 ` Andrew Morton
@ 2006-02-17 19:38   ` Ernst Herzberg
  2006-02-17 21:16     ` Andrew Morton
  0 siblings, 1 reply; 8+ messages in thread
From: Ernst Herzberg @ 2006-02-17 19:38 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Freitag 17 Februar 2006 08:23, Andrew Morton wrote:
> Ernst Herzberg <list-lkml@net4u.de> wrote:
> > .... or not regession, that's the question.
> >
> >  2.6.16-rc2 works without problems.
> >
> >  With -rc3 a .swf that opens a ip connection back to the server takes
> > ages to load. strace shows that the player hangs for long times in
> > select().
> >
> >  Digging through the changelog brings up
> >
> >  commit 643a654540579b0dcc7a206a4a7475276a41aff0
> >  Author: Andrew Morton <akpm@osdl.org>
> >  Date:   Sat Feb 11 17:55:52 2006 -0800
> >
> >      [PATCH] select: fix returned timeval
>
> y'know, when I sent that patch out to reviewers I said "Could you guys
> please double-check this like hawks?  Especially the handy-dandy new
> timespec/timeval comparison functions.  I invariably screw that sort of
> thing up."
>
> Does this help?
>
>
> diff -puN fs/select.c~select-time-comparison-fixes fs/select.c
> --- devel/fs/select.c~select-time-comparison-fixes	2006-02-16
> 23:17:54.000000000 -0800 +++ devel-akpm/fs/select.c	2006-02-16
> 23:19:21.000000000 -0800
> @@ -404,7 +404,7 @@ asmlinkage long sys_select(int n, fd_set
>  			goto sticky;
>  		rtv.tv_usec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ));
>  		rtv.tv_sec = timeout;
> -		if (timeval_compare(&rtv, &tv) < 0)
> +		if (timeval_compare(&rtv, &tv) >= 0)
>  			rtv = tv;
>  		if (copy_to_user(tvp, &rtv, sizeof(rtv))) {
>  sticky:
> @@ -471,7 +471,7 @@ asmlinkage long sys_pselect7(int n, fd_s
>  		rts.tv_nsec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ)) *
>  						1000;
>  		rts.tv_sec = timeout;
> -		if (timespec_compare(&rts, &ts) < 0)
> +		if (timespec_compare(&rts, &ts) >= 0)
>  			rts = ts;
>  		if (copy_to_user(tsp, &rts, sizeof(rts))) {
>  sticky:
> @@ -775,7 +775,7 @@ asmlinkage long sys_ppoll(struct pollfd
>  		rts.tv_nsec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ)) *
>  						1000;
>  		rts.tv_sec = timeout;
> -		if (timespec_compare(&rts, &ts) < 0)
> +		if (timespec_compare(&rts, &ts) >= 0)
>  			rts = ts;
>  		if (copy_to_user(tsp, &rts, sizeof(rts))) {
>  		sticky:
> diff -puN fs/compat.c~select-time-comparison-fixes fs/compat.c
> --- devel/fs/compat.c~select-time-comparison-fixes	2006-02-16
> 23:17:54.000000000 -0800 +++ devel-akpm/fs/compat.c	2006-02-16
> 23:19:33.000000000 -0800
> @@ -1757,7 +1757,7 @@ asmlinkage long compat_sys_select(int n,
>  			goto sticky;
>  		rtv.tv_usec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ));
>  		rtv.tv_sec = timeout;
> -		if (compat_timeval_compare(&rtv, &tv) < 0)
> +		if (compat_timeval_compare(&rtv, &tv) >= 0)
>  			rtv = tv;
>  		if (copy_to_user(tvp, &rtv, sizeof(rtv))) {
>  sticky:
> @@ -1834,7 +1834,7 @@ asmlinkage long compat_sys_pselect7(int
>  			rts.tv_sec++;
>  			rts.tv_nsec -= NSEC_PER_SEC;
>  		}
> -		if (compat_timespec_compare(&rts, &ts) < 0)
> +		if (compat_timespec_compare(&rts, &ts) >= 0)
>  			rts = ts;
>  		copy_to_user(tsp, &rts, sizeof(rts));
>  	}
> @@ -1934,7 +1934,7 @@ asmlinkage long compat_sys_ppoll(struct
>  		rts.tv_nsec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ)) *
>  					1000;
>  		rts.tv_sec = timeout;
> -		if (compat_timespec_compare(&rts, &ts) < 0)
> +		if (compat_timespec_compare(&rts, &ts) >= 0)
>  			rts = ts;
>  		if (copy_to_user(tsp, &rts, sizeof(rts))) {
>  sticky:
> _

---------------------------

The patch does _not_ fix the problem.

sorry...
<earny/>

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

* Re: 2.6.16-rc3 macromedia flash regression...
  2006-02-17 19:38   ` Ernst Herzberg
@ 2006-02-17 21:16     ` Andrew Morton
  2006-02-17 22:07       ` Ernst Herzberg
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2006-02-17 21:16 UTC (permalink / raw)
  To: earny; +Cc: linux-kernel

Ernst Herzberg <earny@net4u.de> wrote:
>
> The patch does _not_ fix the problem.
>

Surprised.  Could I ask that you double-check that the patch was applied
and that the right kernel was running?

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

* Re: 2.6.16-rc3 macromedia flash regression...
  2006-02-17 21:16     ` Andrew Morton
@ 2006-02-17 22:07       ` Ernst Herzberg
  2006-02-17 22:13         ` Andrew Morton
  0 siblings, 1 reply; 8+ messages in thread
From: Ernst Herzberg @ 2006-02-17 22:07 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Friday 17 February 2006 22:16, Andrew Morton wrote:
> Ernst Herzberg <earny@net4u.de> wrote:
> > The patch does _not_ fix the problem.
>
> Surprised.  Could I ask that you double-check that the patch was applied
> and that the right kernel was running?

**doublechecked**, and..... you are right!

This patch __fixes__ the problem.

Thanks

<earny/>

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

* Re: 2.6.16-rc3 macromedia flash regression...
  2006-02-17 22:07       ` Ernst Herzberg
@ 2006-02-17 22:13         ` Andrew Morton
  0 siblings, 0 replies; 8+ messages in thread
From: Andrew Morton @ 2006-02-17 22:13 UTC (permalink / raw)
  To: Ernst Herzberg; +Cc: linux-kernel

Ernst Herzberg <earny@net4u.de> wrote:
>
> On Friday 17 February 2006 22:16, Andrew Morton wrote:
> > Ernst Herzberg <earny@net4u.de> wrote:
> > > The patch does _not_ fix the problem.
> >
> > Surprised.  Could I ask that you double-check that the patch was applied
> > and that the right kernel was running?
> 
> **doublechecked**, and..... you are right!
> 
> This patch __fixes__ the problem.
> 

Whew.  I thought I was going mad ;)

Thanks for finding the bug.

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

end of thread, other threads:[~2006-02-17 22:14 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-17  4:08 2.6.16-rc3 macromedia flash regression Ernst Herzberg
2006-02-17  7:10 ` Andrew Morton
2006-02-17 19:37   ` Ernst Herzberg
2006-02-17  7:23 ` Andrew Morton
2006-02-17 19:38   ` Ernst Herzberg
2006-02-17 21:16     ` Andrew Morton
2006-02-17 22:07       ` Ernst Herzberg
2006-02-17 22:13         ` Andrew Morton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.