Re: [LTP] [PATCH v1] mem: disable KSM smart scan for ksm tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Wed, Nov 29, 2023 at 12:51 AM Petr Vorel <pvorel@xxxxxxx> wrote:
Hi Stefan, Li,

> Hi Stefan, Petr,

> On Tue, Nov 28, 2023 at 3:46 PM Petr Vorel <pvorel@xxxxxxx> wrote:

> > Hi Stefan,

> > > This disables the "smart scan" KSM feature to make sure that the volatile
> > > count remains at 0.

> > > Signed-off-by: Stefan Roesch <devkernel.io>
> > nit: you forgot 'shr@'
> > Signed-off-by: Stefan Roesch <shr@xxxxxxxxxxxx>

> > > Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
> > > Closes:
> > https://lore.kernel.org/oe-lkp/202311161132.13d8ce5a-oliver.sang@xxxxxxxxx
> > > ---
> > >  testcases/kernel/mem/lib/mem.c | 4 ++++
> > >  1 file changed, 4 insertions(+)

> > > diff --git a/testcases/kernel/mem/lib/mem.c
> > b/testcases/kernel/mem/lib/mem.c
> > > index fbfeef026..ef274a3ac 100644
> > > --- a/testcases/kernel/mem/lib/mem.c
> > > +++ b/testcases/kernel/mem/lib/mem.c
> > > @@ -454,6 +454,9 @@ void create_same_memory(int size, int num, int unit)
> > >              {'a', size*MB}, {'a', size*MB}, {'d', size*MB}, {'d',
> > size*MB},
> > >       };

> > > +  /* Disable smart scan for correct volatile counts. */
> > > +  SAFE_FILE_PRINTF(PATH_KSM "smart_scan", "0");
> > NOTE, this fails on the systems without /sys/kernel/mm/ksm/smart_scan:

> > mem.c:458: TBROK: Failed to open FILE '/sys/kernel/mm/ksm/smart_scan' for
> > writing: EACCES (13)

> > NOTE, we normally handle the setup like this in test setup function.

> > But new API has .save_restore which is more robust for tasks  like this.
> > It's already used in ksm01.c, you need just to add this line:
> >         {"/sys/kernel/mm/ksm/smart_scan", "0", TST_SR_SKIP},


> I guess we need to set 'TST_SR_SKIP_MISSING | TST_SR_TBROK_RO'
> as the last field. Because TST_SR_SKIP will continue the test without
> writing '0' to the smart_scan file, that's not correct if the file exists.
> It will
> ignore a kernel bug (smart_scan can't be written) by that config.

> Per the Doc Petr pointed below:
>   TST_SR_SKIP_MISSING – Continue without saving the file if it does not
> exist
>   TST_SR_TBROK_RO – End test with TBROK if the file is read-only
>   TST_SR_SKIP_RO – Continue without saving the file if it is read-only
>   TST_SR_SKIP – Equivalent to 'TST_SR_SKIP_MISSING | TST_SR_SKIP_RO'



> > (instead of both SAFE_FILE_PRINTF)

> > See:

> > https://github.com/linux-test-project/ltp/wiki/C-Test-API#127-saving--restoring-procsys-values

> > I wonder if ksm01.c is the only ksm test which needs to disable this.


> I think all of the ksm0*.c tests should disable it by the config. The
> smart_scan
> will impact all the tests with invoke key function create_same_memory().

ksm05.c and ksm06.c does not use create_same_memory(). Or did I overlook
something?

Good catch, I looked into these tests, seems only ksm05 is debatable
for disabling smart_scan, as a simple regression, it suggests disabling
ksm daemon to avoid disturb according to some workload.

ksm06 is definitely need disable smart_scan, it tests KSM in different
'run' state for merge_accros_nodes.

To be on the safe side, I would suggest applying the patch to all ksm* tests,
and write a new single for smart_scan if needed.


--
Regards,
Li Wang

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux