In your case, my action is:
1) merger uevents 1) 2) to one uevent "add sda sdb", and process them togother
2) process uevent "del sda"
3) process uevent "add sdc"
4) process uevent "del sdb"
5) process uevent "add sda"
Though the processing efficiency in such scenario is lower than yours, but it is simple and reliable,
more importantly, Martin, you still focus on such special
scene, which I concerned is like this:
UDEV [19172.014482] add /devices/platform/host3/session17/target3:0:0/3:0:0:0/block/sdc (block)
UDEV [19172.249389] add /devices/platform/host4/session18/target4:0:0/4:0:0:0/block/sdd (block)
UDEV [19172.343791] add /devices/platform/host3/session17/target3:0:0/3:0:0:2/block/sdf (block)
UDEV [19172.364496] add /devices/platform/host5/session19/target5:0:0/5:0:0:0/block/sdh (block)
UDEV [19172.523794] add /devices/platform/host4/session18/target4:0:0/4:0:0:2/block/sdi (block)
UDEV [19172.621333] add /devices/platform/host3/session17/target3:0:0/3:0:0:4/block/sdn (block)
UDEV [19172.699473] add /devices/platform/host4/session18/target4:0:0/4:0:0:1/block/sdg (block)
UDEV [19172.704605] add /devices/platform/host3/session17/target3:0:0/3:0:0:1/block/sde (block)
UDEV [19172.709687] add /devices/platform/host3/session17/target3:0:0/3:0:0:3/block/sdj (block)
UDEV [19172.714919] add /devices/platform/host4/session18/target4:0:0/4:0:0:3/block/sdl (block)
UDEV [19172.728891] add /devices/platform/host4/session18/target4:0:0/4:0:0:4/block/sdo (block)
UDEV [19172.872156] add /devices/platform/host3/session17/target3:0:0/3:0:0:6/block/sdt (block)
UDEV [19172.915542] add /devices/platform/host4/session18/target4:0:0/4:0:0:6/block/sdu (block)
UDEV [19173.086935] add /devices/platform/host6/session20/target6:0:0/6:0:0:0/block/sdw (block)
UDEV [19173.108278] add /devices/platform/host6/session20/target6:0:0/6:0:0:1/block/sdz (block)
UDEV [19173.195153] add /devices/platform/host4/session18/target4:0:0/4:0:0:5/block/sdr (block)
UDEV [19173.228397] add /devices/platform/host3/session17/target3:0:0/3:0:0:5/block/sdq (block)
UDEV [19173.363632] add /devices/platform/host5/session19/target5:0:0/5:0:0:2/block/sdm (block)
UDEV [19173.386560] add /devices/platform/host3/session17/target3:0:0/3:0:0:7/block/sdx (block)
UDEV [19173.394515] add /devices/platform/host4/session18/target4:0:0/4:0:0:7/block/sdy (block)
UDEV [19173.410152] add /devices/platform/host5/session19/target5:0:0/5:0:0:1/block/sdk (block)
UDEV [19173.474286] add /devices/platform/host6/session20/target6:0:0/6:0:0:2/block/sdab (block)
UDEV [19173.508438] add /devices/platform/host5/session19/target5:0:0/5:0:0:3/block/sdp (block)
UDEV [19173.713146] add /devices/platform/host5/session19/target5:0:0/5:0:0:4/block/sds (block)
UDEV [19173.782065] add /devices/platform/host5/session19/target5:0:0/5:0:0:5/block/sdv (block)
UDEV [19173.787447] add /devices/platform/host5/session19/target5:0:0/5:0:0:6/block/sdaa (block)
UDEV [19173.803218] add /devices/platform/host6/session20/target6:0:0/6:0:0:3/block/sdad (block)
UDEV [19173.849411] add /devices/platform/host5/session19/target5:0:0/5:0:0:7/block/sdac (block)
UDEV [19173.918301] add /devices/platform/host6/session20/target6:0:0/6:0:0:5/block/sdaf (block)
UDEV [19173.941005] add /devices/platform/host6/session20/target6:0:0/6:0:0:4/block/sdae (block)
UDEV [19173.987206] add /devices/platform/host6/session20/target6:0:0/6:0:0:7/block/sdah (block)
UDEV [19173.992431] add /devices/platform/host6/session20/target6:0:0/6:0:0:6/block/sdag (block)
Or like this:
UDEV [20712.402631] remove /devices/platform/host3/session17/target3:0:0/3:0:0:0/block/sdc (block)
UDEV [20712.427716] remove /devices/platform/host6/session20/target6:0:0/6:0:0:0/block/sdw (block)
UDEV [20712.459854] remove /devices/platform/host4/session18/target4:0:0/4:0:0:0/block/sdd (block)
UDEV [20712.471124] remove /devices/platform/host5/session19/target5:0:0/5:0:0:0/block/sdh (block)
UDEV [20712.492190] remove /devices/platform/host6/session20/target6:0:0/6:0:0:1/block/sdz (block)
UDEV [20712.495245] remove /devices/platform/host4/session18/target4:0:0/4:0:0:1/block/sdg (block)
UDEV [20712.512007] remove /devices/platform/host3/session17/target3:0:0/3:0:0:1/block/sde (block)
UDEV [20712.522986] remove /devices/platform/host5/session19/target5:0:0/5:0:0:1/block/sdk (block)
UDEV [20712.528676] remove /devices/platform/host6/session20/target6:0:0/6:0:0:2/block/sdab (block)
UDEV [20712.529891] remove /devices/platform/host5/session19/target5:0:0/5:0:0:2/block/sdm (block)
UDEV [20712.536178] remove /devices/platform/host4/session18/target4:0:0/4:0:0:2/block/sdi (block)
UDEV [20712.545444] remove /devices/platform/host4/session18/target4:0:0/4:0:0:3/block/sdl (block)
UDEV [20712.548006] remove /devices/platform/host3/session17/target3:0:0/3:0:0:3/block/sdj (block)
UDEV [20712.551935] remove /devices/platform/host5/session19/target5:0:0/5:0:0:3/block/sdp (block)
UDEV [20712.555405] remove /devices/platform/host3/session17/target3:0:0/3:0:0:2/block/sdf (block)
UDEV [20712.556947] remove /devices/platform/host4/session18/target4:0:0/4:0:0:4/block/sdo (block)
UDEV [20712.563524] remove /devices/platform/host5/session19/target5:0:0/5:0:0:4/block/sds (block)
UDEV [20712.572948] remove /devices/platform/host6/session20/target6:0:0/6:0:0:4/block/sdae (block)
UDEV [20712.574738] remove /devices/platform/host6/session20/target6:0:0/6:0:0:3/block/sdad (block)
UDEV [20712.576736] remove /devices/platform/host4/session18/target4:0:0/4:0:0:5/block/sdr (block)
UDEV [20712.581343] remove /devices/platform/host3/session17/target3:0:0/3:0:0:4/block/sdn (block)
UDEV [20712.583883] remove /devices/platform/host3/session17/target3:0:0/3:0:0:5/block/sdq (block)
UDEV [20712.604498] remove /devices/platform/host6/session20/target6:0:0/6:0:0:5/block/sdaf (block)
UDEV [20712.605536] remove /devices/platform/host4/session18/target4:0:0/4:0:0:6/block/sdu (block)
UDEV [20712.605721] remove /devices/platform/host3/session17/target3:0:0/3:0:0:6/block/sdt (block)
UDEV [20712.606517] remove /devices/platform/host5/session19/target5:0:0/5:0:0:5/block/sdv (block)
UDEV [20712.610709] remove /devices/platform/host5/session19/target5:0:0/5:0:0:6/block/sdaa (block)
UDEV [20712.618187] remove /devices/platform/host4/session18/target4:0:0/4:0:0:7/block/sdy (block)
UDEV [20712.628520] remove /devices/platform/host6/session20/target6:0:0/6:0:0:6/block/sdag (block)
UDEV [20712.642216] remove /devices/platform/host5/session19/target5:0:0/5:0:0:7/block/sdac (block)
UDEV [20712.643796] remove /devices/platform/host3/session17/target3:0:0/3:0:0:7/block/sdx (block)
UDEV [20712.653786] remove /devices/platform/host6/session20/target6:0:0/6:0:0:7/block/sdah (block)
These scenarios are more realistic and more urgently requested to be solved.
Regards,
Tang
发件人: Martin Wilck <mwilck@xxxxxxxx>
收件人: tang.junhui@xxxxxxxxxx,
抄送: dm-devel@xxxxxxxxxx
日期: 2016/11/18 15:40
主题: Re: Re: [dm-devel] Improve processing efficiency for addition and deletion of multipath devices
Hi Tang,
On Fri, 2016-11-18 at 09:02 +0800, tang.junhui@xxxxxxxxxx wrote:
>
> we are more concerned
> about the more common situation like addition or deletion devices
> when
> iSCSI login/logout or FC link up/down with many iSCSI or FC links
> in
> each LUN. At this situation we may receive many uevents from
> different
> paths of the same LUN device, we want merge these uevents to one
> and
> process them together.
I'm not arguing against that. But consider what you'd do if you have to
process the series of uevents [ 1 "add sda", 2 "add sdb", 3 "del sda",
4 "add sdc", 5 "del sdb", 6 "add sda" ]. If you merge these, assuming
all belong to the same multipath map, what would be your action? I
would set up a map with sda and sdc, using the device properties from
event 4 and 6. That means that the rest of the events has been
"filtered" out. All else would mean repeated map loads for the same
multipath map, which is what we want to avoid. Agreed?
Regards,
Martin
--
Dr. Martin Wilck <mwilck@xxxxxxxx>, Tel. +49 (0)911 74053 2107
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
UDEV [19172.014482] add /devices/platform/host3/session17/target3:0:0/3:0:0:0/block/sdc (block)
UDEV [19172.249389] add /devices/platform/host4/session18/target4:0:0/4:0:0:0/block/sdd (block)
UDEV [19172.343791] add /devices/platform/host3/session17/target3:0:0/3:0:0:2/block/sdf (block)
UDEV [19172.364496] add /devices/platform/host5/session19/target5:0:0/5:0:0:0/block/sdh (block)
UDEV [19172.523794] add /devices/platform/host4/session18/target4:0:0/4:0:0:2/block/sdi (block)
UDEV [19172.621333] add /devices/platform/host3/session17/target3:0:0/3:0:0:4/block/sdn (block)
UDEV [19172.699473] add /devices/platform/host4/session18/target4:0:0/4:0:0:1/block/sdg (block)
UDEV [19172.704605] add /devices/platform/host3/session17/target3:0:0/3:0:0:1/block/sde (block)
UDEV [19172.709687] add /devices/platform/host3/session17/target3:0:0/3:0:0:3/block/sdj (block)
UDEV [19172.714919] add /devices/platform/host4/session18/target4:0:0/4:0:0:3/block/sdl (block)
UDEV [19172.728891] add /devices/platform/host4/session18/target4:0:0/4:0:0:4/block/sdo (block)
UDEV [19172.872156] add /devices/platform/host3/session17/target3:0:0/3:0:0:6/block/sdt (block)
UDEV [19172.915542] add /devices/platform/host4/session18/target4:0:0/4:0:0:6/block/sdu (block)
UDEV [19173.086935] add /devices/platform/host6/session20/target6:0:0/6:0:0:0/block/sdw (block)
UDEV [19173.108278] add /devices/platform/host6/session20/target6:0:0/6:0:0:1/block/sdz (block)
UDEV [19173.195153] add /devices/platform/host4/session18/target4:0:0/4:0:0:5/block/sdr (block)
UDEV [19173.228397] add /devices/platform/host3/session17/target3:0:0/3:0:0:5/block/sdq (block)
UDEV [19173.363632] add /devices/platform/host5/session19/target5:0:0/5:0:0:2/block/sdm (block)
UDEV [19173.386560] add /devices/platform/host3/session17/target3:0:0/3:0:0:7/block/sdx (block)
UDEV [19173.394515] add /devices/platform/host4/session18/target4:0:0/4:0:0:7/block/sdy (block)
UDEV [19173.410152] add /devices/platform/host5/session19/target5:0:0/5:0:0:1/block/sdk (block)
UDEV [19173.474286] add /devices/platform/host6/session20/target6:0:0/6:0:0:2/block/sdab (block)
UDEV [19173.508438] add /devices/platform/host5/session19/target5:0:0/5:0:0:3/block/sdp (block)
UDEV [19173.713146] add /devices/platform/host5/session19/target5:0:0/5:0:0:4/block/sds (block)
UDEV [19173.782065] add /devices/platform/host5/session19/target5:0:0/5:0:0:5/block/sdv (block)
UDEV [19173.787447] add /devices/platform/host5/session19/target5:0:0/5:0:0:6/block/sdaa (block)
UDEV [19173.803218] add /devices/platform/host6/session20/target6:0:0/6:0:0:3/block/sdad (block)
UDEV [19173.849411] add /devices/platform/host5/session19/target5:0:0/5:0:0:7/block/sdac (block)
UDEV [19173.918301] add /devices/platform/host6/session20/target6:0:0/6:0:0:5/block/sdaf (block)
UDEV [19173.941005] add /devices/platform/host6/session20/target6:0:0/6:0:0:4/block/sdae (block)
UDEV [19173.987206] add /devices/platform/host6/session20/target6:0:0/6:0:0:7/block/sdah (block)
UDEV [19173.992431] add /devices/platform/host6/session20/target6:0:0/6:0:0:6/block/sdag (block)
Or like this:
UDEV [20712.402631] remove /devices/platform/host3/session17/target3:0:0/3:0:0:0/block/sdc (block)
UDEV [20712.427716] remove /devices/platform/host6/session20/target6:0:0/6:0:0:0/block/sdw (block)
UDEV [20712.459854] remove /devices/platform/host4/session18/target4:0:0/4:0:0:0/block/sdd (block)
UDEV [20712.471124] remove /devices/platform/host5/session19/target5:0:0/5:0:0:0/block/sdh (block)
UDEV [20712.492190] remove /devices/platform/host6/session20/target6:0:0/6:0:0:1/block/sdz (block)
UDEV [20712.495245] remove /devices/platform/host4/session18/target4:0:0/4:0:0:1/block/sdg (block)
UDEV [20712.512007] remove /devices/platform/host3/session17/target3:0:0/3:0:0:1/block/sde (block)
UDEV [20712.522986] remove /devices/platform/host5/session19/target5:0:0/5:0:0:1/block/sdk (block)
UDEV [20712.528676] remove /devices/platform/host6/session20/target6:0:0/6:0:0:2/block/sdab (block)
UDEV [20712.529891] remove /devices/platform/host5/session19/target5:0:0/5:0:0:2/block/sdm (block)
UDEV [20712.536178] remove /devices/platform/host4/session18/target4:0:0/4:0:0:2/block/sdi (block)
UDEV [20712.545444] remove /devices/platform/host4/session18/target4:0:0/4:0:0:3/block/sdl (block)
UDEV [20712.548006] remove /devices/platform/host3/session17/target3:0:0/3:0:0:3/block/sdj (block)
UDEV [20712.551935] remove /devices/platform/host5/session19/target5:0:0/5:0:0:3/block/sdp (block)
UDEV [20712.555405] remove /devices/platform/host3/session17/target3:0:0/3:0:0:2/block/sdf (block)
UDEV [20712.556947] remove /devices/platform/host4/session18/target4:0:0/4:0:0:4/block/sdo (block)
UDEV [20712.563524] remove /devices/platform/host5/session19/target5:0:0/5:0:0:4/block/sds (block)
UDEV [20712.572948] remove /devices/platform/host6/session20/target6:0:0/6:0:0:4/block/sdae (block)
UDEV [20712.574738] remove /devices/platform/host6/session20/target6:0:0/6:0:0:3/block/sdad (block)
UDEV [20712.576736] remove /devices/platform/host4/session18/target4:0:0/4:0:0:5/block/sdr (block)
UDEV [20712.581343] remove /devices/platform/host3/session17/target3:0:0/3:0:0:4/block/sdn (block)
UDEV [20712.583883] remove /devices/platform/host3/session17/target3:0:0/3:0:0:5/block/sdq (block)
UDEV [20712.604498] remove /devices/platform/host6/session20/target6:0:0/6:0:0:5/block/sdaf (block)
UDEV [20712.605536] remove /devices/platform/host4/session18/target4:0:0/4:0:0:6/block/sdu (block)
UDEV [20712.605721] remove /devices/platform/host3/session17/target3:0:0/3:0:0:6/block/sdt (block)
UDEV [20712.606517] remove /devices/platform/host5/session19/target5:0:0/5:0:0:5/block/sdv (block)
UDEV [20712.610709] remove /devices/platform/host5/session19/target5:0:0/5:0:0:6/block/sdaa (block)
UDEV [20712.618187] remove /devices/platform/host4/session18/target4:0:0/4:0:0:7/block/sdy (block)
UDEV [20712.628520] remove /devices/platform/host6/session20/target6:0:0/6:0:0:6/block/sdag (block)
UDEV [20712.642216] remove /devices/platform/host5/session19/target5:0:0/5:0:0:7/block/sdac (block)
UDEV [20712.643796] remove /devices/platform/host3/session17/target3:0:0/3:0:0:7/block/sdx (block)
UDEV [20712.653786] remove /devices/platform/host6/session20/target6:0:0/6:0:0:7/block/sdah (block)
These scenarios are more realistic and more urgently requested to be solved.
Regards,
Tang
发件人: Martin Wilck <mwilck@xxxxxxxx>
收件人: tang.junhui@xxxxxxxxxx,
抄送: dm-devel@xxxxxxxxxx
日期: 2016/11/18 15:40
主题: Re: Re: [dm-devel] Improve processing efficiency for addition and deletion of multipath devices
Hi Tang,
On Fri, 2016-11-18 at 09:02 +0800, tang.junhui@xxxxxxxxxx wrote:
>
> we are more concerned
> about the more common situation like addition or deletion devices
> when
> iSCSI login/logout or FC link up/down with many iSCSI or FC links
> in
> each LUN. At this situation we may receive many uevents from
> different
> paths of the same LUN device, we want merge these uevents to one
> and
> process them together.
I'm not arguing against that. But consider what you'd do if you have to
process the series of uevents [ 1 "add sda", 2 "add sdb", 3 "del sda",
4 "add sdc", 5 "del sdb", 6 "add sda" ]. If you merge these, assuming
all belong to the same multipath map, what would be your action? I
would set up a map with sda and sdc, using the device properties from
event 4 and 6. That means that the rest of the events has been
"filtered" out. All else would mean repeated map loads for the same
multipath map, which is what we want to avoid. Agreed?
Regards,
Martin
--
Dr. Martin Wilck <mwilck@xxxxxxxx>, Tel. +49 (0)911 74053 2107
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
-- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel