RE: [PATCH] sd: preserve sysfs updates to max_sectors_kb

Don Brace
2017-08-29T17:41:29Z

________________________________________
From: Don Brace
Sent: Monday, August 21, 2017 1:14 PM
To: Bart Van Assche; hch@infradead.org; Viswas G; Gerry Morong; Mahesh Rajashekhara; POSWALD@suse.com; Scott Benesh; Bader Ali - Saleh; Kevin Barnett; joseph.szczypek@hpe.com; Scott Teel; jejb@linux.vnet.ibm.com; Justin Lindley; John Hall
Cc: linux-scsi@vger.kernel.org
Subject: RE: [PATCH] sd: preserve sysfs updates to max_sectors_kb

> -----Original Message-----
> From: Bart Van Assche [mailto:Bart.VanAssche@wdc.com]
> Sent: Monday, August 21, 2017 2:53 PM
> To: hch@infradead.org; Viswas G <viswas.g@microsemi.com>; Gerry
> Morong <gerry.morong@microsemi.com>; Mahesh Rajashekhara
> <mahesh.rajashekhara@microsemi.com>; POSWALD@suse.com; Scott
> Benesh <scott.benesh@microsemi.com>; Don Brace
> <don.brace@microsemi.com>; Bader Ali - Saleh
> <bader.alisaleh@microsemi.com>; Kevin Barnett
> <kevin.barnett@microsemi.com>; joseph.szczypek@hpe.com; Scott Teel
> <scott.teel@microsemi.com>; jejb@linux.vnet.ibm.com; Justin Lindley
> <justin.lindley@microsemi.com>; John Hall <John.Hall@microsemi.com>
> Cc: linux-scsi@vger.kernel.org
> Subject: Re: [PATCH] sd: preserve sysfs updates to max_sectors_kb
>
> EXTERNAL EMAIL
>
>
> On Mon, 2017-08-21 at 19:12 +0000, Don Brace wrote:
> > On Friday Bart Van Assche wrote:
> > > Can you check on your test system which udev rule changes
> > > max_sectors_kb? I
> > > have checked two recent Linux distro's but haven't been able to find
> > > such a udev rule:
> > > $ grep -rw max_sectors_kb /usr/lib/udev/rules.d /etc/udev/rules.d | wc
> > > -l
> > > 0
> > >
> > > Thanks,
> > >
> > > Bart.
> >
> > On my system it is 60-block.rules, and it is the last rule in that rule
> > file.
> > --
> > # do not edit this file, it will be overwritten on update
> >
> > # enable in-kernel media-presence polling
> > ACTION=="add", SUBSYSTEM=="module", KERNEL=="block",
> > ATTR{parameters/events_dfl_poll_msecs}=="0", \
> > ATTR{parameters/events_dfl_poll_msecs}="2000"
> >
> > # forward scsi device event to corresponding block device
> > ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device",
> > TEST=="block", ATTR{block/*/uevent}="change"
> >
> > # watch metadata changes, caused by tools closing the device node which
> > was opened for writing
> > ACTION!="remove", SUBSYSTEM=="block",
> > KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*", OPTIONS+="watch"
>
> Hello Don,
>
> Can you have another look at the udev rules on your test system? The last
> rule in 60-block.rules looks like a watch rule to me. The same holds for the
> upstream version of that file
> (https://github.com/systemd/systemd/blob/maste
> r/rules/60-block.rules).
>
> Bart.

It is a watch rule.

systemd/src/udev/udevd.c
manager_new
manager->fd_inotify = udev_watch_init(manager->udev);
sd_event_add_io(manager->event, &manager->inotify_event, manager->fd_inotify, EPOLLIN, on_inotify, manager);
on_inotify (systemd source code: src/udev/udevd.c)
synthesize_change
ioctl --> BLKRRPART

This rule ends up calling BLKRRPART.

Thanks,
Don Brace
ESC - Smart Storage
Microsemi Corporation

Is there more information that I can provide?