On Thu, Oct 30, 2014 at 10:38 PM, Jens Axboe <axboe@xxxxxxxxx> wrote: > Forgot to CC you... > > > -------- Forwarded Message -------- > Subject: Re: kernel BUG at drivers/block/virtio_blk.c:172 > Date: Thu, 30 Oct 2014 08:38:08 -0600 > From: Jens Axboe <axboe@xxxxxxxxx> > To: Lukáš Czerner <lczerner@xxxxxxxxxx>, > virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx > CC: hch@xxxxxx > > On 2014-10-30 08:33, Lukáš Czerner wrote: >> >> Hi, >> >> I've just hit this BUG at drivers/block/virtio_blk.c when updated to >> the kernel from the top of the Linus git tree. >> >> commit a7ca10f263d7e673c74d8e0946d6b9993405cc9c >> >> This is my virtual machine running on RHEL7 guest >> >> qemu-kvm-1.5.3-60.el7.x86_64 >> >> The last upstream kernel (3.17.0-rc4) worked well. I'll try to >> bisect, but meanwhile this is a backtrace I got very early in the boot. >> The root fs on that guest is xfs and I am using raw disk image and virtio >> driver. >> >> Let me know if you need more information. > > > Ming, looks like this still isn't really fixed. The above upstream > commit has the latest fixup as well for the segments being wrong, so > nothing else should be pending. That looks weird, and I can't reproduce with mkfs.xfs & mount in my environment. Lukáš, could you reproduce the issue with attached debug patch and post the result? BTW, do you pass 'scsi=off' in the qemu command line for the virito-blk device? Thanks, -- Ming Lei
diff --git a/block/blk-merge.c b/block/blk-merge.c index b3ac40a..91f3275 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c @@ -113,6 +113,15 @@ void blk_recount_segments(struct request_queue *q, struct bio *bio) bio->bi_next = nxt; } + if (no_sg_merge && (bio->bi_phys_segments >= queue_max_segments(q))) + printk("%s: %d-%d-%d vcnt-%d segs-%d\n", + __func__, + no_sg_merge, + !bio_flagged(bio, BIO_CLONED), + merge_not_need, + bio->bi_vcnt, + bio->bi_phys_segments); + bio->bi_flags |= (1 << BIO_SEG_VALID); } EXPORT_SYMBOL(blk_recount_segments);
_______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization