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? -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx