* [BUG] perf top: --stdio causes continuous refresh @ 2014-02-05 21:25 Stephane Eranian 2014-02-05 23:12 ` Stephane Eranian 2014-02-06 13:56 ` Arnaldo Carvalho de Melo 0 siblings, 2 replies; 19+ messages in thread From: Stephane Eranian @ 2014-02-05 21:25 UTC (permalink / raw) To: LKML Cc: Peter Zijlstra, mingo@elte.hu, Arnaldo Carvalho de Melo, Jiri Olsa, Eric Dumazet Hi, If you run perf top on 3.14 but you force --stdio mode, perf top goes crazy and constantly refreshes the output. It does that with many older versions of the perf as well on 3.14. It runs fine with newt mode. Works fine with my 3.11 kernel. So something must be broken with 3.14. Can you reproduce the problem as well? ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-05 21:25 [BUG] perf top: --stdio causes continuous refresh Stephane Eranian @ 2014-02-05 23:12 ` Stephane Eranian 2014-02-06 13:56 ` Arnaldo Carvalho de Melo 1 sibling, 0 replies; 19+ messages in thread From: Stephane Eranian @ 2014-02-05 23:12 UTC (permalink / raw) To: LKML Cc: Peter Zijlstra, mingo@elte.hu, Arnaldo Carvalho de Melo, Jiri Olsa, Eric Dumazet On Wed, Feb 5, 2014 at 10:25 PM, Stephane Eranian <eranian@google.com> wrote: > Hi, > > If you run perf top on 3.14 but you force --stdio mode, perf top > goes crazy and constantly refreshes the output. > > It does that with many older versions of the perf as well on 3.14. > It runs fine with newt mode. > > Works fine with my 3.11 kernel. So something must be broken > with 3.14. > Or more likely, there is something broken in perf which gets exposed by 3.14. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-05 21:25 [BUG] perf top: --stdio causes continuous refresh Stephane Eranian 2014-02-05 23:12 ` Stephane Eranian @ 2014-02-06 13:56 ` Arnaldo Carvalho de Melo 2014-02-06 13:58 ` Stephane Eranian 1 sibling, 1 reply; 19+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-02-06 13:56 UTC (permalink / raw) To: Stephane Eranian Cc: LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet Em Wed, Feb 05, 2014 at 10:25:09PM +0100, Stephane Eranian escreveu: > If you run perf top on 3.14 but you force --stdio mode, perf top > goes crazy and constantly refreshes the output. > > It does that with many older versions of the perf as well on 3.14. > It runs fine with newt mode. > > Works fine with my 3.11 kernel. So something must be broken > with 3.14. > Can you reproduce the problem as well? Not so far, using my perf/urgent branch: [root@ssdandy ~]# perf --version perf version 3.13.g1da187 Also it honours --delay, i.e. # perf top --delay 5 --stdio it will wait 5 seconds between refreshes, etc. Checking out v3.14-rc1 now. - Arnaldo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-06 13:56 ` Arnaldo Carvalho de Melo @ 2014-02-06 13:58 ` Stephane Eranian 2014-02-06 14:07 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 19+ messages in thread From: Stephane Eranian @ 2014-02-06 13:58 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet On Thu, Feb 6, 2014 at 2:56 PM, Arnaldo Carvalho de Melo <acme@redhat.com> wrote: > Em Wed, Feb 05, 2014 at 10:25:09PM +0100, Stephane Eranian escreveu: >> If you run perf top on 3.14 but you force --stdio mode, perf top >> goes crazy and constantly refreshes the output. >> >> It does that with many older versions of the perf as well on 3.14. >> It runs fine with newt mode. >> >> Works fine with my 3.11 kernel. So something must be broken >> with 3.14. > >> Can you reproduce the problem as well? > > Not so far, using my perf/urgent branch: > I am using tip.git. Or try 3.11, 3.10. > [root@ssdandy ~]# perf --version > perf version 3.13.g1da187 > > Also it honours --delay, i.e. > > # perf top --delay 5 --stdio > > it will wait 5 seconds between refreshes, etc. > > Checking out v3.14-rc1 now. > > - Arnaldo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-06 13:58 ` Stephane Eranian @ 2014-02-06 14:07 ` Arnaldo Carvalho de Melo 2014-02-06 14:09 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 19+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-02-06 14:07 UTC (permalink / raw) To: Stephane Eranian Cc: LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet Em Thu, Feb 06, 2014 at 02:58:01PM +0100, Stephane Eranian escreveu: > On Thu, Feb 6, 2014 at 2:56 PM, Arnaldo Carvalho de Melo > <acme@redhat.com> wrote: > > Em Wed, Feb 05, 2014 at 10:25:09PM +0100, Stephane Eranian escreveu: > >> If you run perf top on 3.14 but you force --stdio mode, perf top > >> goes crazy and constantly refreshes the output. > >> It does that with many older versions of the perf as well on 3.14. > >> It runs fine with newt mode. > >> Works fine with my 3.11 kernel. So something must be broken > >> with 3.14. > >> Can you reproduce the problem as well? > > Not so far, using my perf/urgent branch: > I am using tip.git. Or try 3.11, 3.10. Tried torvalds/master, no problem, looking at what the top's screen refresh thread does we can see: [root@ssdandy ~]# trace -t 3562 -e \!write 0.000 ( 0.000 ms): ... [continued]: poll()) = 0 Timeout 2031.522 (2002.480 ms): poll(ufds: 0x7fbb91596bb0, nfds: 1, timeout_msecs: 2000 ) = 0 Timeout 4064.346 (2002.456 ms): poll(ufds: 0x7fbb91596bb0, nfds: 1, timeout_msecs: 2000 ) = 0 Timeout ^C[root@ssdandy ~]# I.e. waiting the default of: .delay_secs = 2, 2 seconds between refreshes. Checking out tip.tip, or are you suggesting to try an old perf binary, from 3.11 or 3.10 on top of a newer kernel? - Arnaldo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-06 14:07 ` Arnaldo Carvalho de Melo @ 2014-02-06 14:09 ` Arnaldo Carvalho de Melo 2014-02-06 15:24 ` Stephane Eranian 0 siblings, 1 reply; 19+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-02-06 14:09 UTC (permalink / raw) To: Stephane Eranian Cc: LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet Em Thu, Feb 06, 2014 at 12:07:05PM -0200, Arnaldo Carvalho de Melo escreveu: > Em Thu, Feb 06, 2014 at 02:58:01PM +0100, Stephane Eranian escreveu: > > On Thu, Feb 6, 2014 at 2:56 PM, Arnaldo Carvalho de Melo > > <acme@redhat.com> wrote: > > > Em Wed, Feb 05, 2014 at 10:25:09PM +0100, Stephane Eranian escreveu: > > >> If you run perf top on 3.14 but you force --stdio mode, perf top > > >> goes crazy and constantly refreshes the output. > > > >> It does that with many older versions of the perf as well on 3.14. > > >> It runs fine with newt mode. > > > >> Works fine with my 3.11 kernel. So something must be broken > > >> with 3.14. > > > >> Can you reproduce the problem as well? > > > > Not so far, using my perf/urgent branch: > > > I am using tip.git. Or try 3.11, 3.10. But my tests are on top of: [acme@ssdandy linux]$ uname -r 3.11.4-101.fc18.x86_64 I thought it was a 3.14ish one, building one to try there... - Arnaldo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-06 14:09 ` Arnaldo Carvalho de Melo @ 2014-02-06 15:24 ` Stephane Eranian 2014-02-06 17:48 ` David Ahern 0 siblings, 1 reply; 19+ messages in thread From: Stephane Eranian @ 2014-02-06 15:24 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet On Thu, Feb 6, 2014 at 3:09 PM, Arnaldo Carvalho de Melo <acme@redhat.com> wrote: > Em Thu, Feb 06, 2014 at 12:07:05PM -0200, Arnaldo Carvalho de Melo escreveu: >> Em Thu, Feb 06, 2014 at 02:58:01PM +0100, Stephane Eranian escreveu: >> > On Thu, Feb 6, 2014 at 2:56 PM, Arnaldo Carvalho de Melo >> > <acme@redhat.com> wrote: >> > > Em Wed, Feb 05, 2014 at 10:25:09PM +0100, Stephane Eranian escreveu: >> > >> If you run perf top on 3.14 but you force --stdio mode, perf top >> > >> goes crazy and constantly refreshes the output. >> >> > >> It does that with many older versions of the perf as well on 3.14. >> > >> It runs fine with newt mode. >> >> > >> Works fine with my 3.11 kernel. So something must be broken >> > >> with 3.14. >> >> > >> Can you reproduce the problem as well? >> >> > > Not so far, using my perf/urgent branch: >> >> > I am using tip.git. Or try 3.11, 3.10. > > But my tests are on top of: > > [acme@ssdandy linux]$ uname -r > 3.11.4-101.fc18.x86_64 > > I thought it was a 3.14ish one, building one to try there... > The kernel must be 3.14-rcX, the tool can be any version. > - Arnaldo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-06 15:24 ` Stephane Eranian @ 2014-02-06 17:48 ` David Ahern 2014-02-06 19:21 ` Arnaldo Carvalho de Melo 2014-02-10 21:03 ` Arnaldo Carvalho de Melo 0 siblings, 2 replies; 19+ messages in thread From: David Ahern @ 2014-02-06 17:48 UTC (permalink / raw) To: Stephane Eranian, Arnaldo Carvalho de Melo Cc: LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet On 2/6/14, 8:24 AM, Stephane Eranian wrote: > On Thu, Feb 6, 2014 at 3:09 PM, Arnaldo Carvalho de Melo > <acme@redhat.com> wrote: >> Em Thu, Feb 06, 2014 at 12:07:05PM -0200, Arnaldo Carvalho de Melo escreveu: >>> Em Thu, Feb 06, 2014 at 02:58:01PM +0100, Stephane Eranian escreveu: >>>> On Thu, Feb 6, 2014 at 2:56 PM, Arnaldo Carvalho de Melo >>>> <acme@redhat.com> wrote: >>>>> Em Wed, Feb 05, 2014 at 10:25:09PM +0100, Stephane Eranian escreveu: >>>>>> If you run perf top on 3.14 but you force --stdio mode, perf top >>>>>> goes crazy and constantly refreshes the output. >>> >>>>>> It does that with many older versions of the perf as well on 3.14. >>>>>> It runs fine with newt mode. >>> >>>>>> Works fine with my 3.11 kernel. So something must be broken >>>>>> with 3.14. >>> >>>>>> Can you reproduce the problem as well? >>> >>>>> Not so far, using my perf/urgent branch: >>> >>>> I am using tip.git. Or try 3.11, 3.10. >> >> But my tests are on top of: >> >> [acme@ssdandy linux]$ uname -r >> 3.11.4-101.fc18.x86_64 >> >> I thought it was a 3.14ish one, building one to try there... >> > The kernel must be 3.14-rcX, the tool can be any version. I don't have time to do a git bisect, but I can narrow the window to 3.13-rc6 and 3.14-rc1. Just happened to update a server yesterday. perf-top --stdio runs fine on the former and shows the problem on the latter. David ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-06 17:48 ` David Ahern @ 2014-02-06 19:21 ` Arnaldo Carvalho de Melo 2014-02-06 19:28 ` Arnaldo Carvalho de Melo 2014-02-10 21:03 ` Arnaldo Carvalho de Melo 1 sibling, 1 reply; 19+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-02-06 19:21 UTC (permalink / raw) To: David Ahern Cc: Stephane Eranian, LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet Em Thu, Feb 06, 2014 at 10:48:19AM -0700, David Ahern escreveu: > On 2/6/14, 8:24 AM, Stephane Eranian wrote: > >On Thu, Feb 6, 2014 at 3:09 PM, Arnaldo Carvalho de Melo > >>>>I am using tip.git. Or try 3.11, 3.10. > >> > >>But my tests are on top of: > >> > >>[acme@ssdandy linux]$ uname -r > >>3.11.4-101.fc18.x86_64 > >> > >>I thought it was a 3.14ish one, building one to try there... > >> > >The kernel must be 3.14-rcX, the tool can be any version. > > > I don't have time to do a git bisect, but I can narrow the window to > 3.13-rc6 and 3.14-rc1. Just happened to update a server yesterday. > perf-top --stdio runs fine on the former and shows the problem on > the latter. Humm, /* * Either timeout expired or we got an EINTR due to * SIGWINCH, refresh screen in both cases. */ switch (poll(&stdin_poll, 1, delay_msecs)) { And poll is returning 1: 951.068 ( 0.002 ms): poll(ufds: 0x7ff660befbb0, nfds: 1, timeout_msecs: 2000) = 1 Checking... - Arnaldo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-06 19:21 ` Arnaldo Carvalho de Melo @ 2014-02-06 19:28 ` Arnaldo Carvalho de Melo 2014-02-06 20:21 ` Stephane Eranian 0 siblings, 1 reply; 19+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-02-06 19:28 UTC (permalink / raw) To: David Ahern Cc: Stephane Eranian, LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet Em Thu, Feb 06, 2014 at 05:21:31PM -0200, Arnaldo Carvalho de Melo escreveu: > Em Thu, Feb 06, 2014 at 10:48:19AM -0700, David Ahern escreveu: > > On 2/6/14, 8:24 AM, Stephane Eranian wrote: > > >On Thu, Feb 6, 2014 at 3:09 PM, Arnaldo Carvalho de Melo > > >>>>I am using tip.git. Or try 3.11, 3.10. > > >>But my tests are on top of: > > >>[acme@ssdandy linux]$ uname -r > > >>3.11.4-101.fc18.x86_64 > > >>I thought it was a 3.14ish one, building one to try there... > > >The kernel must be 3.14-rcX, the tool can be any version. > > I don't have time to do a git bisect, but I can narrow the window to > > 3.13-rc6 and 3.14-rc1. Just happened to update a server yesterday. > > perf-top --stdio runs fine on the former and shows the problem on > > the latter. > > Humm, > > /* > * Either timeout expired or we got an EINTR due to > * SIGWINCH, refresh screen in both cases. > */ > switch (poll(&stdin_poll, 1, delay_msecs)) { > And poll is returning 1: > 951.068 ( 0.002 ms): poll(ufds: 0x7ff660befbb0, nfds: 1, timeout_msecs: 2000) = 1 We go to the getc(stdin) and it returns EOF :-\ - Arnaldo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-06 19:28 ` Arnaldo Carvalho de Melo @ 2014-02-06 20:21 ` Stephane Eranian 0 siblings, 0 replies; 19+ messages in thread From: Stephane Eranian @ 2014-02-06 20:21 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: David Ahern, LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet On Thu, Feb 6, 2014 at 8:28 PM, Arnaldo Carvalho de Melo <acme@redhat.com> wrote: > Em Thu, Feb 06, 2014 at 05:21:31PM -0200, Arnaldo Carvalho de Melo escreveu: >> Em Thu, Feb 06, 2014 at 10:48:19AM -0700, David Ahern escreveu: >> > On 2/6/14, 8:24 AM, Stephane Eranian wrote: >> > >On Thu, Feb 6, 2014 at 3:09 PM, Arnaldo Carvalho de Melo >> > >>>>I am using tip.git. Or try 3.11, 3.10. > >> > >>But my tests are on top of: > >> > >>[acme@ssdandy linux]$ uname -r >> > >>3.11.4-101.fc18.x86_64 > >> > >>I thought it was a 3.14ish one, building one to try there... > >> > >The kernel must be 3.14-rcX, the tool can be any version. > >> > I don't have time to do a git bisect, but I can narrow the window to >> > 3.13-rc6 and 3.14-rc1. Just happened to update a server yesterday. >> > perf-top --stdio runs fine on the former and shows the problem on >> > the latter. >> >> Humm, >> >> /* >> * Either timeout expired or we got an EINTR due to >> * SIGWINCH, refresh screen in both cases. >> */ >> switch (poll(&stdin_poll, 1, delay_msecs)) { > >> And poll is returning 1: > >> 951.068 ( 0.002 ms): poll(ufds: 0x7ff660befbb0, nfds: 1, timeout_msecs: 2000) = 1 > > We go to the getc(stdin) and it returns EOF :-\ > Doesn't poll() return 0 if timeout, and 1 if descriptor in this case? So you're saying you get 1 and getc() returns nothing to read. Does stdin get closed somehow? ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-06 17:48 ` David Ahern 2014-02-06 19:21 ` Arnaldo Carvalho de Melo @ 2014-02-10 21:03 ` Arnaldo Carvalho de Melo 2014-02-11 2:15 ` Peter Hurley 1 sibling, 1 reply; 19+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-02-10 21:03 UTC (permalink / raw) To: David Ahern Cc: Stephane Eranian, LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet, Peter Hurley Em Thu, Feb 06, 2014 at 10:48:19AM -0700, David Ahern escreveu: > On 2/6/14, 8:24 AM, Stephane Eranian wrote: > >On Thu, Feb 6, 2014 at 3:09 PM, Arnaldo Carvalho de Melo > ><acme@redhat.com> wrote: > >>Em Thu, Feb 06, 2014 at 12:07:05PM -0200, Arnaldo Carvalho de Melo escreveu: > >>>Em Thu, Feb 06, 2014 at 02:58:01PM +0100, Stephane Eranian escreveu: > >>>>On Thu, Feb 6, 2014 at 2:56 PM, Arnaldo Carvalho de Melo > >>>><acme@redhat.com> wrote: > >>>>>Em Wed, Feb 05, 2014 at 10:25:09PM +0100, Stephane Eranian escreveu: > >>>>>>If you run perf top on 3.14 but you force --stdio mode, perf top > >>>>>>goes crazy and constantly refreshes the output. > >>>>>>It does that with many older versions of the perf as well on 3.14. > >>>>>>It runs fine with newt mode. > >>>>>>Works fine with my 3.11 kernel. So something must be broken > >>>>>>with 3.14. > >>>>>>Can you reproduce the problem as well? > >>>>>Not so far, using my perf/urgent branch: > >>>>I am using tip.git. Or try 3.11, 3.10. > >>But my tests are on top of: > >>[acme@ssdandy linux]$ uname -r > >>3.11.4-101.fc18.x86_64 > >>I thought it was a 3.14ish one, building one to try there... > >> > >The kernel must be 3.14-rcX, the tool can be any version. > > I don't have time to do a git bisect, but I can narrow the window to > 3.13-rc6 and 3.14-rc1. Just happened to update a server yesterday. > perf-top --stdio runs fine on the former and shows the problem on > the latter. Bisected it down to: eb3e4668bd9e0bbda592e830e889f137e44ec9e4 is the first bad commit commit eb3e4668bd9e0bbda592e830e889f137e44ec9e4 Author: Peter Hurley <peter@hurleysoftware.com> Date: Mon Dec 2 14:24:42 2013 -0500 n_tty: Un-inline slow-path n_tty_receive_char() Commit e60d27c4d8b33ba20896b76b6558f061bc6460ff, n_tty: Factor LNEXT processing from per-char i/o path, mistakenly inlined the non-inline alias, n_tty_receive_char(), for the inline function, n_tty_receive_char_inline(). As n_tty_receive_char() is intended for slow-path char processing only, un-inline it. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> :040000 040000 80215819e331ff95d80aa7c8a6a05f8c74d1fdb6 41a856dfeb6769e47c7689c92d91db497dfcc8cf M drivers [acme@fedora20 linux]$ In a hurry now, will continue later, trying to understand what is the problem introduced by the above cset... Need to revert just this one to confirm that it is the culprit, etc. - Arnaldo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-10 21:03 ` Arnaldo Carvalho de Melo @ 2014-02-11 2:15 ` Peter Hurley 2014-02-11 12:14 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 19+ messages in thread From: Peter Hurley @ 2014-02-11 2:15 UTC (permalink / raw) To: Arnaldo Carvalho de Melo, David Ahern Cc: Stephane Eranian, LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet Hi Arnaldo, On 02/10/2014 04:03 PM, Arnaldo Carvalho de Melo wrote: > Em Thu, Feb 06, 2014 at 10:48:19AM -0700, David Ahern escreveu: >> On 2/6/14, 8:24 AM, Stephane Eranian wrote: >>> On Thu, Feb 6, 2014 at 3:09 PM, Arnaldo Carvalho de Melo >>> <acme@redhat.com> wrote: >>>> Em Thu, Feb 06, 2014 at 12:07:05PM -0200, Arnaldo Carvalho de Melo escreveu: >>>>> Em Thu, Feb 06, 2014 at 02:58:01PM +0100, Stephane Eranian escreveu: >>>>>> On Thu, Feb 6, 2014 at 2:56 PM, Arnaldo Carvalho de Melo >>>>>> <acme@redhat.com> wrote: >>>>>>> Em Wed, Feb 05, 2014 at 10:25:09PM +0100, Stephane Eranian escreveu: >>>>>>>> If you run perf top on 3.14 but you force --stdio mode, perf top >>>>>>>> goes crazy and constantly refreshes the output. > >>>>>>>> It does that with many older versions of the perf as well on 3.14. >>>>>>>> It runs fine with newt mode. > >>>>>>>> Works fine with my 3.11 kernel. So something must be broken >>>>>>>> with 3.14. > >>>>>>>> Can you reproduce the problem as well? > >>>>>>> Not so far, using my perf/urgent branch: > >>>>>> I am using tip.git. Or try 3.11, 3.10. > >>>> But my tests are on top of: > >>>> [acme@ssdandy linux]$ uname -r >>>> 3.11.4-101.fc18.x86_64 > >>>> I thought it was a 3.14ish one, building one to try there... >>>> >>> The kernel must be 3.14-rcX, the tool can be any version. >> >> I don't have time to do a git bisect, but I can narrow the window to >> 3.13-rc6 and 3.14-rc1. Just happened to update a server yesterday. >> perf-top --stdio runs fine on the former and shows the problem on >> the latter. > > Bisected it down to: > > eb3e4668bd9e0bbda592e830e889f137e44ec9e4 is the first bad commit > commit eb3e4668bd9e0bbda592e830e889f137e44ec9e4 > Author: Peter Hurley <peter@hurleysoftware.com> > Date: Mon Dec 2 14:24:42 2013 -0500 > > n_tty: Un-inline slow-path n_tty_receive_char() > > Commit e60d27c4d8b33ba20896b76b6558f061bc6460ff, > n_tty: Factor LNEXT processing from per-char i/o path, > mistakenly inlined the non-inline alias, n_tty_receive_char(), > for the inline function, n_tty_receive_char_inline(). > > As n_tty_receive_char() is intended for slow-path char > processing only, un-inline it. > > Signed-off-by: Peter Hurley <peter@hurleysoftware.com> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > :040000 040000 80215819e331ff95d80aa7c8a6a05f8c74d1fdb6 41a856dfeb6769e47c7689c92d91db497dfcc8cf M drivers > [acme@fedora20 linux]$ > > In a hurry now, will continue later, trying to understand what is the problem > introduced by the above cset... > > Need to revert just this one to confirm that it is the culprit, etc. Thanks for the report and bisect. Seems unlikely this commit is the cause, but very likely to be some change I made since 3.13, since I can repro on 3.14-rc1 but not on 3.13.2 -stable. I can also repro this on 3.12 + the patch stack from me for 3.13 and 3.14. I'm looking into this now. Regards, Peter Hurley ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-11 2:15 ` Peter Hurley @ 2014-02-11 12:14 ` Arnaldo Carvalho de Melo 2014-02-11 12:18 ` Peter Hurley 2014-02-11 16:49 ` [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 Peter Hurley 0 siblings, 2 replies; 19+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-02-11 12:14 UTC (permalink / raw) To: Peter Hurley Cc: David Ahern, Stephane Eranian, LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet Em Mon, Feb 10, 2014 at 09:15:42PM -0500, Peter Hurley escreveu: > >Bisected it down to: > >eb3e4668bd9e0bbda592e830e889f137e44ec9e4 is the first bad commit > >Author: Peter Hurley <peter@hurleysoftware.com> > >Date: Mon Dec 2 14:24:42 2013 -0500 > > n_tty: Un-inline slow-path n_tty_receive_char() > >In a hurry now, will continue later, trying to understand what is the problem > >introduced by the above cset... > >Need to revert just this one to confirm that it is the culprit, etc. > Thanks for the report and bisect. Seems unlikely this commit is the > cause, but very likely to be some change I made since 3.13, since > I can repro on 3.14-rc1 but not on 3.13.2 -stable. I can also repro > this on 3.12 + the patch stack from me for 3.13 and 3.14. > I'm looking into this now. I just reverted just this cset and the problem persisted, so I'll wait for you on this one :-) - Arnaldo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [BUG] perf top: --stdio causes continuous refresh 2014-02-11 12:14 ` Arnaldo Carvalho de Melo @ 2014-02-11 12:18 ` Peter Hurley 2014-02-11 16:49 ` [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 Peter Hurley 1 sibling, 0 replies; 19+ messages in thread From: Peter Hurley @ 2014-02-11 12:18 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: David Ahern, Stephane Eranian, LKML, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet On 02/11/2014 07:14 AM, Arnaldo Carvalho de Melo wrote: > Em Mon, Feb 10, 2014 at 09:15:42PM -0500, Peter Hurley escreveu: >>> Bisected it down to: > >>> eb3e4668bd9e0bbda592e830e889f137e44ec9e4 is the first bad commit >>> Author: Peter Hurley <peter@hurleysoftware.com> >>> Date: Mon Dec 2 14:24:42 2013 -0500 > >>> n_tty: Un-inline slow-path n_tty_receive_char() > >>> In a hurry now, will continue later, trying to understand what is the problem >>> introduced by the above cset... > >>> Need to revert just this one to confirm that it is the culprit, etc. > >> Thanks for the report and bisect. Seems unlikely this commit is the >> cause, but very likely to be some change I made since 3.13, since >> I can repro on 3.14-rc1 but not on 3.13.2 -stable. I can also repro >> this on 3.12 + the patch stack from me for 3.13 and 3.14. > >> I'm looking into this now. > > I just reverted just this cset and the problem persisted, so I'll wait > for you on this one :-) I did the same with the same result. So I'm re-bisecting on one machine and tracing on another. Regards, Peter Hurley ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 2014-02-11 12:14 ` Arnaldo Carvalho de Melo 2014-02-11 12:18 ` Peter Hurley @ 2014-02-11 16:49 ` Peter Hurley 2014-02-11 18:31 ` David Ahern ` (2 more replies) 1 sibling, 3 replies; 19+ messages in thread From: Peter Hurley @ 2014-02-11 16:49 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: David Ahern, Stephane Eranian, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet, linux-kernel, Greg Kroah-Hartman, Peter Hurley On 02/11/2014 07:14 AM, Arnaldo Carvalho de Melo wrote: > Em Mon, Feb 10, 2014 at 09:15:42PM -0500, Peter Hurley escreveu: >>> Bisected it down to: > >>> eb3e4668bd9e0bbda592e830e889f137e44ec9e4 is the first bad commit >>> Author: Peter Hurley <peter@hurleysoftware.com> >>> Date: Mon Dec 2 14:24:42 2013 -0500 > >>> n_tty: Un-inline slow-path n_tty_receive_char() > >>> In a hurry now, will continue later, trying to understand what is the problem >>> introduced by the above cset... > >>> Need to revert just this one to confirm that it is the culprit, etc. > >> Thanks for the report and bisect. Seems unlikely this commit is the >> cause, but very likely to be some change I made since 3.13, since >> I can repro on 3.14-rc1 but not on 3.13.2 -stable. I can also repro >> this on 3.12 + the patch stack from me for 3.13 and 3.14. > >> I'm looking into this now. > > I just reverted just this cset and the problem persisted, so I'll wait > for you on this one :-) My bisection pointed to: eafbe67f84761d787802e5113d895a316b6292fe is the first bad commit commit eafbe67f84761d787802e5113d895a316b6292fe Author: Peter Hurley <peter@hurleysoftware.com> Date: Mon Dec 2 14:24:45 2013 -0500 n_tty: Refactor input_available_p() by call site Apologies for the breakage; the patch below should fix it. Regards, Peter Hurley --- >% --- From: Peter Hurley <peter@hurleysoftware.com> Date: Tue, 11 Feb 2014 10:10:07 -0500 Subject: [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 Commit eafbe67f84761d787802e5113d895a316b6292fe, n_tty: Refactor input_available_p() by call site broke poll() when TIME_CHAR(tty) and MIN_CHAR(tty) are both 0. When TIME_CHAR and MIN_CHAR are both 0, input is available if the read_cnt is 1 (not 0). Reported-by: Stephane Eranian <eranian@google.com> Signed-off-by: Peter Hurley <peter@hurleysoftware.com> --- drivers/tty/n_tty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c index cb8017a..2747a3b 100644 --- a/drivers/tty/n_tty.c +++ b/drivers/tty/n_tty.c @@ -1896,7 +1896,7 @@ err: static inline int input_available_p(struct tty_struct *tty, int poll) { struct n_tty_data *ldata = tty->disc_data; - int amt = poll && !TIME_CHAR(tty) ? MIN_CHAR(tty) : 1; + int amt = poll && !TIME_CHAR(tty) && MIN_CHAR(tty) ? MIN_CHAR(tty) : 1; if (ldata->icanon && !L_EXTPROC(tty)) { if (ldata->canon_head != ldata->read_tail) -- 1.8.1.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 2014-02-11 16:49 ` [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 Peter Hurley @ 2014-02-11 18:31 ` David Ahern 2014-02-11 18:32 ` Eric Dumazet 2014-02-11 20:50 ` Arnaldo Carvalho de Melo 2 siblings, 0 replies; 19+ messages in thread From: David Ahern @ 2014-02-11 18:31 UTC (permalink / raw) To: Peter Hurley, Arnaldo Carvalho de Melo Cc: Stephane Eranian, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet, linux-kernel, Greg Kroah-Hartman On 2/11/14, 9:49 AM, Peter Hurley wrote: > From: Peter Hurley <peter@hurleysoftware.com> > Date: Tue, 11 Feb 2014 10:10:07 -0500 > Subject: [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 > > Commit eafbe67f84761d787802e5113d895a316b6292fe, > n_tty: Refactor input_available_p() by call site > broke poll() when TIME_CHAR(tty) and MIN_CHAR(tty) are both 0. > > When TIME_CHAR and MIN_CHAR are both 0, input is available if the > read_cnt is 1 (not 0). > > Reported-by: Stephane Eranian <eranian@google.com> > Signed-off-by: Peter Hurley <peter@hurleysoftware.com> > --- > drivers/tty/n_tty.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c > index cb8017a..2747a3b 100644 > --- a/drivers/tty/n_tty.c > +++ b/drivers/tty/n_tty.c > @@ -1896,7 +1896,7 @@ err: > static inline int input_available_p(struct tty_struct *tty, int poll) > { > struct n_tty_data *ldata = tty->disc_data; > - int amt = poll && !TIME_CHAR(tty) ? MIN_CHAR(tty) : 1; > + int amt = poll && !TIME_CHAR(tty) && MIN_CHAR(tty) ? MIN_CHAR(tty) : 1; > > if (ldata->icanon && !L_EXTPROC(tty)) { > if (ldata->canon_head != ldata->read_tail) > Worked for me. Tested-by: David Ahern <dsahern@gmail.com> ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 2014-02-11 16:49 ` [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 Peter Hurley 2014-02-11 18:31 ` David Ahern @ 2014-02-11 18:32 ` Eric Dumazet 2014-02-11 20:50 ` Arnaldo Carvalho de Melo 2 siblings, 0 replies; 19+ messages in thread From: Eric Dumazet @ 2014-02-11 18:32 UTC (permalink / raw) To: Peter Hurley Cc: Arnaldo Carvalho de Melo, David Ahern, Stephane Eranian, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet, linux-kernel, Greg Kroah-Hartman On Tue, 2014-02-11 at 11:49 -0500, Peter Hurley wrote: > From: Peter Hurley <peter@hurleysoftware.com> > Date: Tue, 11 Feb 2014 10:10:07 -0500 > Subject: [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 > > Commit eafbe67f84761d787802e5113d895a316b6292fe, > n_tty: Refactor input_available_p() by call site > broke poll() when TIME_CHAR(tty) and MIN_CHAR(tty) are both 0. > > When TIME_CHAR and MIN_CHAR are both 0, input is available if the > read_cnt is 1 (not 0). > > Reported-by: Stephane Eranian <eranian@google.com> > Signed-off-by: Peter Hurley <peter@hurleysoftware.com> > --- > drivers/tty/n_tty.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c > index cb8017a..2747a3b 100644 > --- a/drivers/tty/n_tty.c > +++ b/drivers/tty/n_tty.c > @@ -1896,7 +1896,7 @@ err: > static inline int input_available_p(struct tty_struct *tty, int poll) > { > struct n_tty_data *ldata = tty->disc_data; > - int amt = poll && !TIME_CHAR(tty) ? MIN_CHAR(tty) : 1; > + int amt = poll && !TIME_CHAR(tty) && MIN_CHAR(tty) ? MIN_CHAR(tty) : 1; > > if (ldata->icanon && !L_EXTPROC(tty)) { > if (ldata->canon_head != ldata->read_tail) Reported-by: Eric Dumazet <edumazet@google.com> Tested-by: Eric Dumazet <edumazet@google.com> Thanks guys ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 2014-02-11 16:49 ` [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 Peter Hurley 2014-02-11 18:31 ` David Ahern 2014-02-11 18:32 ` Eric Dumazet @ 2014-02-11 20:50 ` Arnaldo Carvalho de Melo 2 siblings, 0 replies; 19+ messages in thread From: Arnaldo Carvalho de Melo @ 2014-02-11 20:50 UTC (permalink / raw) To: Peter Hurley Cc: David Ahern, Stephane Eranian, Peter Zijlstra, mingo@elte.hu, Jiri Olsa, Eric Dumazet, linux-kernel, Greg Kroah-Hartman > Commit eafbe67f84761d787802e5113d895a316b6292fe, > n_tty: Refactor input_available_p() by call site > broke poll() when TIME_CHAR(tty) and MIN_CHAR(tty) are both 0. > > When TIME_CHAR and MIN_CHAR are both 0, input is available if the > read_cnt is 1 (not 0). > > Reported-by: Stephane Eranian <eranian@google.com> > Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Thanks, Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> - Arnaldo > --- > drivers/tty/n_tty.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c > index cb8017a..2747a3b 100644 > --- a/drivers/tty/n_tty.c > +++ b/drivers/tty/n_tty.c > @@ -1896,7 +1896,7 @@ err: > static inline int input_available_p(struct tty_struct *tty, int poll) > { > struct n_tty_data *ldata = tty->disc_data; > - int amt = poll && !TIME_CHAR(tty) ? MIN_CHAR(tty) : 1; > + int amt = poll && !TIME_CHAR(tty) && MIN_CHAR(tty) ? MIN_CHAR(tty) : 1; > > if (ldata->icanon && !L_EXTPROC(tty)) { > if (ldata->canon_head != ldata->read_tail) > -- > 1.8.1.2 ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2014-02-11 20:50 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-02-05 21:25 [BUG] perf top: --stdio causes continuous refresh Stephane Eranian 2014-02-05 23:12 ` Stephane Eranian 2014-02-06 13:56 ` Arnaldo Carvalho de Melo 2014-02-06 13:58 ` Stephane Eranian 2014-02-06 14:07 ` Arnaldo Carvalho de Melo 2014-02-06 14:09 ` Arnaldo Carvalho de Melo 2014-02-06 15:24 ` Stephane Eranian 2014-02-06 17:48 ` David Ahern 2014-02-06 19:21 ` Arnaldo Carvalho de Melo 2014-02-06 19:28 ` Arnaldo Carvalho de Melo 2014-02-06 20:21 ` Stephane Eranian 2014-02-10 21:03 ` Arnaldo Carvalho de Melo 2014-02-11 2:15 ` Peter Hurley 2014-02-11 12:14 ` Arnaldo Carvalho de Melo 2014-02-11 12:18 ` Peter Hurley 2014-02-11 16:49 ` [PATCH] n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0 Peter Hurley 2014-02-11 18:31 ` David Ahern 2014-02-11 18:32 ` Eric Dumazet 2014-02-11 20:50 ` Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox