mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* BUG messages with real-time kernel 2.6.25.8-rt7
@ 2008-07-01 17:47 Jürgen Mell
  2008-07-01 19:40 ` Steven Rostedt
  0 siblings, 1 reply; 2+ messages in thread
From: Jürgen Mell @ 2008-07-01 17:47 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: linux-kernel

I am getting this bug message from a real-time kernel 2.6.25.8-rt7:

Jul  1 07:58:30 cwc-003 kernel: BUG: sleeping function called from invalid 
context IRQ-15(416) at arch/x86/mm/highmem_32.c:8
Jul  1 07:58:30 cwc-003 kernel: in_atomic():0 [00000000], irqs_disabled():1
Jul  1 07:58:30 cwc-003 kernel: Pid: 416, comm: IRQ-15 Not tainted 
2.6.25.8-rt7-hws #2
Jul  1 07:58:30 cwc-003 kernel:  [<c01125f5>] kmap+0x44/0x54
Jul  1 07:58:30 cwc-003 kernel:  [<f88507fd>] ata_hsm_move+0x3d5/0x666 
[libata]
Jul  1 07:58:30 cwc-003 kernel:  [<f8854d8f>] ata_interrupt+0x14c/0x1cf 
[libata]
Jul  1 07:58:30 cwc-003 kernel:  [<c01418a6>] handle_IRQ_event+0x3f/0xad
Jul  1 07:58:30 cwc-003 kernel:  [<c0141fad>] do_irqd+0x0/0x280
Jul  1 07:58:30 cwc-003 kernel:  [<c0141c92>] thread_simple_irq+0x56/0x8f
Jul  1 07:58:30 cwc-003 kernel:  [<c0141fad>] do_irqd+0x0/0x280
Jul  1 07:58:30 cwc-003 kernel:  [<c014205b>] do_irqd+0xae/0x280
Jul  1 07:58:30 cwc-003 kernel:  [<c0141fad>] do_irqd+0x0/0x280
Jul  1 07:58:30 cwc-003 kernel:  [<c01283a6>] kthread+0x36/0x5c
Jul  1 07:58:30 cwc-003 kernel:  [<c0128370>] kthread+0x0/0x5c
Jul  1 07:58:30 cwc-003 kernel:  [<c010443f>] kernel_thread_helper+0x7/0x10
Jul  1 07:58:30 cwc-003 kernel:  =======================

This message comes always up once after the system is started. 

If a DVD is in the drive, the same message will be repeated over and over 
several times per second.

The system is an openSUSE 10.3 with the modifed kernel, KDE3 and all the 
fancy auto-mounting stuff. The kernel is not compiled for SMP (that gave 
other errors which were already discussed on LKML).

Hardware is a Pentium M processor on an industrial PC board with Intel 
chipset and integrated graphics.

Any ideas how to fix this? If you need any more information or if I can 
test something, please let me know.

Bye,
            Jürgen

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

* Re: BUG messages with real-time kernel 2.6.25.8-rt7
  2008-07-01 17:47 BUG messages with real-time kernel 2.6.25.8-rt7 Jürgen Mell
@ 2008-07-01 19:40 ` Steven Rostedt
  0 siblings, 0 replies; 2+ messages in thread
From: Steven Rostedt @ 2008-07-01 19:40 UTC (permalink / raw)
  To: Jürgen Mell; +Cc: LKML, rostedt


On Tue, 1 Jul 2008, Jürgen Mell wrote:

>
> I am getting this bug message from a real-time kernel 2.6.25.8-rt7:
>
> Jul  1 07:58:30 cwc-003 kernel: BUG: sleeping function called from invalid
> context IRQ-15(416) at arch/x86/mm/highmem_32.c:8
> Jul  1 07:58:30 cwc-003 kernel: in_atomic():0 [00000000], irqs_disabled():1
> Jul  1 07:58:30 cwc-003 kernel: Pid: 416, comm: IRQ-15 Not tainted
> 2.6.25.8-rt7-hws #2
> Jul  1 07:58:30 cwc-003 kernel:  [<c01125f5>] kmap+0x44/0x54
> Jul  1 07:58:30 cwc-003 kernel:  [<f88507fd>] ata_hsm_move+0x3d5/0x666

[...]

>
> Any ideas how to fix this? If you need any more information or if I can
> test something, please let me know.

I found the problem. In PREEMPT_RT we define kmap_atomic to kmap since we
don't disable interrutps with spin_lock_irqsave nor do we disable
preemption.

In drivers/ata/libata-core.c we have:


		/* FIXME: use bounce buffer */
		local_irq_save(flags);
		buf = kmap_atomic(page, KM_IRQ0);


But PREEMPT_RT even kmap_atomic will call "might_sleep". So the fix here
is for us to get rid of the local_irq_save. Perhaps simply add a
spin_lock_irqsave(local_lock) here.

Thanks for the report.

-- Steve


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

end of thread, other threads:[~2008-07-01 19:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-01 17:47 BUG messages with real-time kernel 2.6.25.8-rt7 Jürgen Mell
2008-07-01 19:40 ` Steven Rostedt

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

all inboxes | Powered by JetHome®