Re: [PATCH v2 2/5] lib: Add support for max_kver to struct tst_test and tst_fs
Avinesh Kumar via ltp <[email protected]> Wed, 29 Jul 2026 22:19:04 +0200
| Newsgroups | gmane.linux.ltp |
|---|---|
| Message-ID | <[email protected]> |
On 7/29/26 3:36 PM, Petr Vorel wrote: > Hi Avinesh, > >> Hi Petr, > >> few comments below > Thanks! > >> On 7/29/26 11:57 AM, Petr Vorel wrote: >>> Signed-off-by: Petr Vorel <[email protected]> >>> --- >>> The same as v1. > >>> include/tst_test.h | 9 ++++++++- >>> lib/tst_test.c | 39 +++++++++++++++++++++++++++++++++++++++ >>> 2 files changed, 47 insertions(+), 1 deletion(-) > >>> diff --git a/include/tst_test.h b/include/tst_test.h >>> index c69362485e..0910660827 100644 >>> --- a/include/tst_test.h >>> +++ b/include/tst_test.h >>> @@ -280,6 +280,9 @@ struct tst_ulimit_val { >>> * >>> * @min_kver: A minimum kernel version supporting the filesystem which has been >>> * created with mkfs. >>> + * >>> + * @max_kver: A maximum kernel version supporting the filesystem which has been >>> + * created with mkfs. >>> */ >>> struct tst_fs { >>> const char *type; >>> @@ -292,6 +295,7 @@ struct tst_fs { >>> const void *mnt_data; >>> const char *min_kver; >>> + const char *max_kver; >>> }; >>> /** >>> @@ -301,7 +305,9 @@ struct tst_fs { >>> * and each time passed an increasing counter value. >>> * @options: An NULL optstr terminated array of struct tst_option. >>> * >>> - * @min_kver: A minimal kernel version the test can run on. e.g. "3.10". >>> + * @min_kver: A minimal kernel version the test can run on. e.g. "4.4". >> s/minimal/minimum > > You spotted more grammar errors so I trust you :). But can you please double > check that it'đ really correct? Minimal is an adjective, minimum is an adjective > but also a noun and an adverb. > > When googling I even found use of both in the same document :) > https://kubernetes.io/docs/reference/node/kernel-version-requirements/ > "have minimum kernel version requirements" > "minimal kernel version requirement" I see we are using minimal in many places already. I think both wordings are correct. Just that 'maximal kernel version' sounded a bit odd to me. So please ignore my comment here. > >>> + * >>> + * @max_kver: A maximal kernel version the test can run on. e.g. "7.2". >> s/maximal/maximum > dtto > >> Also, I assume test will *not be skipped* on kernel versions >> 7.1.1, 7.1.2 etc just with >> .max_kver="7.1" > > Good point, thanks => v3 (sigh). > > check_max_kver() needs to have this condition to take an account the sublevel. > > -if (tst_kvercmp(v1, v2, v3) > 0) { > +if (tst_kvercmp(v1, v2, v3) >= 1024) { > msg = "The test requires kernel %s or older"; And will this be fine with - .max_kver="7.1.5" on SUT with v7.2.0 ? sorry, haven't tested yet. > ... > > Sublevel can be above 255 since 4.4.256 > https://lwn.net/ml/linux-kernel/[email protected]/ > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9b82f13e7ef3 > > But it should be below 1024 (practically the highest sublevel has been 337). > > Kind regards, > Petr > >> maybe we should clarify. > >>> * >>> * @supported_archs: A NULL terminated array of architectures the test runs on >>> * e.g. {"x86_64, "x86", NULL}. Calls tst_is_on_arch() to >>> @@ -551,6 +557,7 @@ struct tst_fs { >>> struct tst_option *options; >>> const char *min_kver; >>> + const char *max_kver; >>> const char *const *supported_archs; >>> diff --git a/lib/tst_test.c b/lib/tst_test.c >>> index 778a1fed40..fa38b3a7a3 100644 >>> --- a/lib/tst_test.c >>> +++ b/lib/tst_test.c >>> @@ -1087,6 +1087,36 @@ static bool check_min_kver(const char *min_kver, const int brk_nosupp) >>> return true; >>> } >>> +/* >>> + * Check for the maximal required kernel version. >>> + * >>> + * return: true if the kernel version is low enough, false otherwise. > >> This sounds a bit confusing. How about- > >> Check the running kernel against the last version the test applies to. > > Makes sense. Based on check_min_kver(), which was renamed from check_kver() in > the previous commit. Could you have look on these as well. Anyway, if you have > time, having a look on docs wording as a separate effort would help. sure, I will see if I find something worth reporting. > >> return: true if the kernel is old enough, false otherwise. > > +1 > >>> + */ >>> +static bool check_max_kver(const char *max_kver, const int brk_nosupp) >>> +{ >>> + char *msg; >>> + int v1, v2, v3; >>> + >>> + if (tst_parse_kver(max_kver, &v1, &v2, &v3)) { >>> + tst_res(TWARN, >>> + "Invalid kernel version %s, expected %%d.%%d.%%d", >> I wouldn't say 'kernel version is invalid'. maybe test isn't >> supported/applicable on.. > > tst_parse_kver() returns 1 on error => this is really an error check. > Other thing is that the same error handling is on both places, but that's very > minor. sorry, my bad. I misunderstood this. Please ignore. > > Kind regards, > Petr > ... > >> Thanks, >> Avinesh -- Mailing list info: https://lists.linux.it/listinfo/ltp