Re: Data corruption in kernel 5.1+ with iSER attached ramdisk

Ming Lei
2019-12-03T04:15:26Z

On Mon, Dec 02, 2019 at 10:26:28PM -0500, Stephen Rust wrote:
> > oops, it should have been (arg4 & 511) != 0.
>
> Yep, there they are:
>
> # /usr/share/bcc/tools/trace -K 'bio_add_page ((arg4 & 511) != 0) "%d
> %d", arg3, arg4'
> PID TID COMM FUNC -
> 7411 7411 kworker/31:1H bio_add_page 512 76
> bio_add_page+0x1 [kernel]
> sbc_execute_rw+0x28 [kernel]
> __target_execute_cmd+0x2e [kernel]
> target_execute_cmd+0x1c1 [kernel]
> iscsit_execute_cmd+0x1e7 [kernel]
> iscsit_sequence_cmd+0xdc [kernel]
> isert_recv_done+0x780 [kernel]
> __ib_process_cq+0x78 [kernel]
> ib_cq_poll_work+0x29 [kernel]
> process_one_work+0x179 [kernel]
> worker_thread+0x4f [kernel]
> kthread+0x105 [kernel]
> ret_from_fork+0x1f [kernel]
>
> 7753 7753 kworker/26:1H bio_add_page 4096 76

The issue should be in brd_make_request() which assumes that
bvec.bv_len is 512bytes align.

I will figure out one patch for you tomorrow.

Thanks,
Ming