All of lore.kernel.org
 help / color / mirror / Atom feed
* 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
@ 2006-02-10 20:07 Miles Lane
  2006-02-10 20:21 ` Andrew Morton
  0 siblings, 1 reply; 9+ messages in thread
From: Miles Lane @ 2006-02-10 20:07 UTC (permalink / raw)
  To: LKML, Andrew Morton

BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
 <c0103a85> show_trace+0xd/0xf   <c0103a9c> dump_stack+0x15/0x17
 <f931b977> get_phy_reg+0x76/0xed [ohci1394]   <f931ba34>
ohci_devctl+0x46/0x524 [ohci1394]
 <f931cc2a> ohci_irq_handler+0x2e4/0x69e [ohci1394]   <c013b91a>
handle_IRQ_event+0x26/0x51
 <c013b9d2> __do_IRQ+0x8d/0xe3   <c0104c7f> do_IRQ+0x65/0x84
 =======================
 <c0103166> common_interrupt+0x1a/0x20   <c0104ce7> do_softirq+0x49/0x52
 =======================
 <c01209ed> irq_exit+0x36/0x38   <c010d679> smp_apic_timer_interrupt+0x5c/0x5f
 <c01031f4> apic_timer_interrupt+0x1c/0x24   <f931b8f9>
set_phy_reg+0xe7/0xef [ohci1394]
 <f931ba47> ohci_devctl+0x59/0x524 [ohci1394]   <f9419079>
hpsb_reset_bus+0x1f/0x26 [ieee1394]
 <f941af08> delayed_reset_bus+0xb7/0xbb [ieee1394]   <c012a0ac>
run_workqueue+0x7a/0xbb
 <c012a247> worker_thread+0xce/0x100   <c012ce31> kthread+0xa6/0xd3
 <c0100bcd> kernel_thread_helper+0x5/0xb
BUG: warning at drivers/ieee1394/ohci1394.c:264/set_phy_reg()
 <c0103a85> show_trace+0xd/0xf   <c0103a9c> dump_stack+0x15/0x17
 <f931b89f> set_phy_reg+0x8d/0xef [ohci1394]   <f931ba47>
ohci_devctl+0x59/0x524 [ohci1394]
 <f931cc2a> ohci_irq_handler+0x2e4/0x69e [ohci1394]   <c013b91a>
handle_IRQ_event+0x26/0x51
 <c013b9d2> __do_IRQ+0x8d/0xe3   <c0104c7f> do_IRQ+0x65/0x84
 =======================
 <c0103166> common_interrupt+0x1a/0x20   <c0104ce7> do_softirq+0x49/0x52
 =======================
 <c01209ed> irq_exit+0x36/0x38   <c010d679> smp_apic_timer_interrupt+0x5c/0x5f
 <c01031f4> apic_timer_interrupt+0x1c/0x24   <f931b8f9>
set_phy_reg+0xe7/0xef [ohci1394]
 <f931ba47> ohci_devctl+0x59/0x524 [ohci1394]   <f9419079>
hpsb_reset_bus+0x1f/0x26 [ieee1394]
 <f941af08> delayed_reset_bus+0xb7/0xbb [ieee1394]   <c012a0ac>
run_workqueue+0x7a/0xbb
 <c012a247> worker_thread+0xce/0x100   <c012ce31> kthread+0xa6/0xd3
 <c0100bcd> kernel_thread_helper+0x5/0xb

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

* Re: 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
  2006-02-10 20:07 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg() Miles Lane
@ 2006-02-10 20:21 ` Andrew Morton
  2006-02-11  0:31   ` Stefan Richter
  2006-02-11  2:28   ` Lee Revell
  0 siblings, 2 replies; 9+ messages in thread
From: Andrew Morton @ 2006-02-10 20:21 UTC (permalink / raw)
  To: Miles Lane; +Cc: linux-kernel, linux1394-devel

Miles Lane <miles.lane@gmail.com> wrote:
>
> BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()

That's a -mm-only warning telling you that get_phy_reg() is doing a
one-millisecond-or-more busywait while local interrupts are disabled.

That's the sort of thing which makes audio developers pursue 1394 developers
with sharp sticks.


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

