On Wed, Nov 26 2014 at 12:58am -0500, Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote: > Mike Snitzer <snitzer@xxxxxxxxxx> writes: > > On Thu, Nov 20 2014 at 3:30pm -0500, > > Michael S. Tsirkin <mst@xxxxxxxxxx> wrote: > > > >> On Thu, Nov 20, 2014 at 02:00:59PM -0500, Mike Snitzer wrote: > >> > virtio_blk incorrectly established -1U as the default for these > >> > queue_limits. Set these limits to sane default values to avoid crashing > >> > the kernel. > > ... > >> > Attempting to mkfs.xfs against a thin device from this thin-pool quickly > >> > resulted in fs/direct-io.c:dio_send_cur_page()'s BUG_ON. > >> > >> Why exactly does it BUG_ON? > >> Did some memory allocation fail? > > > > No idea, kernel log doesn't say.. all it has is "kernel BUG" pointing to > > fs/direct-io.c:dio_send_cur_page()'s BUG_ON. > > > > I could dig deeper on _why_ but honestly, there really isn't much point. > > There is *always* a point in understanding the code you are modifying. Yes, I agree (and understanding the BUG in question will be pursued). But in the context of the patch I proposed it was irrelevent. virtio-blk still _should_ fix its limits to reflect those of the block device it stacks on. My patch was a stop-gap until proper virtio-blk protocol extensions were added. But you don't seem inclined to care. > > virtio-blk doesn't get to live in fantasy-land just because it happens > > to think it is limitless. > > Calm down please. Sure, but it'd have helped if virtio-blk developers demonstrated acknowledgement that a stacking block driver should stack the limits of the underlying device. Instead you decided to trim all related portions of my reply to mst that were measured and helpful. > We don't have a sector limit. We have a segment limit, which is set > above this line. Then at a minimum max_hw_sectors should reflect that segment limit. But again, the underlying device has limits that should be stacked up. Why is that irrelevent to virtio-blk? Plus, this is a matter of not allowing a user to shoot themselves in the foot by fiddling with traditional block limits only to find in some kernel (*cough* RHEL6) they result in BUG. Mike -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel