Re: [2.6.23-rt3] NMI watchdog trace of deadlock

From: Ingo Molnar
Date: Sat Oct 27 2007 - 05:44:29 EST



* Nick Piggin <nickpiggin@xxxxxxxxxxxx> wrote:

> > [10138.175796] [<c0105de3>] show_trace+0x12/0x14
> > [10138.180291] [<c0105dfb>] dump_stack+0x16/0x18
> > [10138.184769] [<c011609f>] native_smp_call_function_mask+0x138/0x13d
> > [10138.191117] [<c0117606>] smp_call_function+0x1e/0x24
> > [10138.196210] [<c012f85c>] on_each_cpu+0x25/0x50
> > [10138.200807] [<c0115c74>] flush_tlb_all+0x1e/0x20
> > [10138.205553] [<c016caaf>] kmap_high+0x1b6/0x417
> > [10138.210118] [<c011ec88>] kmap+0x4d/0x4f
> > [10138.214102] [<c026a9d8>] ntfs_end_buffer_async_read+0x228/0x2f9
> > [10138.220163] [<c01a0e9e>] end_bio_bh_io_sync+0x26/0x3f
> > [10138.225352] [<c01a2b09>] bio_endio+0x42/0x6d
> > [10138.229769] [<c02c2a08>] __end_that_request_first+0x115/0x4ac
> > [10138.235682] [<c02c2da7>] end_that_request_chunk+0x8/0xa
> > [10138.241052] [<c0365943>] ide_end_request+0x55/0x10a
> > [10138.246058] [<c036dae3>] ide_dma_intr+0x6f/0xac
> > [10138.250727] [<c0366d83>] ide_intr+0x93/0x1e0
> > [10138.255125] [<c015afb4>] handle_IRQ_event+0x5c/0xc9
>
> Looks like ntfs is kmap()ing from interrupt context. Should be using
> kmap_atomic instead, I think.

it's not atomic interrupt context but irq thread context - and -rt
remaps kmap_atomic() to kmap() internally.

the problem seems to be what Mike's patch works around: fiddling with
irq flags in the ntfs code. That fiddling seems quite unnecessary at
first sight.

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