* Re: 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
  2006-02-10 20:21 ` Andrew Morton
@ 2006-02-11  0:31   ` Stefan Richter
  2006-02-11  2:30     ` Lee Revell
  2006-02-11  2:28   ` Lee Revell
  1 sibling, 1 reply; 9+ messages in thread
From: Stefan Richter @ 2006-02-11  0:31 UTC (permalink / raw)
  To: linux1394-devel; +Cc: Andrew Morton, Miles Lane, linux-kernel

Andrew Morton wrote:
> Miles Lane <miles.lane@gmail.com> wrote:
>>BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
> 
> That's a -mm-only warning telling you that get_phy_reg() is doing a
> one-millisecond-or-more busywait while local interrupts are disabled.

Same with set_phy_reg, ohci_soft_reset, ohci_hw_csr_reg. At least the 
callers of ohci_hw_csr_reg (in particular, csr_highlevel.host_reset, 
furthermore csr_highlevel.add_host) could fairly easily be converted to 
a workqueue job or perhaps moved to the nodemgr thread. I have not 
checked the other offending functions yet.
-- 
Stefan Richter
-=====-=-==- --=- -=-==
http://arcgraph.de/sr/

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

* Re: 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
  2006-02-10 20:21 ` Andrew Morton
  2006-02-11  0:31   ` Stefan Richter
@ 2006-02-11  2:28   ` Lee Revell
  2006-02-11  4:37     ` Andrew Morton
  1 sibling, 1 reply; 9+ messages in thread
From: Lee Revell @ 2006-02-11  2:28 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Miles Lane, linux-kernel, linux1394-devel

On Fri, 2006-02-10 at 12:21 -0800, Andrew Morton wrote:
> Miles Lane <miles.lane@gmail.com> wrote:
> >
> > BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
> 
> That's a -mm-only warning telling you that get_phy_reg() is doing a
> one-millisecond-or-more busywait while local interrupts are disabled.
> 
> That's the sort of thing which makes audio developers pursue 1394 developers
> with sharp sticks.

Hmm, interesting, did -mm get a "lite" version of Ingo's latency tracer?

Lee


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

* Re: 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
  2006-02-11  0:31   ` Stefan Richter
@ 2006-02-11  2:30     ` Lee Revell
  2006-02-11  8:39       ` Stefan Richter
  0 siblings, 1 reply; 9+ messages in thread
From: Lee Revell @ 2006-02-11  2:30 UTC (permalink / raw)
  To: Stefan Richter; +Cc: linux1394-devel, Andrew Morton, Miles Lane, linux-kernel

On Sat, 2006-02-11 at 01:31 +0100, Stefan Richter wrote:
> Andrew Morton wrote:
> > Miles Lane <miles.lane@gmail.com> wrote:
> >>BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
> > 
> > That's a -mm-only warning telling you that get_phy_reg() is doing a
> > one-millisecond-or-more busywait while local interrupts are disabled.
> 
> Same with set_phy_reg, ohci_soft_reset, ohci_hw_csr_reg. At least the 
> callers of ohci_hw_csr_reg (in particular, csr_highlevel.host_reset, 
> furthermore csr_highlevel.add_host) could fairly easily be converted to 
> a workqueue job or perhaps moved to the nodemgr thread. I have not 
> checked the other offending functions yet.

In fact I'm pretty sure we have seen reports on the linux-audio-user
list of apps reporting underruns when a 1394 drive is accessed.

Lee


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

* Re: 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
  2006-02-11  2:28   ` Lee Revell
@ 2006-02-11  4:37     ` Andrew Morton
  2006-02-11  8:50       ` Stefan Richter
  0 siblings, 1 reply; 9+ messages in thread
From: Andrew Morton @ 2006-02-11  4:37 UTC (permalink / raw)
  To: Lee Revell; +Cc: miles.lane, linux-kernel, linux1394-devel

Lee Revell <rlrevell@joe-job.com> wrote:
>
> On Fri, 2006-02-10 at 12:21 -0800, Andrew Morton wrote:
> > Miles Lane <miles.lane@gmail.com> wrote:
> > >
> > > BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
> > 
> > That's a -mm-only warning telling you that get_phy_reg() is doing a
> > one-millisecond-or-more busywait while local interrupts are disabled.
> > 
> > That's the sort of thing which makes audio developers pursue 1394 developers
> > with sharp sticks.
> 
> Hmm, interesting, did -mm get a "lite" version of Ingo's latency tracer?
> 

ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.16-rc2/2.6.16-rc2-mm1/broken-out/debug-warn-if-we-sleep-in-an-irq-for-a-long-time.patch

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

