Re: [PATCH v2 2/2] drm/i915/guc: Change values for i915_guc_log_control

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

 





On 1/18/2018 11:26 PM, Chris Wilson wrote:
Quoting Chris Wilson (2018-01-18 17:21:57)
Quoting Sagar Arun Kamble (2018-01-12 05:53:28)

On 1/11/2018 8:54 PM, Michal Wajdeczko wrote:
Today we have format mismatch between read/write operations
of i915_guc_log_control entry. For read we return (0, 1..4)
that represents disable/verbosity levels, but for write we
force user to follow internal structure format (0,1,9,11,13).
0x0, 0x1, 0x11, 0x21, 0x31
Let's hide internals from the user and accept same values
as we support for read and related guc_log_level modparam.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@xxxxxxxxx>
Cc: Sagar Arun Kamble <sagar.a.kamble@xxxxxxxxx>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx>
Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>
Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>
Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Sagar Arun Kamble <sagar.a.kamble@xxxxxxxxx>
Thanks for the patches and review, pushed.
Oh darn it,

    30.062893] ======================================================
[   30.062894] WARNING: possible circular locking dependency detected
[   30.062895] 4.15.0-rc8-CI-CI_DRM_3648+ #1 Tainted: G     U
[   30.062896] ------------------------------------------------------
[   30.062897] debugfs_test/1268 is trying to acquire lock:
[   30.062898]  (&dev->struct_mutex){+.+.}, at: [<00000000e4213449>] i915_mutex_lock_interruptible+0x47/0x130 [i915]
[   30.062921]
                but task is already holding lock:
[   30.062921]  (&mm->mmap_sem){++++}, at: [<00000000dd7adc93>] __do_page_fault+0x106/0x560
[   30.062924]
                which lock already depends on the new lock.

[   30.062925]
                the existing dependency chain (in reverse order) is:
[   30.062926]
                -> #3 (&mm->mmap_sem){++++}:
[   30.062930]        _copy_to_user+0x1e/0x70
[   30.062932]        filldir+0x8c/0xf0
[   30.062934]        dcache_readdir+0xeb/0x160
[   30.062935]        iterate_dir+0xdc/0x140
[   30.062936]        SyS_getdents+0xa0/0x130
[   30.062938]        entry_SYSCALL_64_fastpath+0x22/0x8f
[   30.062939]
                -> #2 (&sb->s_type->i_mutex_key#3){++++}:
[   30.062942]        start_creating+0x59/0x110
[   30.062944]        __debugfs_create_file+0x2e/0xe0
[   30.062946]        relay_create_buf_file+0x62/0x80
[   30.062947]        relay_late_setup_files+0x84/0x250
[   30.062967]        guc_log_late_setup+0x52/0x110 [i915]
[   30.062985]        i915_guc_log_register+0x3a/0x60 [i915]
[   30.062997]        i915_driver_load+0x7b6/0x1720 [i915]
[   30.063014]        i915_pci_probe+0x2e/0x90 [i915]
[   30.063017]        pci_device_probe+0x9c/0x120
[   30.063018]        driver_probe_device+0x2a3/0x480
[   30.063020]        __driver_attach+0xd9/0xe0
[   30.063021]        bus_for_each_dev+0x57/0x90
[   30.063022]        bus_add_driver+0x168/0x260
[   30.063023]        driver_register+0x52/0xc0
[   30.063024]        do_one_initcall+0x39/0x150
[   30.063025]        do_init_module+0x56/0x1ef
[   30.063026]        load_module+0x231c/0x2d70
[   30.063027]        SyS_finit_module+0xa5/0xe0
[   30.063028]        do_syscall_64+0x59/0x1a0
[   30.063030]        return_from_SYSCALL_64+0x0/0x75
[   30.063030]
                -> #1 (relay_channels_mutex){+.+.}:
