Re: [pci] WARNING: CPU: 0 PID: 1 at drivers/gpu/drm/drm_crtc.c:94 drm_warn_on_modeset_not_all_locked()

From: Bjorn Helgaas
Date: Thu Mar 20 2014 - 18:50:44 EST


On Thu, Mar 20, 2014 at 6:41 AM, Fengguang Wu <fengguang.wu@xxxxxxxxx> wrote:
> Greetings,
>
> I got the below dmesg and the first bad commit is
>
> git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/resource
>
> commit aa11fc58dc71c27701b1f9a529a36a38d4337722
> Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> AuthorDate: Fri Mar 7 13:39:01 2014 -0700
> Commit: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> CommitDate: Wed Mar 19 15:00:16 2014 -0600
>
> PCI: Check all IORESOURCE_TYPE_BITS in pci_bus_alloc_from_region()
>
> When allocating space from a bus resource, i.e., from apertures leading to
> this bus, make sure the entire resource type matches. The previous code
> assumed the IORESOURCE_TYPE_BITS field was a bitmask with only a single bit
> set, but this is not true. IORESOURCE_TYPE_BITS is really an enumeration,
> and we have to check all the bits.
>
> See 72dcb1197228 ("resources: Add register address resource type").
>
> No functional change. If we used this path for allocating IRQs, DMA
> channels, or bus numbers, this would fix a bug because those types are
> indistinguishable when masked by IORESOURCE_IO | IORESOURCE_MEM. But we
> don't, so this shouldn't make any difference.
>
> Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>

Thanks (I think). I'm afraid I'm going to need some more help to
debug this. I built aa11fc58dc with the config you supplied and
booted it on qemu with no real issues (it didn't boot all the way
because the config doesn't include a driver for my root disk, but
that's to be expected).

The dmesg you supplied is for some other commit 2d18516 that I don't
have, so I'm confused about why it's not from aa11fc58dc.

I did reproduce what appears to be basically the same problem with
a654dc797f3e, which is the 20140320 linux-next tree. I backed up to
93ecdc077282, which is where pci/next was merged (this includes
aa11fc58dc), but I could not reproduce the problem there.

So bottom line, I'm confused because your bisection doesn't match what
I'm seeing, and I don't want to spend more time flailing around.

Bjorn


> +------------------------------------------------------------------------------------------------+------------+------------+
> | | aa11fc58dc | 2d18516523 |
> +------------------------------------------------------------------------------------------------+------------+------------+
> | boot_successes | 19 | 0 |
> | boot_failures | 1 | 19 |
> | BUG:unable_to_handle_kernel_NULL_pointer_dereference | 1 | 1 |
> | Oops | 1 | 1 |
> | EIP_is_at_rapl_pmu_init | 1 | 1 |
> | Kernel_panic-not_syncing:Attempted_to_kill_init_exitcode= | 1 | 1 |
> | backtrace:rapl_pmu_init | 1 | 1 |
> | backtrace:kernel_init_freeable | 1 | 19 |
> | WARNING:CPU:PID:at_drivers/gpu/drm/drm_crtc.c:drm_warn_on_modeset_not_all_locked() | 0 | 18 |
> | WARNING:CPU:PID:at_drivers/gpu/drm/drm_crtc_helper.c:drm_helper_encoder_in_use() | 0 | 18 |
> | WARNING:CPU:PID:at_drivers/gpu/drm/drm_crtc_helper.c:drm_helper_crtc_in_use() | 0 | 18 |
> | WARNING:CPU:PID:at_drivers/gpu/drm/drm_crtc_helper.c:drm_helper_probe_single_connector_modes() | 0 | 18 |
> | WARNING:CPU:PID:at_drivers/gpu/drm/drm_modes.c:drm_mode_probed_add() | 0 | 18 |
> | WARNING:CPU:PID:at_drivers/gpu/drm/drm_modes.c:drm_mode_connector_list_update() | 0 | 18 |
> | backtrace:drm_helper_disable_unused_functions | 0 | 18 |
> | backtrace:cirrus_fbdev_init | 0 | 18 |
> | backtrace:cirrus_modeset_init | 0 | 18 |
> | backtrace:__pci_register_driver | 0 | 18 |
> | backtrace:drm_pci_init | 0 | 18 |
> | backtrace:cirrus_init | 0 | 18 |
> | backtrace:drm_fb_helper_initial_config | 0 | 18 |
> +------------------------------------------------------------------------------------------------+------------+------------+
>
> [ 1.624247] [TTM] Initializing pool allocator
> [ 1.625248] ------------[ cut here ]------------
> [ 1.625248] ------------[ cut here ]------------
> [ 1.626136] WARNING: CPU: 0 PID: 1 at drivers/gpu/drm/drm_crtc.c:94 drm_warn_on_modeset_not_all_locked+0x61/0xc6()
>
> git bisect start 2d1851652373730f6b8c7fa7f45eaa854f23da8f dcb99fd9b08cfe1afe426af4d8d3cbc429190f15 --
> git bisect bad 82202f95148065d7a0f5d86d4d6e39f31dbd7937 # 12:19 0- 10 Merge 'asoc/fix/cs42l51' into devel-hourly-2014032007
> git bisect good 9115e0b3218bd6b97e830bc36e6e80c4890f6fe4 # 12:45 20+ 0 Merge 'scsi/misc' into devel-hourly-2014032007
> git bisect good 4fb88b0dc2d9b229d03a9e6555d9056888c90137 # 14:42 20+ 0 Merge 'target/for-next' into devel-hourly-2014032007
> git bisect bad c5011f998a8e94c052c5aa71cf19510f2d0bf5fd # 15:06 0- 1 Merge 'pci/pci/resource' into devel-hourly-2014032007
> git bisect good daec480a6e6be6e9716a56029aafcbfb79e6b47b # 15:41 20+ 0 Merge 'netdev-next/master' into devel-hourly-2014032007
> git bisect good 937441ae220fd3fae143ef394227337c969ad155 # 15:57 20+ 0 Merge 'kvm/queue' into devel-hourly-2014032007
> git bisect good 3cedcc3621289d41bd21c5dbe0b886d57c83a1ea # 16:27 20+ 0 PCI: Don't enable decoding if BAR hasn't been assigned an address
> git bisect good d75332325389a95c4ddbfa0f0cd7e5e08a54aa43 # 16:54 20+ 0 s390/PCI: Use generic pci_enable_resources()
> git bisect bad aa11fc58dc71c27701b1f9a529a36a38d4337722 # 17:11 0- 1 PCI: Check all IORESOURCE_TYPE_BITS in pci_bus_alloc_from_region()
> git bisect good 6404e88e8385638123f4b18b104430480870601a # 17:23 20+ 0 resources: Set type in __request_region()
> # first bad commit: [aa11fc58dc71c27701b1f9a529a36a38d4337722] PCI: Check all IORESOURCE_TYPE_BITS in pci_bus_alloc_from_region()
> git bisect good 6404e88e8385638123f4b18b104430480870601a # 17:27 60+ 0 resources: Set type in __request_region()
> git bisect bad 2d1851652373730f6b8c7fa7f45eaa854f23da8f # 17:27 0- 19 0day head guard for 'devel-hourly-2014032007'
> git bisect good 887843961c4b4681ee993c36d4997bf4b4aa8253 # 19:24 60+ 0 mm: fix bad rss-counter if remap_file_pages raced migration
> git bisect bad a654dc797f3ea1cb5719a71a17af35f57fddb2d8 # 20:10 0- 1 Add linux-next specific files for 20140320
>
> Thanks,
> Fengguang
--
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/