* Re: 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
  2006-02-11  2:30     ` Lee Revell
@ 2006-02-11  8:39       ` Stefan Richter
  0 siblings, 0 replies; 9+ messages in thread
From: Stefan Richter @ 2006-02-11  8:39 UTC (permalink / raw)
  To: Lee Revell; +Cc: linux1394-devel, Andrew Morton, Miles Lane, linux-kernel

Lee Revell wrote:
> On Sat, 2006-02-11 at 01:31 +0100, Stefan Richter wrote:
>>Andrew Morton wrote:
>>>That's a -mm-only warning telling you that get_phy_reg() is doing a
>>>one-millisecond-or-more busywait while local interrupts are disabled.
>>
>>Same with set_phy_reg, ohci_soft_reset, ohci_hw_csr_reg.
[...]
> In fact I'm pretty sure we have seen reports on the linux-audio-user
> list of apps reporting underruns when a 1394 drive is accessed.

These might have different causes. The 1394 storage driver, sbp2, 
performs quite a lot of protocol handling in IRQ or soft IRQ context. I 
have been planning to move this off into process context -- not really 
because of potential latency issues but for sake of more reliable 
protocol handling. I hope I get to it RSN.

AFAICS the offending ohci1394 functions mentioned above are never called 
during normal access to an SBP-2 device. They only happen when a host 
adapter is initialized or shut down or whenever a 1394 device is plugged 
in or out (actually whenever self ID reception is completed).
-- 
Stefan Richter
-=====-=-==- --=- -=-==
http://arcgraph.de/sr/

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

* Re: 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
  2006-02-11  4:37     ` Andrew Morton
@ 2006-02-11  8:50       ` Stefan Richter
  2006-02-11  9:03         ` Andrew Morton
  0 siblings, 1 reply; 9+ messages in thread
From: Stefan Richter @ 2006-02-11  8:50 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Lee Revell, miles.lane, linux-kernel, linux1394-devel, Dave Jones

Andrew Morton wrote:
>>>That's a -mm-only warning telling you that get_phy_reg() is doing a
>>>one-millisecond-or-more busywait while local interrupts are disabled.
...
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.16-rc2/2.6.16-rc2-mm1/broken-out/debug-warn-if-we-sleep-in-an-irq-for-a-long-time.patch

So that's why when I heard of this issue the first time, it was about 
Redhat/ Fedora Core kernels. But even though this issue is very old, no 
bug report got through to linux1394-devel until December 2005.

BTW, why not swap the order of expressions:
		WARN_ON(!(warned++) && in_irq()); 	\
-- 
Stefan Richter
-=====-=-==- --=- -=-==
http://arcgraph.de/sr/

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

* Re: 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg()
  2006-02-11  8:50       ` Stefan Richter
@ 2006-02-11  9:03         ` Andrew Morton
  0 siblings, 0 replies; 9+ messages in thread
From: Andrew Morton @ 2006-02-11  9:03 UTC (permalink / raw)
  To: Stefan Richter; +Cc: rlrevell, miles.lane, linux-kernel, linux1394-devel, davej

Stefan Richter <stefanr@s5r6.in-berlin.de> wrote:
>
> BTW, why not swap the order of expressions:
>  		WARN_ON(!(warned++) && in_irq()); 	\

Because then it'd generate a warning every 4 billionth time through.

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

end of thread, other threads:[~2006-02-11  9:04 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-10 20:07 2.6.16-rc2-mm1 -- BUG: warning at drivers/ieee1394/ohci1394.c:235/get_phy_reg() Miles Lane
2006-02-10 20:21 ` Andrew Morton
2006-02-11  0:31   ` Stefan Richter
2006-02-11  2:30     ` Lee Revell
2006-02-11  8:39       ` Stefan Richter
2006-02-11  2:28   ` Lee Revell
2006-02-11  4:37     ` Andrew Morton
2006-02-11  8:50       ` Stefan Richter
2006-02-11  9:03         ` 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.