Message ID | 20240229115217.26543-1-mariusz.tkaczyk@linux.intel.com (mailing list archive) |
---|---|
Headers | show |
Series | Custom drives policies verification | expand |
On Thu, 29 Feb 2024 12:52:04 +0100 Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com> wrote: > validate_geometry_imsm() over the years became huge and complicated. > It is extremely hard to develop or optimize this code now. What the > most important, it doesn't address all scenarios. For example if > container contains disks under different controllers (spare container), > "autolayout" feature allows to create raid array. This code has a lot > of dependencies and it is almost impossible to add support of this > scenario without breaking something else. > > There is also get_disk_controller_domain() which in my understating is a > part of validate_geometry_imsm() functionality moved outside, fit ideally > to mdmonitor needs. > > Drive encryption determining will be added to IMSM soon. The encryption > status of the drive will be determined for every drive. There is no > simple way to add it. > > The solution added in this serie addresses those problems by making one > easily extendable api to analyze every disk separately, outside > validate_geometry(). > > First five patches are optimizations with no functional changes. New > functionality replaces get_disk_controller_domain(). It should also > cover some verifications done in validate_geometry_imsm() and > add_to_super_imsm() but to lower regression risk these parts are > not removed yet. > > Mariusz Tkaczyk (13): > mdadm: Add functions for spare criteria verification > mdadm: drop get_required_spare_criteria() > Manage: fix check after dereference issue > Manage: implement manage_add_external() > mdadm: introduce sysfs_get_container_devnm() > mdadm.h: Introduce custom device policies > mdadm: test_and_add device policies implementation > Create: Use device policies > Manage: check device policies in manage_add_external() > Monitor, Incremental: use device policies > imsm: test_and_add_device_policies() implementation > mdadm: drop get_disk_controller_domain() > Revert "policy.c: Avoid to take spare without defined domain by imsm" > > Create.c | 48 +++++++--- > Incremental.c | 77 ++++++++++----- > Manage.c | 195 +++++++++++++++++++++---------------- > Monitor.c | 50 ++-------- > mdadm.h | 90 +++++++++-------- > platform-intel.h | 1 - > policy.c | 110 +++++++++++++++++---- > super-intel.c | 245 ++++++++++++++++++++++++++++++++--------------- > sysfs.c | 23 +++++ > util.c | 117 ++++++++++++---------- > 10 files changed, 606 insertions(+), 350 deletions(-) > No comments.. Applied! Thanks, Mariusz