Re: [PATCH] pci, dmar: Update dmar units devices list during hotplug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2011-05-24 at 22:45 -0700, Yinghai Lu wrote:
> On 05/24/2011 04:02 PM, Yinghai Lu wrote:
> > On 05/24/2011 03:38 PM, Alex Williamson wrote:
> >> On Tue, 2011-05-24 at 14:45 -0700, Yinghai Lu wrote:
> >>> No, it does not work.
> >>
> >> I didn't say this wasn't without some effort, just thought it might give
> >> you a jump start.
> > 
> > ok, let me debug it tonight.
> > 
> > looks like that pdev is not freed, but already get removed from the device tree.
> > 
> > may need to pass pci_dev pointer directly.
> > 
> 
> keep getting:

Ugh, that's going to make it pretty difficult to use a dynamic lookup
approach.  Maybe we're stuck with caching the scope->pdev translation
somewhere.  We might have to turn devices into a list and include device
add/remove notification in dmar.c  I'm not sure what the best approach
is, I was just hoping to avoid leaving a known stale pointer in the
devices array with a kludgy fixup later.  Sorry if this patch was more
trouble than it's worth.  Thanks,

Alex

> [  784.364244] BUG: sleeping function called from invalid context at kernel/rwsem.c:21
> [  784.364253] in_atomic(): 0, irqs_disabled(): 1, pid: 29398, name: work_for_cpu
> [  784.364259] INFO: lockdep is turned off.
> [  784.364265] irq event stamp: 0
> [  784.364271] hardirqs last  enabled at (0): [<          (null)>]           (null)
> [  784.364282] hardirqs last disabled at (0): [<ffffffff8107ba5e>] copy_process+0x43b/0xd95
> [  784.364305] softirqs last  enabled at (0): [<ffffffff8107ba5e>] copy_process+0x43b/0xd95
> [  784.364318] softirqs last disabled at (0): [<          (null)>]           (null)
> [  784.364332] Pid: 29398, comm: work_for_cpu Not tainted 2.6.39-tip-yh-06791-gb282579-dirty #1047
> [  784.364339] Call Trace:
> [  784.364375]  [<ffffffff810ad12a>] ? print_irqtrace_events+0xd0/0xd4
> [  784.364392]  [<ffffffff81071572>] __might_sleep+0xf2/0xf6
> [  784.364410]  [<ffffffff81c20fc0>] down_read+0x26/0x91
> [  784.364429]  [<ffffffff8134c089>] pci_find_next_bus+0x45/0x75
> [  784.364442]  [<ffffffff8134c0fa>] pci_find_bus+0x41/0x54
> [  784.364457]  [<ffffffff8136263f>] dmar_get_scope_dev+0x2f/0xe3
> [  784.364474]  [<ffffffff813353ad>] ? random32+0x19/0x1b
> [  784.364488]  [<ffffffff8136273d>] dmar_match_scope+0x4a/0xb6
> [  784.364502]  [<ffffffff813628d4>] dmar_find_matched_drhd_unit+0x55/0x6f
> [  784.364519]  [<ffffffff81367018>] get_domain_for_dev.clone.2+0x103/0x392
> [  784.364533]  [<ffffffff81367459>] __get_valid_domain_for_dev+0x14/0x88
> [  784.364546]  [<ffffffff813676c5>] __intel_map_single+0x58/0x174
> [  784.364559]  [<ffffffff813678eb>] intel_alloc_coherent+0xc7/0xee
> [  784.364575]  [<ffffffff811281dc>] pool_alloc_page.clone.0+0xc9/0x140
> [  784.364588]  [<ffffffff811282d8>] dma_pool_alloc+0x85/0x131
> [  784.364603]  [<ffffffff81134b8c>] ? should_failslab+0x44/0x48
> [  784.364618]  [<ffffffff81132d62>] ? kmem_cache_alloc_trace+0x5e/0x123
> [  784.364635]  [<ffffffff818429aa>] ehci_qh_alloc+0x59/0xd2
> [  784.364649]  [<ffffffff81844451>] ehci_mem_init.clone.1+0x84/0x25c
> [  784.364660]  [<ffffffff8184471b>] ehci_init+0xf2/0x245
> [  784.364671]  [<ffffffff81844999>] ehci_pci_setup+0x12b/0x564
> [  784.364687]  [<ffffffff818323d5>] usb_add_hcd+0x10f/0x318
> [  784.364703]  [<ffffffff8183e31e>] usb_hcd_pci_probe+0x1e4/0x312
> [  784.364722]  [<ffffffff8134ae25>] local_pci_probe+0x4d/0x96
> [  784.364739]  [<ffffffff81093c4b>] ? cwq_dec_nr_in_flight+0x81/0x81
> [  784.364754]  [<ffffffff81093c63>] do_work_for_cpu+0x18/0x2b
> [  784.364770]  [<ffffffff81093c4b>] ? cwq_dec_nr_in_flight+0x81/0x81
> [  784.364787]  [<ffffffff81099ea5>] kthread+0xa0/0xa8
> [  784.364801]  [<ffffffff810adbcc>] ? trace_hardirqs_on_caller+0x1f/0x178
> [  784.364818]  [<ffffffff81c2a214>] kernel_thread_helper+0x4/0x10
> [  784.364832]  [<ffffffff81c224cc>] ? _raw_spin_unlock_irq+0x30/0x36
> [  784.364846]  [<ffffffff810add32>] ? trace_hardirqs_on+0xd/0xf
> [  784.364861]  [<ffffffff81c227c0>] ? retint_restore_args+0xe/0xe
> [  784.364880]  [<ffffffff81099e05>] ? __init_kthread_worker+0x5b/0x5b
> [  784.364893]  [<ffffffff81c2a210>] ? gs_change+0xb/0xb
> [  784.364902] DMAR: Device scope device [0000:40:00.00] not found
> [  784.364910] DMAR: Device scope device [0000:40:01.00] not found
> [  784.364931] DMAR: Device scope device [0000:40:03.00] not found
> [  784.364948] DMAR: Device scope device [0000:40:05.00] not found
> [  784.364961] DMAR: Device scope device [0000:40:07.00] not found
> [  784.364978] DMAR: Device scope device [0000:40:09.00] not found
> [  784.365019] DMAR: Device scope device [0000:80:00.00] not found
> [  784.365034] DMAR: Device scope device [0000:80:01.00] not found
> [  784.365053] DMAR: Device scope device [0000:80:03.00] not found
> [  784.365075] DMAR: Device scope device [0000:80:05.00] not found
> [  784.365094] DMAR: Device scope device [0000:80:07.00] not found
> [  784.365116] DMAR: Device scope device [0000:80:09.00] not found
> [  784.365166] DMAR: Device scope device [0000:c0:00.00] not found
> [  784.365193] DMAR: Device scope device [0000:c0:01.00] not found
> [  784.365216] DMAR: Device scope device [0000:c0:03.00] not found
> [  784.365243] DMAR: Device scope device [0000:c0:05.00] not found
> [  784.365266] DMAR: Device scope device [0000:c0:07.00] not found
> [  784.365284] DMAR: Device scope device [0000:c0:09.00] not found


--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux