Re: Re: kernel BUG at drivers/block/virtio_blk.c:172

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

 



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

[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux