Re: [PATCH 0/5] block: add a sequence number to disks

Matteo Croce
2021-02-23T15:48:57Z

On Sat, Feb 6, 2021 at 1:09 AM Matteo Croce <mcroce@linux.microsoft.com> wrote:
>
> From: Matteo Croce <mcroce@microsoft.com>
>
> With this series a monotonically increasing number is added to disks,
> precisely in the genhd struct, and it's exported in sysfs and uevent.
>
> This helps the userspace correlate events for devices that reuse the
> same device, like loop.
>
> The first patch is the core one, the 2..4 expose the information in
> different ways, while the last one increase the sequence number for
> loop devices at every attach.
>
> # udevadm monitor -kp |grep -e ^DEVNAME -e ^DISKSEQ &
> [1] 523
> # losetup -fP 3part
> [ 3698.615848] loop0: detected capacity change from 16384 to 0
> DEVNAME=/dev/loop0
> DISKSEQ=13
> [ 3698.647189] loop0: p1 p2 p3
> DEVNAME=/dev/loop0
> DISKSEQ=13
> DEVNAME=/dev/loop0p1
> DISKSEQ=13
> DEVNAME=/dev/loop0p2
> DISKSEQ=13
> DEVNAME=/dev/loop0p3
> DISKSEQ=13
> # losetup -fP 2part
> [ 3705.170766] loop1: detected capacity change from 40960 to 0
> DEVNAME=/dev/loop1
> DISKSEQ=14
> [ 3705.247280] loop1: p1 p2
> DEVNAME=/dev/loop1
> DISKSEQ=14
> DEVNAME=/dev/loop1p1
> DISKSEQ=14
> DEVNAME=/dev/loop1p2
> DISKSEQ=14
> # ./getdiskseq /dev/loop*
> /dev/loop0: 13
> /dev/loop0p1: 13
> /dev/loop0p2: 13
> /dev/loop0p3: 13
> /dev/loop1: 14
> /dev/loop1p1: 14
> /dev/loop1p2: 14
> /dev/loop2: 5
> /dev/loop3: 6
> /dev/loop-control: Function not implemented
> # grep . /sys/class/block/*/diskseq
> /sys/class/block/loop0/diskseq:13
> /sys/class/block/loop1/diskseq:14
> /sys/class/block/loop2/diskseq:5
> /sys/class/block/loop3/diskseq:6
> /sys/class/block/ram0/diskseq:1
> /sys/class/block/ram1/diskseq:2
> /sys/class/block/vda/diskseq:7
>
> If merged, this feature will immediately used by the userspace:
> https://github.com/systemd/systemd/issues/17469#issuecomment-762919781
>
> Matteo Croce (5):
> block: add disk sequence number
> block: add ioctl to read the disk sequence number
> block: refactor sysfs code
> block: export diskseq in sysfs
> loop: increment sequence number
>
> Documentation/ABI/testing/sysfs-block | 12 ++++++++
> block/genhd.c | 43 ++++++++++++++++++++++++---
> block/ioctl.c | 2 ++
> drivers/block/loop.c | 3 ++
> include/linux/genhd.h | 2 ++
> include/uapi/linux/fs.h | 1 +
> 6 files changed, 59 insertions(+), 4 deletions(-)
>
> --
> 2.29.2
>

Hi,

Did anyone have a chance to look at this series?

Ideas or suggestions?

Regards,

--
per aspera ad upstream