Hi Ming, Thanks for all your help and insight. I really appreciate it. > > Presumably non-brd devices, ie: real scsi devices work for these test > > cases because they accept un-aligned buffers? > > Right, not every driver supports such un-aligned buffer. Can you please clarify: does the block layer require that it is called with 512-byte aligned buffers? If that is the case, would it make sense for the block interface (bio_add_page() or other) to reject buffers that are not aligned? It seems that passing these buffers on to underlying drivers that don't support un-aligned buffers can result in silent data corruption. Perhaps it would be better to fail the I/O up front. This would also help future proof the block interface when changes/new target drivers are added. I'm also curious how these same unaligned buffers from iSER made it to brd and were written successfully in the pre "multi-page bvec" world. (Just trying to understand, if you have any thoughts, as this same test case worked fine in 4.14+ until 5.1) > I am not familiar with RDMA, but from the trace we have done so far, > it is highly related with iser driver. Do you think it is fair to say that the iSER/block integration is causing corruption by using un-aligned buffers? Thanks, Steve