Message ID | 20240520124005.57978-1-pvorel@suse.cz |
---|---|
State | Changes Requested |
Headers | show |
Series | [1/1] libswap: Fix tst_max_swapfiles() for SLE12-SP5 | expand |
Hi all, > SLE12-SP4 backported 5042db43cc26. It's now EOL, but SLE12-SP5 is still > supported, thus fix tst_max_swapfiles() detection. FYI this fixes swapon03 on SLE12-SP5. Kind regards, Petr
Hi! > SLE12-SP4 backported 5042db43cc26. It's now EOL, but SLE12-SP5 is still > supported, thus fix tst_max_swapfiles() detection. > > While at it, fix whitespace. > > Signed-off-by: Petr Vorel <pvorel@suse.cz> > --- > NOTE: this should get merged before release. > > I can split whitelist change into a separate commit. Yes please. > libs/libltpswap/libswap.c | 22 +++++++++++++++------- > 1 file changed, 15 insertions(+), 7 deletions(-) > > diff --git a/libs/libltpswap/libswap.c b/libs/libltpswap/libswap.c > index eb066df71..6c21ac8af 100644 > --- a/libs/libltpswap/libswap.c > +++ b/libs/libltpswap/libswap.c > @@ -243,24 +243,31 @@ bool is_swap_supported(const char *filename) > */ > int tst_max_swapfiles(void) > { > - unsigned int swp_migration_num = 0, swp_hwpoison_num = 0, swp_device_num = 0, swp_pte_marker_num = 0; > + unsigned int swp_migration_num = 0, swp_hwpoison_num = 0, > + swp_device_num = 0, swp_pte_marker_num = 0; > struct tst_kconfig_var migration = TST_KCONFIG_INIT("CONFIG_MIGRATION"); > struct tst_kconfig_var memory = TST_KCONFIG_INIT("CONFIG_MEMORY_FAILURE"); > struct tst_kconfig_var device = TST_KCONFIG_INIT("CONFIG_DEVICE_PRIVATE"); > struct tst_kconfig_var marker = TST_KCONFIG_INIT("CONFIG_PTE_MARKER"); > - struct tst_kern_exv kvers[] = { > + struct tst_kern_exv kvers_marker_migration[] = { > /* RHEL9 kernel has patch 6c287605f and 679d10331 since 5.14.0-179 */ > { "RHEL9", "5.14.0-179" }, > { NULL, NULL}, > }; > > + struct tst_kern_exv kvers_device[] = { > + /* SLES12-SP4 has patch 5042db43cc26 since 4.12.14-5.5 */ > + { "SLES", "4.12.14-5.5" }, > + { NULL, NULL}, > + }; > + > tst_kconfig_read(&migration, 1); > tst_kconfig_read(&memory, 1); > tst_kconfig_read(&device, 1); > tst_kconfig_read(&marker, 1); > > if (migration.choice == 'y') { > - if (tst_kvercmp2(5, 19, 0, kvers) < 0) > + if (tst_kvercmp2(5, 19, 0, kvers_marker_migration) < 0) > swp_migration_num = 2; > else > swp_migration_num = 3; > @@ -270,18 +277,19 @@ int tst_max_swapfiles(void) > swp_hwpoison_num = 1; > > if (device.choice == 'y') { > - if (tst_kvercmp(4, 14, 0) >= 0) > + if (tst_kvercmp2(4, 14, 0, kvers_device) >= 0) > swp_device_num = 2; > if (tst_kvercmp(5, 14, 0) >= 0) > swp_device_num = 4; > } > > - if ((marker.choice == 'y' && tst_kvercmp2(5, 19, 0, kvers) >= 0) || > - tst_kvercmp(6, 2, 0) >= 0) { > + if ((marker.choice == 'y' && tst_kvercmp(6, 2, 0) >= 0) || > + tst_kvercmp2(5, 19, 0, kvers_marker_migration) >= 0) { The 5.19 and 6.2 seems to be swapped after the patch, that does not look right. > swp_pte_marker_num = 1; > } > > - return DEFAULT_MAX_SWAPFILE - swp_migration_num - swp_hwpoison_num - swp_device_num - swp_pte_marker_num; > + return DEFAULT_MAX_SWAPFILE - swp_migration_num - swp_hwpoison_num > + - swp_device_num - swp_pte_marker_num; > } > > /* > -- > 2.43.0 >
diff --git a/libs/libltpswap/libswap.c b/libs/libltpswap/libswap.c index eb066df71..6c21ac8af 100644 --- a/libs/libltpswap/libswap.c +++ b/libs/libltpswap/libswap.c @@ -243,24 +243,31 @@ bool is_swap_supported(const char *filename) */ int tst_max_swapfiles(void) { - unsigned int swp_migration_num = 0, swp_hwpoison_num = 0, swp_device_num = 0, swp_pte_marker_num = 0; + unsigned int swp_migration_num = 0, swp_hwpoison_num = 0, + swp_device_num = 0, swp_pte_marker_num = 0; struct tst_kconfig_var migration = TST_KCONFIG_INIT("CONFIG_MIGRATION"); struct tst_kconfig_var memory = TST_KCONFIG_INIT("CONFIG_MEMORY_FAILURE"); struct tst_kconfig_var device = TST_KCONFIG_INIT("CONFIG_DEVICE_PRIVATE"); struct tst_kconfig_var marker = TST_KCONFIG_INIT("CONFIG_PTE_MARKER"); - struct tst_kern_exv kvers[] = { + struct tst_kern_exv kvers_marker_migration[] = { /* RHEL9 kernel has patch 6c287605f and 679d10331 since 5.14.0-179 */ { "RHEL9", "5.14.0-179" }, { NULL, NULL}, }; + struct tst_kern_exv kvers_device[] = { + /* SLES12-SP4 has patch 5042db43cc26 since 4.12.14-5.5 */ + { "SLES", "4.12.14-5.5" }, + { NULL, NULL}, + }; + tst_kconfig_read(&migration, 1); tst_kconfig_read(&memory, 1); tst_kconfig_read(&device, 1); tst_kconfig_read(&marker, 1); if (migration.choice == 'y') { - if (tst_kvercmp2(5, 19, 0, kvers) < 0) + if (tst_kvercmp2(5, 19, 0, kvers_marker_migration) < 0) swp_migration_num = 2; else swp_migration_num = 3; @@ -270,18 +277,19 @@ int tst_max_swapfiles(void) swp_hwpoison_num = 1; if (device.choice == 'y') { - if (tst_kvercmp(4, 14, 0) >= 0) + if (tst_kvercmp2(4, 14, 0, kvers_device) >= 0) swp_device_num = 2; if (tst_kvercmp(5, 14, 0) >= 0) swp_device_num = 4; } - if ((marker.choice == 'y' && tst_kvercmp2(5, 19, 0, kvers) >= 0) || - tst_kvercmp(6, 2, 0) >= 0) { + if ((marker.choice == 'y' && tst_kvercmp(6, 2, 0) >= 0) || + tst_kvercmp2(5, 19, 0, kvers_marker_migration) >= 0) { swp_pte_marker_num = 1; } - return DEFAULT_MAX_SWAPFILE - swp_migration_num - swp_hwpoison_num - swp_device_num - swp_pte_marker_num; + return DEFAULT_MAX_SWAPFILE - swp_migration_num - swp_hwpoison_num + - swp_device_num - swp_pte_marker_num; } /*
SLE12-SP4 backported 5042db43cc26. It's now EOL, but SLE12-SP5 is still supported, thus fix tst_max_swapfiles() detection. While at it, fix whitespace. Signed-off-by: Petr Vorel <pvorel@suse.cz> --- NOTE: this should get merged before release. I can split whitelist change into a separate commit. libs/libltpswap/libswap.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-)