From: Hyeonggon Yoo <42.hyeyoo@gmail.com>
To: Byungchul Park <byungchul.park@lge.com>
Cc: torvalds@linux-foundation.org, damien.lemoal@opensource.wdc.com,
linux-ide@vger.kernel.org, adilger.kernel@dilger.ca,
linux-ext4@vger.kernel.org, mingo@redhat.com,
linux-kernel@vger.kernel.org, peterz@infradead.org,
will@kernel.org, tglx@linutronix.de, rostedt@goodmis.org,
joel@joelfernandes.org, sashal@kernel.org,
daniel.vetter@ffwll.ch, chris@chris-wilson.co.uk,
duyuyang@gmail.com, johannes.berg@intel.com, tj@kernel.org,
tytso@mit.edu, willy@infradead.org, david@fromorbit.com,
amir73il@gmail.com, bfields@fieldses.org,
gregkh@linuxfoundation.org, kernel-team@lge.com,
linux-mm@kvack.org, akpm@linux-foundation.org, mhocko@kernel.org,
minchan@kernel.org, hannes@cmpxchg.org, vdavydov.dev@gmail.com,
sj@kernel.org, jglisse@redhat.com, dennis@kernel.org,
cl@linux.com, penberg@kernel.org, rientjes@google.com,
vbabka@suse.cz, ngupta@vflare.org, linux-block@vger.kernel.org,
paolo.valente@linaro.org, josef@toxicpanda.com,
linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk,
jack@suse.cz, jack@suse.com, jlayton@kernel.org,
dan.j.williams@intel.com, hch@infradead.org, djwong@kernel.org,
dri-devel@lists.freedesktop.org, airlied@linux.ie,
rodrigosiqueiramelo@gmail.com, melissa.srw@gmail.com,
hamohammed.sa@gmail.com
Subject: Re: [PATCH RFC v6 07/21] dept: Apply Dept to seqlock
Date: Sat, 21 May 2022 14:25:35 +0900 [thread overview]
Message-ID: <Yoh3zzMPkCo2OP39@hyeyoo> (raw)
In-Reply-To: <1651652269-15342-8-git-send-email-byungchul.park@lge.com>
Hello I got new report from dept, related to seqlock.
I applied dept 1.20 series on v5.18-rc7.
Below is what DEPT reported.
I think this is bogus because reader of p->alloc_lock cannot block
its writer. Or please kindly tell me if I'm missing something ;)
Thanks.
[ 8.032674] ===================================================
[ 8.032676] DEPT: Circular dependency has been detected.
[ 8.032677] 5.18.0-rc7-dept+ #10 Tainted: G E
[ 8.032677] ---------------------------------------------------
[ 8.032678] summary
[ 8.032678] ---------------------------------------------------
[ 8.032679] *** DEADLOCK ***
[ 8.032679] context A
[ 8.032679] [S] __raw_spin_lock_irqsave(&host->lock:0)
[ 8.032681] [W] __seqprop_spinlock_wait(&p->alloc_lock:0)
[ 8.032681] [E] spin_unlock(&host->lock:0)
[ 8.032682] context B
[ 8.032682] [S] __raw_spin_lock(&dentry->d_lock:0)
[ 8.032683] [W] __raw_spin_lock(&host->lock:0)
[ 8.032684] [E] spin_unlock(&dentry->d_lock:0)
[ 8.032684] context C
[ 8.032685] [S] __raw_spin_lock(&p->alloc_lock:0)
[ 8.032685] [W] __raw_spin_lock(&dentry->d_lock:0)
[ 8.032685] [E] spin_unlock(&p->alloc_lock:0)
[ 8.032686] [S]: start of the event context
[ 8.032686] [W]: the wait blocked
[ 8.032687] [E]: the event not reachable
[ 8.032687] ---------------------------------------------------
[ 8.032687] context A's detail
[ 8.032688] ---------------------------------------------------
[ 8.032688] context A
[ 8.032688] [S] __raw_spin_lock_irqsave(&host->lock:0)
[ 8.032689] [W] __seqprop_spinlock_wait(&p->alloc_lock:0)
[ 8.032689] [E] spin_unlock(&host->lock:0)
[ 8.032690] [S] __raw_spin_lock_irqsave(&host->lock:0):
[ 8.032690] ata_scsi_queuecmd (drivers/ata/libata-scsi.c:2734 drivers/ata/libata-scsi.c:4017)
[ 8.032694] stacktrace:
[ 8.032694] ata_scsi_queuecmd (drivers/ata/libata-scsi.c:2734 drivers/ata/libata-scsi.c:4017)
[ 8.032696] scsi_queue_rq (drivers/scsi/scsi_lib.c:1517 drivers/scsi/scsi_lib.c:1745)
[ 8.032697] blk_mq_dispatch_rq_list (block/blk-mq.c:1858)
[ 8.032700] blk_mq_do_dispatch_sched (block/blk-mq-sched.c:173 block/blk-mq-sched.c:187)
[ 8.032701] __blk_mq_sched_dispatch_requests (block/blk-mq-sched.c:313)
[ 8.032702] blk_mq_sched_dispatch_requests (block/blk-mq-sched.c:339)
[ 8.032703] __blk_mq_run_hw_queue (./include/linux/rcupdate.h:723 block/blk-mq.c:1974)
[ 8.032704] __blk_mq_delay_run_hw_queue (block/blk-mq.c:2052)
[ 8.032705] blk_mq_run_hw_queue (block/blk-mq.c:2103)
[ 8.032706] blk_mq_sched_insert_requests (./include/linux/rcupdate.h:692 ./include/linux/percpu-refcount.h:330 ./include/linux/percpu-refcount.h:351 block/blk-mq-sched.c:495)
[ 8.032707] blk_mq_flush_plug_list (block/blk-mq.c:2640)
[ 8.032708] __blk_flush_plug (block/blk-core.c:1247)
[ 8.032709] blk_finish_plug (block/blk-core.c:1265 block/blk-core.c:1261)
[ 8.032710] read_pages (mm/readahead.c:181)
[ 8.032712] page_cache_ra_unbounded (./include/linux/fs.h:815 mm/readahead.c:262)
[ 8.032713] page_cache_ra_order (mm/readahead.c:547)
[ 8.032714] [W] __seqprop_spinlock_wait(&p->alloc_lock:0):
[ 8.032714] __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032717] stacktrace:
[ 8.032717] dept_wait (./arch/x86/include/asm/current.h:15 kernel/dependency/dept.c:227 kernel/dependency/dept.c:1013 kernel/dependency/dept.c:1057 kernel/dependency/dept.c:2216)
[ 8.032719] ___slab_alloc (./include/linux/seqlock.h:326 ./include/linux/cpuset.h:151 mm/slub.c:2223 mm/slub.c:2266 mm/slub.c:3000)
[ 8.032720] __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032721] kmem_cache_alloc (mm/slub.c:3183 mm/slub.c:3225 mm/slub.c:3232 mm/slub.c:3242)
[ 8.032722] alloc_iova (./include/linux/slab.h:704 drivers/iommu/iova.c:240 drivers/iommu/iova.c:316)
[ 8.032724] alloc_iova_fast (drivers/iommu/iova.c:455)
[ 8.032725] iommu_dma_alloc_iova (drivers/iommu/dma-iommu.c:628)
[ 8.032726] iommu_dma_map_sg (drivers/iommu/dma-iommu.c:1201)
[ 8.032727] __dma_map_sg_attrs (kernel/dma/mapping.c:195)
[ 8.032729] dma_map_sg_attrs (kernel/dma/mapping.c:232)
[ 8.032730] ata_qc_issue (drivers/ata/libata-core.c:4530 drivers/ata/libata-core.c:4876)
[ 8.032731] __ata_scsi_queuecmd (drivers/ata/libata-scsi.c:1710 drivers/ata/libata-scsi.c:3974)
[ 8.032732] ata_scsi_queuecmd (drivers/ata/libata-scsi.c:4019)
[ 8.032734] scsi_queue_rq (drivers/scsi/scsi_lib.c:1517 drivers/scsi/scsi_lib.c:1745)
[ 8.032734] blk_mq_dispatch_rq_list (block/blk-mq.c:1858)
[ 8.032735] blk_mq_do_dispatch_sched (block/blk-mq-sched.c:173 block/blk-mq-sched.c:187)
[ 8.032736] [E] spin_unlock(&host->lock:0):
[ 8.032737] (N/A)
[ 8.032737] ---------------------------------------------------
[ 8.032738] context B's detail
[ 8.032738] ---------------------------------------------------
[ 8.032738] context B
[ 8.032738] [S] __raw_spin_lock(&dentry->d_lock:0)
[ 8.032739] [W] __raw_spin_lock(&host->lock:0)
[ 8.032740] [E] spin_unlock(&dentry->d_lock:0)
[ 8.032740] [S] __raw_spin_lock(&dentry->d_lock:0):
[ 8.032741] lockref_get (./include/linux/spinlock.h:410 lib/lockref.c:54)
[ 8.032743] stacktrace:
[ 8.032743] lockref_get (./include/linux/spinlock.h:410 lib/lockref.c:54)
[ 8.032744] path_get (fs/namei.c:546)
[ 8.032746] do_dentry_open (fs/open.c:778)
[ 8.032747] vfs_open (fs/open.c:959)
[ 8.032748] path_openat (fs/namei.c:3583 fs/namei.c:3602)
[ 8.032749] do_filp_open (fs/namei.c:3636)
[ 8.032750] do_sys_openat2 (fs/open.c:1213)
[ 8.032751] __x64_sys_openat (fs/open.c:1240)
[ 8.032752] do_syscall_64 (arch/x86/entry/common.c:51 arch/x86/entry/common.c:82)
[ 8.032754] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:115)
[ 8.032756] [W] __raw_spin_lock(&host->lock:0):
[ 8.032756] ahci_single_level_irq_intr (drivers/ata/libahci.c:1970) libahci
[ 8.032759] stacktrace:
[ 8.032760] ahci_single_level_irq_intr (drivers/ata/libahci.c:1970) libahci
[ 8.032761] __handle_irq_event_percpu (kernel/irq/handle.c:158)
[ 8.032763] handle_irq_event (kernel/irq/handle.c:195 kernel/irq/handle.c:210)
[ 8.032763] handle_edge_irq (kernel/irq/chip.c:819)
[ 8.032764] __common_interrupt (./include/asm-generic/irq_regs.h:28 (discriminator 22) arch/x86/kernel/irq.c:263 (discriminator 22))
[ 8.032766] common_interrupt (arch/x86/kernel/irq.c:240 (discriminator 14))
[ 8.032768] asm_common_interrupt (./arch/x86/include/asm/idtentry.h:636)
[ 8.032769] lock_release (kernel/locking/lockdep.c:5665)
[ 8.032771] _raw_spin_unlock (./include/linux/spinlock_api_smp.h:141 kernel/locking/spinlock.c:186)
[ 8.032772] lockref_get (lib/lockref.c:55)
[ 8.032772] path_get (fs/namei.c:546)
[ 8.032774] do_dentry_open (fs/open.c:778)
[ 8.032774] vfs_open (fs/open.c:959)
[ 8.032775] path_openat (fs/namei.c:3583 fs/namei.c:3602)
[ 8.032776] do_filp_open (fs/namei.c:3636)
[ 8.032777] do_sys_openat2 (fs/open.c:1213)
[ 8.032778] [E] spin_unlock(&dentry->d_lock:0):
[ 8.032778] (N/A)
[ 8.032779] ---------------------------------------------------
[ 8.032779] context C's detail
[ 8.032779] ---------------------------------------------------
[ 8.032780] context C
[ 8.032780] [S] __raw_spin_lock(&p->alloc_lock:0)
[ 8.032780] [W] __raw_spin_lock(&dentry->d_lock:0)
[ 8.032781] [E] spin_unlock(&p->alloc_lock:0)
[ 8.032781] [S] __raw_spin_lock(&p->alloc_lock:0):
[ 8.032782] proc_root_link (fs/proc/base.c:177 fs/proc/base.c:208)
[ 8.032784] stacktrace:
[ 8.032784] proc_root_link (fs/proc/base.c:177 fs/proc/base.c:208)
[ 8.032784] proc_pid_get_link.part.0 (fs/proc/base.c:1756)
[ 8.032785] proc_pid_get_link (fs/proc/base.c:1762)
[ 8.032786] step_into (fs/namei.c:1819 fs/namei.c:1876)
[ 8.032787] walk_component (fs/namei.c:2027)
[ 8.032788] path_lookupat (fs/namei.c:2475 fs/namei.c:2499)
[ 8.032789] filename_lookup (fs/namei.c:2528)
[ 8.032790] vfs_statx (fs/stat.c:229)
[ 8.032791] vfs_fstatat (fs/stat.c:256)
[ 8.032792] __do_sys_newfstatat (fs/stat.c:426)
[ 8.032793] __x64_sys_newfstatat (fs/stat.c:419)
[ 8.032793] do_syscall_64 (arch/x86/entry/common.c:51 arch/x86/entry/common.c:82)
[ 8.032794] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:115)
[ 8.032796] [W] __raw_spin_lock(&dentry->d_lock:0):
[ 8.032796] lockref_get (./include/linux/spinlock.h:410 lib/lockref.c:54)
[ 8.032797] stacktrace:
[ 8.032797] lockref_get (./include/linux/spinlock.h:410 lib/lockref.c:54)
[ 8.032798] path_get (fs/namei.c:546)
[ 8.032799] proc_root_link (./include/linux/spinlock.h:410 ./include/linux/fs_struct.h:32 fs/proc/base.c:178 fs/proc/base.c:208)
[ 8.032800] proc_pid_get_link.part.0 (fs/proc/base.c:1756)
[ 8.032801] proc_pid_get_link (fs/proc/base.c:1762)
[ 8.032801] step_into (fs/namei.c:1819 fs/namei.c:1876)
[ 8.032802] walk_component (fs/namei.c:2027)
[ 8.032803] path_lookupat (fs/namei.c:2475 fs/namei.c:2499)
[ 8.032805] filename_lookup (fs/namei.c:2528)
[ 8.032805] vfs_statx (fs/stat.c:229)
[ 8.032806] vfs_fstatat (fs/stat.c:256)
[ 8.032807] __do_sys_newfstatat (fs/stat.c:426)
[ 8.032808] __x64_sys_newfstatat (fs/stat.c:419)
[ 8.032808] do_syscall_64 (arch/x86/entry/common.c:51 arch/x86/entry/common.c:82)
[ 8.032809] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:115)
[ 8.032810] [E] spin_unlock(&p->alloc_lock:0):
[ 8.032811] (N/A)
[ 8.032811] ---------------------------------------------------
[ 8.032811] information that might be helpful
[ 8.032812] ---------------------------------------------------
[ 8.032812] CPU: 4 PID: 534 Comm: systemd-tmpfile Tainted: G E 5.18.0-rc7-dept+ #10
[ 8.032814] Hardware name: ASUS System Product Name/TUF GAMING B550-PLUS (WI-FI), BIOS 1401 12/03/2020
[ 8.032814] Call Trace:
[ 8.032815] <TASK>
[ 8.032816] dump_stack_lvl (lib/dump_stack.c:107 (discriminator 4))
[ 8.032819] dump_stack (lib/dump_stack.c:114)
[ 8.032820] print_circle.cold (./arch/x86/include/asm/atomic.h:108 ./include/linux/atomic/atomic-instrumented.h:258 kernel/dependency/dept.c:143 kernel/dependency/dept.c:776)
[ 8.032822] ? print_circle (kernel/dependency/dept.c:1107)
[ 8.032824] cb_check_dl (kernel/dependency/dept.c:1133)
[ 8.032825] bfs (kernel/dependency/dept.c:874)
[ 8.032826] add_dep (kernel/dependency/dept.c:1457)
[ 8.032828] add_wait (kernel/dependency/dept.c:1505)
[ 8.032829] ? __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032831] __dept_wait (kernel/dependency/dept.c:2156 (discriminator 2))
[ 8.032832] ? __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032833] ? __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032834] dept_wait (./arch/x86/include/asm/current.h:15 kernel/dependency/dept.c:227 kernel/dependency/dept.c:1013 kernel/dependency/dept.c:1057 kernel/dependency/dept.c:2216)
[ 8.032836] ___slab_alloc (./include/linux/seqlock.h:326 ./include/linux/cpuset.h:151 mm/slub.c:2223 mm/slub.c:2266 mm/slub.c:3000)
[ 8.032837] ? alloc_iova (./include/linux/slab.h:704 drivers/iommu/iova.c:240 drivers/iommu/iova.c:316)
[ 8.032839] ? arch_stack_walk (arch/x86/kernel/stacktrace.c:27 (discriminator 1))
[ 8.032841] ? alloc_iova (./include/linux/slab.h:704 drivers/iommu/iova.c:240 drivers/iommu/iova.c:316)
[ 8.032842] __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032844] kmem_cache_alloc (mm/slub.c:3183 mm/slub.c:3225 mm/slub.c:3232 mm/slub.c:3242)
[ 8.032845] ? alloc_iova (./include/linux/slab.h:704 drivers/iommu/iova.c:240 drivers/iommu/iova.c:316)
[ 8.032846] alloc_iova (./include/linux/slab.h:704 drivers/iommu/iova.c:240 drivers/iommu/iova.c:316)
[ 8.032847] ? dept_ecxt_exit (kernel/dependency/dept.c:2506 (discriminator 1))
[ 8.032849] alloc_iova_fast (drivers/iommu/iova.c:455)
[ 8.032851] iommu_dma_alloc_iova (drivers/iommu/dma-iommu.c:628)
[ 8.032852] iommu_dma_map_sg (drivers/iommu/dma-iommu.c:1201)
[ 8.032854] ? ata_scsi_mode_select_xlat (drivers/ata/libata-scsi.c:1503)
[ 8.032855] __dma_map_sg_attrs (kernel/dma/mapping.c:195)
[ 8.032856] dma_map_sg_attrs (kernel/dma/mapping.c:232)
[ 8.032858] ata_qc_issue (drivers/ata/libata-core.c:4530 drivers/ata/libata-core.c:4876)
[ 8.032859] __ata_scsi_queuecmd (drivers/ata/libata-scsi.c:1710 drivers/ata/libata-scsi.c:3974)
[ 8.032861] ata_scsi_queuecmd (drivers/ata/libata-scsi.c:4019)
[ 8.032862] scsi_queue_rq (drivers/scsi/scsi_lib.c:1517 drivers/scsi/scsi_lib.c:1745)
[ 8.032864] blk_mq_dispatch_rq_list (block/blk-mq.c:1858)
[ 8.032866] ? sbitmap_get (lib/sbitmap.c:179 lib/sbitmap.c:206 lib/sbitmap.c:231)
[ 8.032869] blk_mq_do_dispatch_sched (block/blk-mq-sched.c:173 block/blk-mq-sched.c:187)
[ 8.032871] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67)
[ 8.032872] __blk_mq_sched_dispatch_requests (block/blk-mq-sched.c:313)
[ 8.032874] blk_mq_sched_dispatch_requests (block/blk-mq-sched.c:339)
[ 8.032875] __blk_mq_run_hw_queue (./include/linux/rcupdate.h:723 block/blk-mq.c:1974)
[ 8.032876] __blk_mq_delay_run_hw_queue (block/blk-mq.c:2052)
[ 8.032877] blk_mq_run_hw_queue (block/blk-mq.c:2103)
[ 8.032879] blk_mq_sched_insert_requests (./include/linux/rcupdate.h:692 ./include/linux/percpu-refcount.h:330 ./include/linux/percpu-refcount.h:351 block/blk-mq-sched.c:495)
[ 8.032880] blk_mq_flush_plug_list (block/blk-mq.c:2640)
[ 8.032882] __blk_flush_plug (block/blk-core.c:1247)
[ 8.032883] ? lock_release (./arch/x86/include/asm/paravirt.h:704 (discriminator 1) ./arch/x86/include/asm/irqflags.h:138 (discriminator 1) kernel/locking/lockdep.c:5664 (discriminator 1))
[ 8.032885] blk_finish_plug (block/blk-core.c:1265 block/blk-core.c:1261)
[ 8.032886] read_pages (mm/readahead.c:181)
[ 8.032888] page_cache_ra_unbounded (./include/linux/fs.h:815 mm/readahead.c:262)
[ 8.032890] page_cache_ra_order (mm/readahead.c:547)
[ 8.032892] ondemand_readahead (mm/readahead.c:669)
[ 8.032893] page_cache_sync_ra (mm/readahead.c:696)
[ 8.032894] filemap_get_pages (mm/filemap.c:2613)
[ 8.032896] ? lock_is_held_type (./arch/x86/include/asm/paravirt.h:704 (discriminator 1) ./arch/x86/include/asm/irqflags.h:138 (discriminator 1) kernel/locking/lockdep.c:5686 (discriminator 1))
[ 8.032898] filemap_read (mm/filemap.c:2698)
[ 8.032900] ? lock_is_held_type (./arch/x86/include/asm/paravirt.h:704 (discriminator 1) ./arch/x86/include/asm/irqflags.h:138 (discriminator 1) kernel/locking/lockdep.c:5686 (discriminator 1))
[ 8.032901] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67)
[ 8.032901] ? lock_is_held_type (./arch/x86/include/asm/paravirt.h:704 (discriminator 1) ./arch/x86/include/asm/irqflags.h:138 (discriminator 1) kernel/locking/lockdep.c:5686 (discriminator 1))
[ 8.032903] ? sched_clock (arch/x86/kernel/tsc.c:254)
[ 8.032904] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67)
[ 8.032905] ? lock_release (./arch/x86/include/asm/paravirt.h:704 (discriminator 1) ./arch/x86/include/asm/irqflags.h:138 (discriminator 1) kernel/locking/lockdep.c:5664 (discriminator 1))
[ 8.032907] generic_file_read_iter (mm/filemap.c:2845)
[ 8.032908] ? aa_file_perm (security/apparmor/file.c:644)
[ 8.032910] ext4_file_read_iter (fs/ext4/file.c:133)
[ 8.032912] new_sync_read (fs/read_write.c:402 (discriminator 1))
[ 8.032915] vfs_read (fs/read_write.c:482)
[ 8.032916] ksys_read (fs/read_write.c:620)
[ 8.032918] __x64_sys_read (fs/read_write.c:628)
[ 8.032919] do_syscall_64 (arch/x86/entry/common.c:51 arch/x86/entry/common.c:82)
[ 8.032920] ? do_syscall_64 (arch/x86/entry/common.c:89)
[ 8.032921] ? syscall_exit_to_user_mode (kernel/entry/common.c:297)
[ 8.032922] ? do_syscall_64 (arch/x86/entry/common.c:89)
[ 8.032924] ? do_syscall_64 (arch/x86/entry/common.c:89)
[ 8.032925] ? do_syscall_64 (./arch/x86/include/asm/jump_label.h:27 arch/x86/entry/common.c:77)
[ 8.032926] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:115)
[ 8.032927] RIP: 0033:0x7f66de513932
[ 8.032928] Code: c0 e9 b2 fe ff ff 50 48 8d 3d 3a b9 0c 00 e8 15 1a 02 00 0f 1f 44 00 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 0f 05 <48> 3d 00 f0 ff ff 77 56 c3 0f 1f 44 00 00 48 83 ec 28 48 89 54 24
All code
========
0: c0 e9 b2 shr $0xb2,%cl
3: fe (bad)
4: ff (bad)
5: ff 50 48 call *0x48(%rax)
8: 8d 3d 3a b9 0c 00 lea 0xcb93a(%rip),%edi # 0xcb948
e: e8 15 1a 02 00 call 0x21a28
13: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
18: f3 0f 1e fa endbr64
1c: 64 8b 04 25 18 00 00 mov %fs:0x18,%eax
23: 00
24: 85 c0 test %eax,%eax
26: 75 10 jne 0x38
28: 0f 05 syscall
2a:* 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax <-- trapping instruction
30: 77 56 ja 0x88
32: c3 ret
33: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
38: 48 83 ec 28 sub $0x28,%rsp
3c: 48 rex.W
3d: 89 .byte 0x89
3e: 54 push %rsp
3f: 24 .byte 0x24
Code starting with the faulting instruction
===========================================
0: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax
6: 77 56 ja 0x5e
8: c3 ret
9: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
e: 48 83 ec 28 sub $0x28,%rsp
12: 48 rex.W
13: 89 .byte 0x89
14: 54 push %rsp
15: 24 .byte 0x24
[ 8.032929] RSP: 002b:00007ffcdce2cee8 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
[ 8.032931] RAX: ffffffffffffffda RBX: 000056271b3552d0 RCX: 00007f66de513932
[ 8.032932] RDX: 0000000000001000 RSI: 000056271b357f00 RDI: 0000000000000004
[ 8.032932] RBP: 00007f66de616600 R08: 0000000000000004 R09: 000056271b358f00
[ 8.032933] R10: 000056271b357ef0 R11: 0000000000000246 R12: 00007f66de62aec0
[ 8.032934] R13: 0000000000000d68 R14: 00007f66de615a00 R15: 0000000000000d68
[ 8.032936] </TASK>
--
Thanks,
Hyeonggon
WARNING: multiple messages have this Message-ID (diff)
From: Hyeonggon Yoo <42.hyeyoo@gmail.com>
To: Byungchul Park <byungchul.park@lge.com>
Cc: hamohammed.sa@gmail.com, jack@suse.cz, peterz@infradead.org,
daniel.vetter@ffwll.ch, amir73il@gmail.com, david@fromorbit.com,
dri-devel@lists.freedesktop.org, chris@chris-wilson.co.uk,
bfields@fieldses.org, linux-ide@vger.kernel.org,
adilger.kernel@dilger.ca, joel@joelfernandes.org, cl@linux.com,
will@kernel.org, duyuyang@gmail.com, sashal@kernel.org,
paolo.valente@linaro.org, damien.lemoal@opensource.wdc.com,
willy@infradead.org, hch@infradead.org, airlied@linux.ie,
mingo@redhat.com, djwong@kernel.org, vdavydov.dev@gmail.com,
rientjes@google.com, dennis@kernel.org,
linux-ext4@vger.kernel.org, linux-mm@kvack.org,
ngupta@vflare.org, johannes.berg@intel.com, jack@suse.com,
dan.j.williams@intel.com, josef@toxicpanda.com,
rostedt@goodmis.org, linux-block@vger.kernel.org,
linux-fsdevel@vger.kernel.org, jglisse@redhat.com,
viro@zeniv.linux.org.uk, tglx@linutronix.de, mhocko@kernel.org,
vbabka@suse.cz, melissa.srw@gmail.com, sj@kernel.org,
tytso@mit.edu, rodrigosiqueiramelo@gmail.com,
kernel-team@lge.com, gregkh@linuxfoundation.org,
jlayton@kernel.org, linux-kernel@vger.kernel.org,
penberg@kernel.org, minchan@kernel.org, hannes@cmpxchg.org,
tj@kernel.org, akpm@linux-foundation.org,
torvalds@linux-foundation.org
Subject: Re: [PATCH RFC v6 07/21] dept: Apply Dept to seqlock
Date: Sat, 21 May 2022 14:25:35 +0900 [thread overview]
Message-ID: <Yoh3zzMPkCo2OP39@hyeyoo> (raw)
In-Reply-To: <1651652269-15342-8-git-send-email-byungchul.park@lge.com>
Hello I got new report from dept, related to seqlock.
I applied dept 1.20 series on v5.18-rc7.
Below is what DEPT reported.
I think this is bogus because reader of p->alloc_lock cannot block
its writer. Or please kindly tell me if I'm missing something ;)
Thanks.
[ 8.032674] ===================================================
[ 8.032676] DEPT: Circular dependency has been detected.
[ 8.032677] 5.18.0-rc7-dept+ #10 Tainted: G E
[ 8.032677] ---------------------------------------------------
[ 8.032678] summary
[ 8.032678] ---------------------------------------------------
[ 8.032679] *** DEADLOCK ***
[ 8.032679] context A
[ 8.032679] [S] __raw_spin_lock_irqsave(&host->lock:0)
[ 8.032681] [W] __seqprop_spinlock_wait(&p->alloc_lock:0)
[ 8.032681] [E] spin_unlock(&host->lock:0)
[ 8.032682] context B
[ 8.032682] [S] __raw_spin_lock(&dentry->d_lock:0)
[ 8.032683] [W] __raw_spin_lock(&host->lock:0)
[ 8.032684] [E] spin_unlock(&dentry->d_lock:0)
[ 8.032684] context C
[ 8.032685] [S] __raw_spin_lock(&p->alloc_lock:0)
[ 8.032685] [W] __raw_spin_lock(&dentry->d_lock:0)
[ 8.032685] [E] spin_unlock(&p->alloc_lock:0)
[ 8.032686] [S]: start of the event context
[ 8.032686] [W]: the wait blocked
[ 8.032687] [E]: the event not reachable
[ 8.032687] ---------------------------------------------------
[ 8.032687] context A's detail
[ 8.032688] ---------------------------------------------------
[ 8.032688] context A
[ 8.032688] [S] __raw_spin_lock_irqsave(&host->lock:0)
[ 8.032689] [W] __seqprop_spinlock_wait(&p->alloc_lock:0)
[ 8.032689] [E] spin_unlock(&host->lock:0)
[ 8.032690] [S] __raw_spin_lock_irqsave(&host->lock:0):
[ 8.032690] ata_scsi_queuecmd (drivers/ata/libata-scsi.c:2734 drivers/ata/libata-scsi.c:4017)
[ 8.032694] stacktrace:
[ 8.032694] ata_scsi_queuecmd (drivers/ata/libata-scsi.c:2734 drivers/ata/libata-scsi.c:4017)
[ 8.032696] scsi_queue_rq (drivers/scsi/scsi_lib.c:1517 drivers/scsi/scsi_lib.c:1745)
[ 8.032697] blk_mq_dispatch_rq_list (block/blk-mq.c:1858)
[ 8.032700] blk_mq_do_dispatch_sched (block/blk-mq-sched.c:173 block/blk-mq-sched.c:187)
[ 8.032701] __blk_mq_sched_dispatch_requests (block/blk-mq-sched.c:313)
[ 8.032702] blk_mq_sched_dispatch_requests (block/blk-mq-sched.c:339)
[ 8.032703] __blk_mq_run_hw_queue (./include/linux/rcupdate.h:723 block/blk-mq.c:1974)
[ 8.032704] __blk_mq_delay_run_hw_queue (block/blk-mq.c:2052)
[ 8.032705] blk_mq_run_hw_queue (block/blk-mq.c:2103)
[ 8.032706] blk_mq_sched_insert_requests (./include/linux/rcupdate.h:692 ./include/linux/percpu-refcount.h:330 ./include/linux/percpu-refcount.h:351 block/blk-mq-sched.c:495)
[ 8.032707] blk_mq_flush_plug_list (block/blk-mq.c:2640)
[ 8.032708] __blk_flush_plug (block/blk-core.c:1247)
[ 8.032709] blk_finish_plug (block/blk-core.c:1265 block/blk-core.c:1261)
[ 8.032710] read_pages (mm/readahead.c:181)
[ 8.032712] page_cache_ra_unbounded (./include/linux/fs.h:815 mm/readahead.c:262)
[ 8.032713] page_cache_ra_order (mm/readahead.c:547)
[ 8.032714] [W] __seqprop_spinlock_wait(&p->alloc_lock:0):
[ 8.032714] __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032717] stacktrace:
[ 8.032717] dept_wait (./arch/x86/include/asm/current.h:15 kernel/dependency/dept.c:227 kernel/dependency/dept.c:1013 kernel/dependency/dept.c:1057 kernel/dependency/dept.c:2216)
[ 8.032719] ___slab_alloc (./include/linux/seqlock.h:326 ./include/linux/cpuset.h:151 mm/slub.c:2223 mm/slub.c:2266 mm/slub.c:3000)
[ 8.032720] __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032721] kmem_cache_alloc (mm/slub.c:3183 mm/slub.c:3225 mm/slub.c:3232 mm/slub.c:3242)
[ 8.032722] alloc_iova (./include/linux/slab.h:704 drivers/iommu/iova.c:240 drivers/iommu/iova.c:316)
[ 8.032724] alloc_iova_fast (drivers/iommu/iova.c:455)
[ 8.032725] iommu_dma_alloc_iova (drivers/iommu/dma-iommu.c:628)
[ 8.032726] iommu_dma_map_sg (drivers/iommu/dma-iommu.c:1201)
[ 8.032727] __dma_map_sg_attrs (kernel/dma/mapping.c:195)
[ 8.032729] dma_map_sg_attrs (kernel/dma/mapping.c:232)
[ 8.032730] ata_qc_issue (drivers/ata/libata-core.c:4530 drivers/ata/libata-core.c:4876)
[ 8.032731] __ata_scsi_queuecmd (drivers/ata/libata-scsi.c:1710 drivers/ata/libata-scsi.c:3974)
[ 8.032732] ata_scsi_queuecmd (drivers/ata/libata-scsi.c:4019)
[ 8.032734] scsi_queue_rq (drivers/scsi/scsi_lib.c:1517 drivers/scsi/scsi_lib.c:1745)
[ 8.032734] blk_mq_dispatch_rq_list (block/blk-mq.c:1858)
[ 8.032735] blk_mq_do_dispatch_sched (block/blk-mq-sched.c:173 block/blk-mq-sched.c:187)
[ 8.032736] [E] spin_unlock(&host->lock:0):
[ 8.032737] (N/A)
[ 8.032737] ---------------------------------------------------
[ 8.032738] context B's detail
[ 8.032738] ---------------------------------------------------
[ 8.032738] context B
[ 8.032738] [S] __raw_spin_lock(&dentry->d_lock:0)
[ 8.032739] [W] __raw_spin_lock(&host->lock:0)
[ 8.032740] [E] spin_unlock(&dentry->d_lock:0)
[ 8.032740] [S] __raw_spin_lock(&dentry->d_lock:0):
[ 8.032741] lockref_get (./include/linux/spinlock.h:410 lib/lockref.c:54)
[ 8.032743] stacktrace:
[ 8.032743] lockref_get (./include/linux/spinlock.h:410 lib/lockref.c:54)
[ 8.032744] path_get (fs/namei.c:546)
[ 8.032746] do_dentry_open (fs/open.c:778)
[ 8.032747] vfs_open (fs/open.c:959)
[ 8.032748] path_openat (fs/namei.c:3583 fs/namei.c:3602)
[ 8.032749] do_filp_open (fs/namei.c:3636)
[ 8.032750] do_sys_openat2 (fs/open.c:1213)
[ 8.032751] __x64_sys_openat (fs/open.c:1240)
[ 8.032752] do_syscall_64 (arch/x86/entry/common.c:51 arch/x86/entry/common.c:82)
[ 8.032754] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:115)
[ 8.032756] [W] __raw_spin_lock(&host->lock:0):
[ 8.032756] ahci_single_level_irq_intr (drivers/ata/libahci.c:1970) libahci
[ 8.032759] stacktrace:
[ 8.032760] ahci_single_level_irq_intr (drivers/ata/libahci.c:1970) libahci
[ 8.032761] __handle_irq_event_percpu (kernel/irq/handle.c:158)
[ 8.032763] handle_irq_event (kernel/irq/handle.c:195 kernel/irq/handle.c:210)
[ 8.032763] handle_edge_irq (kernel/irq/chip.c:819)
[ 8.032764] __common_interrupt (./include/asm-generic/irq_regs.h:28 (discriminator 22) arch/x86/kernel/irq.c:263 (discriminator 22))
[ 8.032766] common_interrupt (arch/x86/kernel/irq.c:240 (discriminator 14))
[ 8.032768] asm_common_interrupt (./arch/x86/include/asm/idtentry.h:636)
[ 8.032769] lock_release (kernel/locking/lockdep.c:5665)
[ 8.032771] _raw_spin_unlock (./include/linux/spinlock_api_smp.h:141 kernel/locking/spinlock.c:186)
[ 8.032772] lockref_get (lib/lockref.c:55)
[ 8.032772] path_get (fs/namei.c:546)
[ 8.032774] do_dentry_open (fs/open.c:778)
[ 8.032774] vfs_open (fs/open.c:959)
[ 8.032775] path_openat (fs/namei.c:3583 fs/namei.c:3602)
[ 8.032776] do_filp_open (fs/namei.c:3636)
[ 8.032777] do_sys_openat2 (fs/open.c:1213)
[ 8.032778] [E] spin_unlock(&dentry->d_lock:0):
[ 8.032778] (N/A)
[ 8.032779] ---------------------------------------------------
[ 8.032779] context C's detail
[ 8.032779] ---------------------------------------------------
[ 8.032780] context C
[ 8.032780] [S] __raw_spin_lock(&p->alloc_lock:0)
[ 8.032780] [W] __raw_spin_lock(&dentry->d_lock:0)
[ 8.032781] [E] spin_unlock(&p->alloc_lock:0)
[ 8.032781] [S] __raw_spin_lock(&p->alloc_lock:0):
[ 8.032782] proc_root_link (fs/proc/base.c:177 fs/proc/base.c:208)
[ 8.032784] stacktrace:
[ 8.032784] proc_root_link (fs/proc/base.c:177 fs/proc/base.c:208)
[ 8.032784] proc_pid_get_link.part.0 (fs/proc/base.c:1756)
[ 8.032785] proc_pid_get_link (fs/proc/base.c:1762)
[ 8.032786] step_into (fs/namei.c:1819 fs/namei.c:1876)
[ 8.032787] walk_component (fs/namei.c:2027)
[ 8.032788] path_lookupat (fs/namei.c:2475 fs/namei.c:2499)
[ 8.032789] filename_lookup (fs/namei.c:2528)
[ 8.032790] vfs_statx (fs/stat.c:229)
[ 8.032791] vfs_fstatat (fs/stat.c:256)
[ 8.032792] __do_sys_newfstatat (fs/stat.c:426)
[ 8.032793] __x64_sys_newfstatat (fs/stat.c:419)
[ 8.032793] do_syscall_64 (arch/x86/entry/common.c:51 arch/x86/entry/common.c:82)
[ 8.032794] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:115)
[ 8.032796] [W] __raw_spin_lock(&dentry->d_lock:0):
[ 8.032796] lockref_get (./include/linux/spinlock.h:410 lib/lockref.c:54)
[ 8.032797] stacktrace:
[ 8.032797] lockref_get (./include/linux/spinlock.h:410 lib/lockref.c:54)
[ 8.032798] path_get (fs/namei.c:546)
[ 8.032799] proc_root_link (./include/linux/spinlock.h:410 ./include/linux/fs_struct.h:32 fs/proc/base.c:178 fs/proc/base.c:208)
[ 8.032800] proc_pid_get_link.part.0 (fs/proc/base.c:1756)
[ 8.032801] proc_pid_get_link (fs/proc/base.c:1762)
[ 8.032801] step_into (fs/namei.c:1819 fs/namei.c:1876)
[ 8.032802] walk_component (fs/namei.c:2027)
[ 8.032803] path_lookupat (fs/namei.c:2475 fs/namei.c:2499)
[ 8.032805] filename_lookup (fs/namei.c:2528)
[ 8.032805] vfs_statx (fs/stat.c:229)
[ 8.032806] vfs_fstatat (fs/stat.c:256)
[ 8.032807] __do_sys_newfstatat (fs/stat.c:426)
[ 8.032808] __x64_sys_newfstatat (fs/stat.c:419)
[ 8.032808] do_syscall_64 (arch/x86/entry/common.c:51 arch/x86/entry/common.c:82)
[ 8.032809] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:115)
[ 8.032810] [E] spin_unlock(&p->alloc_lock:0):
[ 8.032811] (N/A)
[ 8.032811] ---------------------------------------------------
[ 8.032811] information that might be helpful
[ 8.032812] ---------------------------------------------------
[ 8.032812] CPU: 4 PID: 534 Comm: systemd-tmpfile Tainted: G E 5.18.0-rc7-dept+ #10
[ 8.032814] Hardware name: ASUS System Product Name/TUF GAMING B550-PLUS (WI-FI), BIOS 1401 12/03/2020
[ 8.032814] Call Trace:
[ 8.032815] <TASK>
[ 8.032816] dump_stack_lvl (lib/dump_stack.c:107 (discriminator 4))
[ 8.032819] dump_stack (lib/dump_stack.c:114)
[ 8.032820] print_circle.cold (./arch/x86/include/asm/atomic.h:108 ./include/linux/atomic/atomic-instrumented.h:258 kernel/dependency/dept.c:143 kernel/dependency/dept.c:776)
[ 8.032822] ? print_circle (kernel/dependency/dept.c:1107)
[ 8.032824] cb_check_dl (kernel/dependency/dept.c:1133)
[ 8.032825] bfs (kernel/dependency/dept.c:874)
[ 8.032826] add_dep (kernel/dependency/dept.c:1457)
[ 8.032828] add_wait (kernel/dependency/dept.c:1505)
[ 8.032829] ? __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032831] __dept_wait (kernel/dependency/dept.c:2156 (discriminator 2))
[ 8.032832] ? __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032833] ? __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032834] dept_wait (./arch/x86/include/asm/current.h:15 kernel/dependency/dept.c:227 kernel/dependency/dept.c:1013 kernel/dependency/dept.c:1057 kernel/dependency/dept.c:2216)
[ 8.032836] ___slab_alloc (./include/linux/seqlock.h:326 ./include/linux/cpuset.h:151 mm/slub.c:2223 mm/slub.c:2266 mm/slub.c:3000)
[ 8.032837] ? alloc_iova (./include/linux/slab.h:704 drivers/iommu/iova.c:240 drivers/iommu/iova.c:316)
[ 8.032839] ? arch_stack_walk (arch/x86/kernel/stacktrace.c:27 (discriminator 1))
[ 8.032841] ? alloc_iova (./include/linux/slab.h:704 drivers/iommu/iova.c:240 drivers/iommu/iova.c:316)
[ 8.032842] __slab_alloc.constprop.0 (mm/slub.c:3092)
[ 8.032844] kmem_cache_alloc (mm/slub.c:3183 mm/slub.c:3225 mm/slub.c:3232 mm/slub.c:3242)
[ 8.032845] ? alloc_iova (./include/linux/slab.h:704 drivers/iommu/iova.c:240 drivers/iommu/iova.c:316)
[ 8.032846] alloc_iova (./include/linux/slab.h:704 drivers/iommu/iova.c:240 drivers/iommu/iova.c:316)
[ 8.032847] ? dept_ecxt_exit (kernel/dependency/dept.c:2506 (discriminator 1))
[ 8.032849] alloc_iova_fast (drivers/iommu/iova.c:455)
[ 8.032851] iommu_dma_alloc_iova (drivers/iommu/dma-iommu.c:628)
[ 8.032852] iommu_dma_map_sg (drivers/iommu/dma-iommu.c:1201)
[ 8.032854] ? ata_scsi_mode_select_xlat (drivers/ata/libata-scsi.c:1503)
[ 8.032855] __dma_map_sg_attrs (kernel/dma/mapping.c:195)
[ 8.032856] dma_map_sg_attrs (kernel/dma/mapping.c:232)
[ 8.032858] ata_qc_issue (drivers/ata/libata-core.c:4530 drivers/ata/libata-core.c:4876)
[ 8.032859] __ata_scsi_queuecmd (drivers/ata/libata-scsi.c:1710 drivers/ata/libata-scsi.c:3974)
[ 8.032861] ata_scsi_queuecmd (drivers/ata/libata-scsi.c:4019)
[ 8.032862] scsi_queue_rq (drivers/scsi/scsi_lib.c:1517 drivers/scsi/scsi_lib.c:1745)
[ 8.032864] blk_mq_dispatch_rq_list (block/blk-mq.c:1858)
[ 8.032866] ? sbitmap_get (lib/sbitmap.c:179 lib/sbitmap.c:206 lib/sbitmap.c:231)
[ 8.032869] blk_mq_do_dispatch_sched (block/blk-mq-sched.c:173 block/blk-mq-sched.c:187)
[ 8.032871] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67)
[ 8.032872] __blk_mq_sched_dispatch_requests (block/blk-mq-sched.c:313)
[ 8.032874] blk_mq_sched_dispatch_requests (block/blk-mq-sched.c:339)
[ 8.032875] __blk_mq_run_hw_queue (./include/linux/rcupdate.h:723 block/blk-mq.c:1974)
[ 8.032876] __blk_mq_delay_run_hw_queue (block/blk-mq.c:2052)
[ 8.032877] blk_mq_run_hw_queue (block/blk-mq.c:2103)
[ 8.032879] blk_mq_sched_insert_requests (./include/linux/rcupdate.h:692 ./include/linux/percpu-refcount.h:330 ./include/linux/percpu-refcount.h:351 block/blk-mq-sched.c:495)
[ 8.032880] blk_mq_flush_plug_list (block/blk-mq.c:2640)
[ 8.032882] __blk_flush_plug (block/blk-core.c:1247)
[ 8.032883] ? lock_release (./arch/x86/include/asm/paravirt.h:704 (discriminator 1) ./arch/x86/include/asm/irqflags.h:138 (discriminator 1) kernel/locking/lockdep.c:5664 (discriminator 1))
[ 8.032885] blk_finish_plug (block/blk-core.c:1265 block/blk-core.c:1261)
[ 8.032886] read_pages (mm/readahead.c:181)
[ 8.032888] page_cache_ra_unbounded (./include/linux/fs.h:815 mm/readahead.c:262)
[ 8.032890] page_cache_ra_order (mm/readahead.c:547)
[ 8.032892] ondemand_readahead (mm/readahead.c:669)
[ 8.032893] page_cache_sync_ra (mm/readahead.c:696)
[ 8.032894] filemap_get_pages (mm/filemap.c:2613)
[ 8.032896] ? lock_is_held_type (./arch/x86/include/asm/paravirt.h:704 (discriminator 1) ./arch/x86/include/asm/irqflags.h:138 (discriminator 1) kernel/locking/lockdep.c:5686 (discriminator 1))
[ 8.032898] filemap_read (mm/filemap.c:2698)
[ 8.032900] ? lock_is_held_type (./arch/x86/include/asm/paravirt.h:704 (discriminator 1) ./arch/x86/include/asm/irqflags.h:138 (discriminator 1) kernel/locking/lockdep.c:5686 (discriminator 1))
[ 8.032901] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67)
[ 8.032901] ? lock_is_held_type (./arch/x86/include/asm/paravirt.h:704 (discriminator 1) ./arch/x86/include/asm/irqflags.h:138 (discriminator 1) kernel/locking/lockdep.c:5686 (discriminator 1))
[ 8.032903] ? sched_clock (arch/x86/kernel/tsc.c:254)
[ 8.032904] ? __this_cpu_preempt_check (lib/smp_processor_id.c:67)
[ 8.032905] ? lock_release (./arch/x86/include/asm/paravirt.h:704 (discriminator 1) ./arch/x86/include/asm/irqflags.h:138 (discriminator 1) kernel/locking/lockdep.c:5664 (discriminator 1))
[ 8.032907] generic_file_read_iter (mm/filemap.c:2845)
[ 8.032908] ? aa_file_perm (security/apparmor/file.c:644)
[ 8.032910] ext4_file_read_iter (fs/ext4/file.c:133)
[ 8.032912] new_sync_read (fs/read_write.c:402 (discriminator 1))
[ 8.032915] vfs_read (fs/read_write.c:482)
[ 8.032916] ksys_read (fs/read_write.c:620)
[ 8.032918] __x64_sys_read (fs/read_write.c:628)
[ 8.032919] do_syscall_64 (arch/x86/entry/common.c:51 arch/x86/entry/common.c:82)
[ 8.032920] ? do_syscall_64 (arch/x86/entry/common.c:89)
[ 8.032921] ? syscall_exit_to_user_mode (kernel/entry/common.c:297)
[ 8.032922] ? do_syscall_64 (arch/x86/entry/common.c:89)
[ 8.032924] ? do_syscall_64 (arch/x86/entry/common.c:89)
[ 8.032925] ? do_syscall_64 (./arch/x86/include/asm/jump_label.h:27 arch/x86/entry/common.c:77)
[ 8.032926] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:115)
[ 8.032927] RIP: 0033:0x7f66de513932
[ 8.032928] Code: c0 e9 b2 fe ff ff 50 48 8d 3d 3a b9 0c 00 e8 15 1a 02 00 0f 1f 44 00 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 0f 05 <48> 3d 00 f0 ff ff 77 56 c3 0f 1f 44 00 00 48 83 ec 28 48 89 54 24
All code
========
0: c0 e9 b2 shr $0xb2,%cl
3: fe (bad)
4: ff (bad)
5: ff 50 48 call *0x48(%rax)
8: 8d 3d 3a b9 0c 00 lea 0xcb93a(%rip),%edi # 0xcb948
e: e8 15 1a 02 00 call 0x21a28
13: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
18: f3 0f 1e fa endbr64
1c: 64 8b 04 25 18 00 00 mov %fs:0x18,%eax
23: 00
24: 85 c0 test %eax,%eax
26: 75 10 jne 0x38
28: 0f 05 syscall
2a:* 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax <-- trapping instruction
30: 77 56 ja 0x88
32: c3 ret
33: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
38: 48 83 ec 28 sub $0x28,%rsp
3c: 48 rex.W
3d: 89 .byte 0x89
3e: 54 push %rsp
3f: 24 .byte 0x24
Code starting with the faulting instruction
===========================================
0: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax
6: 77 56 ja 0x5e
8: c3 ret
9: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
e: 48 83 ec 28 sub $0x28,%rsp
12: 48 rex.W
13: 89 .byte 0x89
14: 54 push %rsp
15: 24 .byte 0x24
[ 8.032929] RSP: 002b:00007ffcdce2cee8 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
[ 8.032931] RAX: ffffffffffffffda RBX: 000056271b3552d0 RCX: 00007f66de513932
[ 8.032932] RDX: 0000000000001000 RSI: 000056271b357f00 RDI: 0000000000000004
[ 8.032932] RBP: 00007f66de616600 R08: 0000000000000004 R09: 000056271b358f00
[ 8.032933] R10: 000056271b357ef0 R11: 0000000000000246 R12: 00007f66de62aec0
[ 8.032934] R13: 0000000000000d68 R14: 00007f66de615a00 R15: 0000000000000d68
[ 8.032936] </TASK>
--
Thanks,
Hyeonggon
next prev parent reply other threads:[~2022-05-21 5:26 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-04 8:17 [PATCH RFC v6 00/21] DEPT(Dependency Tracker) Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 01/21] llist: Move llist_{head,node} definition to types.h Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 01/21] llist: Move llist_{head, node} " Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 02/21] dept: Implement Dept(Dependency Tracker) Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 13:29 ` kernel test robot
2022-05-21 3:24 ` Hyeonggon Yoo
2022-05-21 3:24 ` Hyeonggon Yoo
2022-05-04 8:17 ` [PATCH RFC v6 03/21] dept: Apply Dept to spinlock Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 04/21] dept: Apply Dept to mutex families Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 05/21] dept: Apply Dept to rwlock Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 06/21] dept: Apply Dept to wait_for_completion()/complete() Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 07/21] dept: Apply Dept to seqlock Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-21 5:25 ` Hyeonggon Yoo [this message]
2022-05-21 5:25 ` Hyeonggon Yoo
2022-05-24 6:00 ` Byungchul Park
2022-05-24 6:00 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 08/21] dept: Apply Dept to rwsem Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 09/21] dept: Add proc knobs to show stats and dependency graph Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 10/21] dept: Introduce split map concept and new APIs for them Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 11/21] dept: Apply Dept to wait/event of PG_{locked,writeback} Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 11/21] dept: Apply Dept to wait/event of PG_{locked, writeback} Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 12/21] dept: Apply SDT to swait Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 13/21] dept: Apply SDT to wait(waitqueue) Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 14/21] locking/lockdep, cpu/hotplus: Use a weaker annotation in AP thread Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 15/21] dept: Distinguish each syscall context from another Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 16/21] dept: Distinguish each work " Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 11:23 ` Sergey Shtylyov
2022-05-04 11:23 ` Sergey Shtylyov
2022-05-04 8:17 ` [PATCH RFC v6 17/21] dept: Disable Dept within the wait_bit layer by default Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 18/21] dept: Disable Dept on struct crypto_larval's completion for now Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 19/21] dept: Differentiate onstack maps from others of different tasks in class Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 20/21] dept: Do not add dependencies between events within scheduler and sleeps Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 8:17 ` [PATCH RFC v6 21/21] dept: Unstage wait when tagging a normal sleep wait Byungchul Park
2022-05-04 8:17 ` Byungchul Park
2022-05-04 18:17 ` [PATCH RFC v6 00/21] DEPT(Dependency Tracker) Linus Torvalds
2022-05-04 18:17 ` Linus Torvalds
2022-05-06 0:11 ` Byungchul Park
2022-05-06 0:11 ` Byungchul Park
2022-05-07 7:20 ` Hyeonggon Yoo
2022-05-07 7:20 ` Hyeonggon Yoo
2022-05-09 0:16 ` Byungchul Park
2022-05-09 0:16 ` Byungchul Park
2022-05-09 20:47 ` Steven Rostedt
2022-05-09 20:47 ` Steven Rostedt
2022-05-09 23:38 ` Byungchul Park
2022-05-09 23:38 ` Byungchul Park
2022-05-10 14:12 ` Steven Rostedt
2022-05-10 14:12 ` Steven Rostedt
2022-05-10 23:26 ` Byungchul Park
2022-05-10 23:26 ` Byungchul Park
2022-05-10 11:18 ` Hyeonggon Yoo
2022-05-10 11:18 ` Hyeonggon Yoo
2022-05-10 23:39 ` Byungchul Park
2022-05-10 23:39 ` Byungchul Park
2022-05-11 10:04 ` Hyeonggon Yoo
2022-05-11 10:04 ` Hyeonggon Yoo
2022-05-19 10:11 ` Catalin Marinas
2022-05-19 10:11 ` Catalin Marinas
2022-05-23 2:43 ` Byungchul Park
2022-05-23 2:43 ` Byungchul Park
2022-05-09 1:22 ` Byungchul Park
2022-05-09 1:22 ` Byungchul Park
2022-05-09 21:05 ` Theodore Ts'o
2022-05-09 21:05 ` Theodore Ts'o
2022-05-09 22:28 ` Theodore Ts'o
2022-05-09 22:28 ` Theodore Ts'o
2022-05-10 0:32 ` Byungchul Park
2022-05-10 0:32 ` Byungchul Park
2022-05-10 1:32 ` Theodore Ts'o
2022-05-10 1:32 ` Theodore Ts'o
2022-05-10 5:37 ` Byungchul Park
2022-05-10 5:37 ` Byungchul Park
2022-05-11 1:16 ` Byungchul Park
2022-05-11 1:16 ` Byungchul Park
2022-05-12 5:25 ` [REPORT] syscall reboot + umh + firmware fallback Byungchul Park
2022-05-12 5:25 ` Byungchul Park
2022-05-12 9:15 ` Tejun Heo
2022-05-12 9:15 ` Tejun Heo
2022-05-12 11:18 ` Byungchul Park
2022-05-12 11:18 ` Byungchul Park
2022-05-12 13:56 ` Theodore Ts'o
2022-05-12 13:56 ` Theodore Ts'o
2022-05-23 1:10 ` Byungchul Park
2022-05-23 1:10 ` Byungchul Park
2022-05-12 16:41 ` Tejun Heo
2022-05-12 16:41 ` Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Yoh3zzMPkCo2OP39@hyeyoo \
--to=42.hyeyoo@gmail.com \
--cc=adilger.kernel@dilger.ca \
--cc=airlied@linux.ie \
--cc=akpm@linux-foundation.org \
--cc=amir73il@gmail.com \
--cc=bfields@fieldses.org \
--cc=byungchul.park@lge.com \
--cc=chris@chris-wilson.co.uk \
--cc=cl@linux.com \
--cc=damien.lemoal@opensource.wdc.com \
--cc=dan.j.williams@intel.com \
--cc=daniel.vetter@ffwll.ch \
--cc=david@fromorbit.com \
--cc=dennis@kernel.org \
--cc=djwong@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=duyuyang@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hamohammed.sa@gmail.com \
--cc=hannes@cmpxchg.org \
--cc=hch@infradead.org \
--cc=jack@suse.com \
--cc=jack@suse.cz \
--cc=jglisse@redhat.com \
--cc=jlayton@kernel.org \
--cc=joel@joelfernandes.org \
--cc=johannes.berg@intel.com \
--cc=josef@toxicpanda.com \
--cc=kernel-team@lge.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=melissa.srw@gmail.com \
--cc=mhocko@kernel.org \
--cc=minchan@kernel.org \
--cc=mingo@redhat.com \
--cc=ngupta@vflare.org \
--cc=paolo.valente@linaro.org \
--cc=penberg@kernel.org \
--cc=peterz@infradead.org \
--cc=rientjes@google.com \
--cc=rodrigosiqueiramelo@gmail.com \
--cc=rostedt@goodmis.org \
--cc=sashal@kernel.org \
--cc=sj@kernel.org \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
--cc=vbabka@suse.cz \
--cc=vdavydov.dev@gmail.com \
--cc=viro@zeniv.linux.org.uk \
--cc=will@kernel.org \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.