Problem with initial sync of a RAID1 with 4Kn drives

From: Tobias Jakobi <hidden>
Date: 2021-01-29 20:39:24

Hello folks,

I recently got two new Seagate drives, Seagate Exos X X16, which are able to switch into native 4K mode. I used the Seagate tools to trigger the switch, and now want to use the two drives in a RAID1.

I proceeded to create the md device:
mdadm --create --verbose --level=1 --metadata=1.2 --raid-devices=2 /dev/md/onyx-new /dev/sda /dev/sdb

As soon as the initial sync starts the kernel log begins to fill up with errors. Here's part of the kernel log:
https://gist.github.com/tobiasjakobi/d5b5f1638d23765d5e1fecf0dfbcea3e

This is a 5.10.11 vanilla kernel, but it also happens with the 5.9.y series. As you can see I already patched the kernel to include additional information:
DEBUG: 40801 1 7

This is just a simple print() in sd_setup_read_write_cmnd().
printk("DEBUG: %x %x %x\n", blk_rq_pos(rq), blk_rq_sectors(rq), mask);

So it seems that neither the position nor the number of sectors is aligned to eight. I assume that the md subsystem is supposed to handle this?

I then double-checked for sizes for the underlying block devices and the md device itself:
cat /sys/block/{sda,sdb,md126}/queue/{hw_sector_size,logical_block_size,physical_block_size}
4096

So it's 4K for all of them.

Here's the hdparm output for one of the drives:
https://gist.github.com/tobiasjakobi/a52cf5d4461db35c1f474c6a69b0782a

The drives themselves are fine, I can use them properly as standalone devices, so I rule out a hardware error.

Any hints how to further triage this? Also would it help to open a bug on the kernel bugtracker?

Thanks in advance!

With best wishes,
Tobias Jakobi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help