http://bugzilla.suse.com/show_bug.cgi?id=888259
--- Comment #17 from Jeff Mahoney ---
So I've identified what's happening but since I normally play at the level
above this, I'm having to learn a bunch of the block layer code to sort it out.
The gist is that the virtio driver defines a scatter list of a certain size,
and the block layer is chaining more bios together than can be honored in that
list.
I have a test kernel with scatter list debugging enabled and it did trigger the
check. I've added additional debugging to confirm that it's not random
corruption -- we are actually overflowing the end of the sglist array
associated with the vblk request and running into the next vblk structure. So
when the next request comes in, the contents of the sglist are garbage.
Next step is to sort out which of the many max segment checks aren't working
correctly, if there's one missing, if it's actually device mapper causing the
issue (and it would occur with any blk-mq enabled driver), or if the virtio_blk
driver is somehow interacting incorrectly with blk-mq.
--
You are receiving this mail because:
You are on the CC list for the bug.