Please see the following original thread for the history, and the git bisect showing which commit this was introduced. Other consumers of block layer (eg: xfs) also were required to change their alignment around this time, to be 512B aligned. https://lore.kernel.org/linux-rdma/20191203041504.GC6245@ming.t460p/T/#m478c0b2a455a4b897320fa859b89910ffd7b6697 Thanks. Sagi Grimberg <sagi@xxxxxxxxxxx> > >> Currently we allocate rx buffers in a single contiguous buffers > >> for headers (iser and iscsi) and data trailer. This means > >> that most likely the data starting offset is aligned to 76 > >> bytes (size of both headers). > >> > >> This worked fine for years, but at some point this broke. > >> To fix this, we should avoid passing unaligned buffers for > >> I/O. > > > > That is a bit vauge - what suddenly broke it? > > Somewhere around the multipage bvec work that Ming did. The issue was > that brd assumed a 512 aligned page vector. IIRC the discussion settled > that the block layer expects a 512B aligned buffer(s). > > Adding Ming to the thread.