[LTP] [PATCH] fanotify10: Calling drop_cache twice to ensure the inode is evicted
Jan Kara
jack@suse.cz
Wed Sep 4 11:07:21 CEST 2024
On Tue 03-09-24 16:08:07, Petr Vorel wrote:
> Hi all,
>
> > In this test case, some scenarios are designed to verify whether the
> > FANOTIFY_EVICTABLE flag takes effect: by verifying that information cannot
> > be obtained from the corresponding inode after drop_cache, as this flag
> > does not ping the inode.
>
> > However, drop_cache is only performed once here, which may result in the
> > inode not being released in NUMA scenarios. Suppose the inode is located
> > on NUMA0 and the dentry is located on NUMA1; the first drop_cache can only
> > ensure that the inode is added to the LRU list, but does not guarantee that
> > evict() can been called because dispose_list does not yet include this
> > inode when traversing NUMA0, which causes the testcase execution fail.
>
> I wonder if there can be some detection that inode is evicted.
> Or, can it happen that even 2x drop is not enough?
>
> > For the single-file scenario in this testcase, executing drop_cache twice
> > is necessary to ensure the inode is evicted, thus allowing the testcase to
> > pass.
>
> Acked-by: Petr Vorel <pvorel@suse.cz>
>
> @Amir, Jan, could you please have a look?
Yeah, as Amir wrote, I've ended up doing similar thing for fanotify23 so:
Reviewed-by: Jan Kara <jack@suse.cz>
Honza
> > Signed-off-by: Zizhi Wo <wozizhi@huawei.com>
> > ---
> > testcases/kernel/syscalls/fanotify/fanotify10.c | 2 ++
> > 1 file changed, 2 insertions(+)
>
> > diff --git a/testcases/kernel/syscalls/fanotify/fanotify10.c b/testcases/kernel/syscalls/fanotify/fanotify10.c
> > index c6d8ec922..42018de0d 100644
> > --- a/testcases/kernel/syscalls/fanotify/fanotify10.c
> > +++ b/testcases/kernel/syscalls/fanotify/fanotify10.c
> > @@ -515,6 +515,8 @@ static void drop_caches(void)
> > if (syncfs(fd_syncfs) < 0)
> > tst_brk(TBROK | TERRNO, "Unexpected error when syncing filesystem");
>
> > + /* Need to drop twice to ensure the inode is evicted. */
> > + SAFE_FILE_PRINTF(DROP_CACHES_FILE, "3");
> > SAFE_FILE_PRINTF(DROP_CACHES_FILE, "3");
> > }
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
More information about the ltp
mailing list