[   30.063034]        relay_open+0x12c/0x2b0
[   30.063051]        guc_log_runtime_create+0xa0/0x220 [i915]
[   30.063067]        intel_guc_log_create+0xec/0x1c0 [i915]
[   30.063083]        intel_guc_init+0x5d/0x100 [i915]
[   30.063100]        intel_uc_init+0x29/0xa0 [i915]
[   30.063116]        i915_gem_init+0x18a/0x540 [i915]
[   30.063128]        i915_driver_load+0xaa9/0x1720 [i915]
[   30.063140]        i915_pci_probe+0x2e/0x90 [i915]
[   30.063141]        pci_device_probe+0x9c/0x120
[   30.063143]        driver_probe_device+0x2a3/0x480
[   30.063144]        __driver_attach+0xd9/0xe0
[   30.063145]        bus_for_each_dev+0x57/0x90
[   30.063146]        bus_add_driver+0x168/0x260
[   30.063147]        driver_register+0x52/0xc0
[   30.063148]        do_one_initcall+0x39/0x150
[   30.063149]        do_init_module+0x56/0x1ef
[   30.063150]        load_module+0x231c/0x2d70
[   30.063151]        SyS_finit_module+0xa5/0xe0
[   30.063152]        do_syscall_64+0x59/0x1a0
[   30.063153]        return_from_SYSCALL_64+0x0/0x75
[   30.063154]
                -> #0 (&dev->struct_mutex){+.+.}:
[   30.063156]        __mutex_lock+0x81/0x9b0
[   30.063172]        i915_mutex_lock_interruptible+0x47/0x130 [i915]
[   30.063187]        i915_gem_fault+0x201/0x790 [i915]
[   30.063190]        __do_fault+0x15/0x70
[   30.063191]        __handle_mm_fault+0x677/0xdc0
[   30.063193]        handle_mm_fault+0x14f/0x2f0
[   30.063194]        __do_page_fault+0x2d1/0x560
[   30.063195]        page_fault+0x4c/0x60
[   30.063196]
                other info that might help us debug this:

[   30.063197] Chain exists of:
                  &dev->struct_mutex --> &sb->s_type->i_mutex_key#3 --> &mm->mmap_sem

[   30.063200]  Possible unsafe locking scenario:

[   30.063201]        CPU0                    CPU1
[   30.063201]        ----                    ----
[   30.063202]   lock(&mm->mmap_sem);
[   30.063203]                                lock(&sb->s_type->i_mutex_key#3);
[   30.063205]                                lock(&mm->mmap_sem);
[   30.063206]   lock(&dev->struct_mutex);
[   30.063207]
                 *** DEADLOCK ***

[   30.063208] 1 lock held by debugfs_test/1268:
[   30.063209]  #0:  (&mm->mmap_sem){++++}, at: [<00000000dd7adc93>] __do_page_fault+0x106/0x560
[   30.063211]
                stack backtrace:
[   30.063213] CPU: 4 PID: 1268 Comm: debugfs_test Tainted: G     U           4.15.0-rc8-CI-CI_DRM_3648+ #1
[   30.063214] Hardware name: System manufacturer System Product Name/Z170 PRO GAMING, BIOS 3402 04/26/2017
[   30.063214] Call Trace:
[   30.063216]  dump_stack+0x5f/0x86
[   30.063219]  print_circular_bug.isra.18+0x1d0/0x2c0
[   30.063221]  __lock_acquire+0x14ae/0x1b60
[   30.063224]  ? lock_acquire+0xaf/0x200
[   30.063226]  lock_acquire+0xaf/0x200
[   30.063240]  ? i915_mutex_lock_interruptible+0x47/0x130 [i915]
[   30.063242]  __mutex_lock+0x81/0x9b0
[   30.063256]  ? i915_mutex_lock_interruptible+0x47/0x130 [i915]
[   30.063270]  ? i915_mutex_lock_interruptible+0x47/0x130 [i915]
[   30.063285]  ? i915_mutex_lock_interruptible+0x47/0x130 [i915]
[   30.063298]  i915_mutex_lock_interruptible+0x47/0x130 [i915]
[   30.063300]  ? __pm_runtime_resume+0x4f/0x80
[   30.063315]  i915_gem_fault+0x201/0x790 [i915]
[   30.063317]  __do_fault+0x15/0x70
[   30.063318]  ? _raw_spin_unlock+0x29/0x40
[   30.063320]  __handle_mm_fault+0x677/0xdc0
[   30.063323]  handle_mm_fault+0x14f/0x2f0
[   30.063324]  __do_page_fault+0x2d1/0x560
[   30.063326]  ? page_fault+0x36/0x60
[   30.063327]  page_fault+0x4c/0x60
[   30.063328] RIP: 0033:0x7f6675e9ae4f
[   30.063329] RSP: 002b:00007ffc3ed48868 EFLAGS: 00010283

I thought I had seen a patch for that?
Yes. It was being worked at while this series was also in progress.
Should have pushed that first. Currently checking sanity on trybot and will post once it passes.

Thanks,
Sagar
-Chris

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux