From: bugzilla-daemon@bugzilla.kernel.org
To: linux-xfs@vger.kernel.org
Subject: [Bug 205465] [xfstests generic/475]: general protection fault: 0000 [#1] SMP KASAN PTI, RIP: 0010:iter_file_splice_write+0x63f/0xa90
Date: Thu, 05 Dec 2019 06:44:23 +0000 [thread overview]
Message-ID: <bug-205465-201763-OPRtdxPxpq@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-205465-201763@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=205465
--- Comment #4 from Zorro Lang (zlang@redhat.com) ---
(In reply to Zorro Lang from comment #3)
> (In reply to Darrick J. Wong from comment #2)
> > Could you please post the source line translations of the relevant
> > functions? I don't have your kernel build.
>
> I already removed this testing kernel build, and merged lots of new patches.
> But good news is I still can reproduce this issue[1] (by g/461 this time).
> I'll build the new kernel and post the source line translations of the
> relevant functions later.
>
>
> [ 4693.175856] run fstests generic/461 at 2019-12-04 21:46:00
> [ 4693.694096] XFS (sda5): Mounting V5 Filesystem
> [ 4693.703963] XFS (sda5): Ending clean mount
> [ 4693.710992] xfs filesystem being mounted at /mnt/xfstests/mnt2 supports
> timestamps until 2038 (0x7fffffff)
> [ 4693.726744] XFS (sda5): User initiated shutdown received. Shutting down
> filesystem
> [ 4693.740549] XFS (sda5): Unmounting Filesystem
> [ 4693.895876] XFS (sda5): Mounting V5 Filesystem
> [ 4693.905492] XFS (sda5): Ending clean mount
> [ 4693.912655] xfs filesystem being mounted at /mnt/xfstests/mnt2 supports
> timestamps until 2038 (0x7fffffff)
> [ 4702.015718] restraintd[1391]: *** Current Time: Wed Dec 04 21:46:11 2019
> Localwatchdog at: Fri Dec 06 20:32:11 2019
> [ 4708.950866] XFS (sda5): User initiated shutdown received. Shutting down
> filesystem
> [ 4708.972833] kasan: CONFIG_KASAN_INLINE enabled
> [ 4708.977801] kasan: GPF could be caused by NULL-ptr deref or user memory
> access
> [ 4708.985889] general protection fault: 0000 [#1] SMP KASAN PTI
> [ 4708.992294] CPU: 0 PID: 19412 Comm: fsstress Not tainted 5.4.0+ #1
> [ 4708.999190] Hardware name: Dell Inc. PowerEdge R630/0CNCJW, BIOS 1.2.10
> 03/09/2015
> [ 4709.007655] RIP: 0010:iter_file_splice_write+0x668/0xa00
# ./scripts/faddr2line vmlinux iter_file_splice_write+0x668
iter_file_splice_write+0x668/0xa00:
pipe_buf_release at include/linux/pipe_fs_i.h:187
(inlined by) iter_file_splice_write at fs/splice.c:773
691 ssize_t
692 iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
693 loff_t *ppos, size_t len, unsigned int flags)
694 {
695 struct splice_desc sd = {
696 .total_len = len,
697 .flags = flags,
698 .pos = *ppos,
699 .u.file = out,
700 };
701 int nbufs = pipe->max_usage;
702 struct bio_vec *array = kcalloc(nbufs, sizeof(struct bio_vec),
703 GFP_KERNEL);
704 ssize_t ret;
705
706 if (unlikely(!array))
707 return -ENOMEM;
708
709 pipe_lock(pipe);
710
711 splice_from_pipe_begin(&sd);
712 while (sd.total_len) {
713 struct iov_iter from;
714 unsigned int head = pipe->head;
715 unsigned int tail = pipe->tail;
716 unsigned int mask = pipe->ring_size - 1;
717 size_t left;
718 int n;
719
720 ret = splice_from_pipe_next(pipe, &sd);
721 if (ret <= 0)
722 break;
723
724 if (unlikely(nbufs < pipe->max_usage)) {
725 kfree(array);
726 nbufs = pipe->max_usage;
727 array = kcalloc(nbufs, sizeof(struct bio_vec),
728 GFP_KERNEL);
729 if (!array) {
730 ret = -ENOMEM;
731 break;
732 }
733 }
734
735 /* build the vector */
736 left = sd.total_len;
737 for (n = 0; !pipe_empty(head, tail) && left && n <
nbufs; tail++, n++) {
738 struct pipe_buffer *buf = &pipe->bufs[tail &
mask];
739 size_t this_len = buf->len;
740
741 if (this_len > left)
742 this_len = left;
743
744 ret = pipe_buf_confirm(pipe, buf);
745 if (unlikely(ret)) {
746 if (ret == -ENODATA)
747 ret = 0;
748 goto done;
749 }
750
751 array[n].bv_page = buf->page;
752 array[n].bv_len = this_len;
753 array[n].bv_offset = buf->offset;
754 left -= this_len;
755 }
756
757 iov_iter_bvec(&from, WRITE, array, n, sd.total_len -
left);
758 ret = vfs_iter_write(out, &from, &sd.pos, 0);
759 if (ret <= 0)
760 break;
761
762 sd.num_spliced += ret;
763 sd.total_len -= ret;
764 *ppos = sd.pos;
765
766 /* dismiss the fully eaten buffers, adjust the partial
one */
767 tail = pipe->tail;
768 while (ret) {
769 struct pipe_buffer *buf = &pipe->bufs[tail &
mask];
770 if (ret >= buf->len) {
771 ret -= buf->len;
772 buf->len = 0;
773 pipe_buf_release(pipe, buf);
774 tail++;
775 pipe->tail = tail;
776 if (pipe->files)
777 sd.need_wakeup = true;
778 } else {
779 buf->offset += ret;
780 buf->len -= ret;
781 ret = 0;
782 }
783 }
784 }
785 done:
786 kfree(array);
787 splice_from_pipe_end(pipe, &sd);
788
789 pipe_unlock(pipe);
790
791 if (sd.num_spliced)
792 ret = sd.num_spliced;
793
794 return ret;
795 }
And
181 static inline void pipe_buf_release(struct pipe_inode_info *pipe,
182 struct pipe_buffer *buf)
183 {
184 const struct pipe_buf_operations *ops = buf->ops;
185
186 buf->ops = NULL;
187 ops->release(pipe, buf);
188 }
> [ 4709.013584] Code: 00 00 48 89 fa 48 c1 ea 03 80 3c 1a 00 0f 85 97 02 00
> 00 48 8b 56 10 48 c7 46 10 00 00 00 00 48 8d 7a 08 49 89 f8 49 c1 e8 03 <41>
> 80 3c 18 00 0f 85 96 02 00 00 48 8b 52 08 4c 89 e7 41 83 c6 01
> [ 4709.034540] RSP: 0018:ffff8887ca8bf8d8 EFLAGS: 00010202
> [ 4709.040373] RAX: 0000000000000000 RBX: dffffc0000000000 RCX:
> ffffffff93c2f280
> [ 4709.048336] RDX: 0000000000000000 RSI: ffff8887fcd05000 RDI:
> 0000000000000008
> [ 4709.056299] RBP: ffffed1102ae1ca7 R08: 0000000000000001 R09:
> fffff94000397e8f
> [ 4709.064262] R10: fffff94000397e8e R11: ffffea0001cbf477 R12:
> ffff88881570e400
> [ 4709.072225] R13: 0000000000003000 R14: 0000000000000010 R15:
> ffffed1102ae1c9f
> [ 4709.080188] FS: 00007f89493b6b80(0000) GS:ffff888827a00000(0000)
> knlGS:0000000000000000
> [ 4709.089217] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 4709.095628] CR2: 00007f89493b5000 CR3: 00000007ce162004 CR4:
> 00000000001606f0
> [ 4709.103590] Call Trace:
> [ 4709.106327] ? __x64_sys_tee+0x220/0x220
> [ 4709.110704] ? generic_file_splice_read+0x4f5/0x6c0
> [ 4709.116148] ? add_to_pipe+0x370/0x370
> [ 4709.120330] ? _cond_resched+0x15/0x30
> [ 4709.124518] direct_splice_actor+0x107/0x1d0
> [ 4709.129284] splice_direct_to_actor+0x32d/0x8a0
> [ 4709.134342] ? wakeup_pipe_readers+0x80/0x80
> [ 4709.139099] ? do_splice_to+0x140/0x140
> [ 4709.143381] ? security_file_permission+0x53/0x2b0
> [ 4709.148738] do_splice_direct+0x158/0x250
> [ 4709.153212] ? splice_direct_to_actor+0x8a0/0x8a0
> [ 4709.158464] ? __sb_start_write+0x1c4/0x310
> [ 4709.163125] vfs_copy_file_range+0x39c/0xa40
> [ 4709.167890] ? __x64_sys_sendfile+0x1d0/0x1d0
> [ 4709.172753] ? lockdep_hardirqs_on+0x590/0x590
> [ 4709.177706] ? lock_downgrade+0x6d0/0x6d0
> [ 4709.182180] ? lock_acquire+0x15a/0x3d0
> [ 4709.186459] ? __might_fault+0xc4/0x1a0
> [ 4709.190754] __x64_sys_copy_file_range+0x1e8/0x460
> [ 4709.196101] ? __ia32_sys_copy_file_range+0x460/0x460
> [ 4709.201749] ? __audit_syscall_exit+0x796/0xab0
> [ 4709.206810] do_syscall_64+0x9f/0x4f0
> [ 4709.210897] entry_SYSCALL_64_after_hwframe+0x49/0xbe
> [ 4709.216534] RIP: 0033:0x7f89488a96fd
> [ 4709.220523] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48
> 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48>
> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 5b 57 2c 00 f7 d8 64 89 01 48
> [ 4709.241479] RSP: 002b:00007fff83524e98 EFLAGS: 00000246 ORIG_RAX:
> 0000000000000146
> [ 4709.249928] RAX: ffffffffffffffda RBX: 00007fff83524ee8 RCX:
> 00007f89488a96fd
> [ 4709.257891] RDX: 0000000000000004 RSI: 00007fff83524ee0 RDI:
> 0000000000000003
> [ 4709.265854] RBP: 0000000000010fcc R08: 0000000000010fcc R09:
> 0000000000000000
> [ 4709.273817] R10: 00007fff83524ee8 R11: 0000000000000246 R12:
> 00007fff83524ee0
> [ 4709.281779] R13: 0000000000000003 R14: 0000000000000004 R15:
> 0000000000214da7
> [ 4709.289746] Modules linked in: intel_rapl_msr intel_rapl_common iTCO_wdt
> iTCO_vendor_support sb_edac x86_pkg_temp_thermal intel_powerclamp dcdbas
> coretemp kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul
> ghash_clmulni_intel intel_cstate intel_uncore intel_rapl_perf
> dax_pmem_compat device_dax nd_pmem dax_pmem_core pcspkr mei_me ipmi_ssif mei
> lpc_ich sg ipmi_si ipmi_devintf ipmi_msghandler rfkill sunrpc
> acpi_power_meter ip_tables xfs libcrc32c sd_mod mgag200 drm_kms_helper
> syscopyarea sysfillrect sysimgblt fb_sys_fops drm_vram_helper lpfc
> drm_ttm_helper ttm nvmet_fc nvmet drm nvme_fc crc32c_intel nvme_fabrics ahci
> igb libahci nvme_core libata scsi_transport_fc megaraid_sas dca i2c_algo_bit
> wmi
> [ 4709.358683] ---[ end trace 2d7c5824fba18cef ]---
> [ 4709.432470] RIP: 0010:iter_file_splice_write+0x668/0xa00
> [ 4709.438415] Code: 00 00 48 89 fa 48 c1 ea 03 80 3c 1a 00 0f 85 97 02 00
> 00 48 8b 56 10 48 c7 46 10 00 00 00 00 48 8d 7a 08 49 89 f8 49 c1 e8 03 <41>
> 80 3c 18 00 0f 85 96 02 00 00 48 8b 52 08 4c 89 e7 41 83 c6 01
> [ 4709.459386] RSP: 0018:ffff8887ca8bf8d8 EFLAGS: 00010202
> [ 4709.465230] RAX: 0000000000000000 RBX: dffffc0000000000 RCX:
> ffffffff93c2f280
> [ 4709.473196] RDX: 0000000000000000 RSI: ffff8887fcd05000 RDI:
> 0000000000000008
> [ 4709.481161] RBP: ffffed1102ae1ca7 R08: 0000000000000001 R09:
> fffff94000397e8f
> [ 4709.489138] R10: fffff94000397e8e R11: ffffea0001cbf477 R12:
> ffff88881570e400
> [ 4709.497112] R13: 0000000000003000 R14: 0000000000000010 R15:
> ffffed1102ae1c9f
> [ 4709.505079] FS: 00007f89493b6b80(0000) GS:ffff888827a00000(0000)
> knlGS:0000000000000000
> [ 4709.514110] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 4709.520534] CR2: 00007f89493b5000 CR3: 00000007ce162004 CR4:
> 00000000001606f0
> [ 4715.584506] XFS (sda5): Unmounting Filesystem
--
You are receiving this mail because:
You are watching the assignee of the bug.
next prev parent reply other threads:[~2019-12-05 6:44 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-08 6:32 [Bug 205465] New: [xfstests generic/475]: general protection fault: 0000 [#1] SMP KASAN PTI, RIP: 0010:iter_file_splice_write+0x63f/0xa90 bugzilla-daemon
2019-11-29 11:36 ` [Bug 205465] " bugzilla-daemon
2019-12-04 15:56 ` bugzilla-daemon
2019-12-05 6:12 ` bugzilla-daemon
2019-12-05 6:44 ` bugzilla-daemon [this message]
2019-12-31 3:40 ` bugzilla-daemon
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=bug-205465-201763-OPRtdxPxpq@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@bugzilla.kernel.org \
--cc=linux-xfs@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox