Message ID | 20230808124347.79163-1-ayush.jain3@amd.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | selftests/mm: FOLL_LONGTERM need to be updated to 0x100 | expand |
On 8/8/23 05:43, Ayush Jain wrote: ... > diff --git a/tools/testing/selftests/mm/hmm-tests.c b/tools/testing/selftests/mm/hmm-tests.c > index 4adaad1b822f..20294553a5dd 100644 > --- a/tools/testing/selftests/mm/hmm-tests.c > +++ b/tools/testing/selftests/mm/hmm-tests.c > @@ -57,9 +57,14 @@ enum { > > #define ALIGN(x, a) (((x) + (a - 1)) & (~((a) - 1))) > /* Just the flags we need, copied from mm.h: */ > + > +#ifndef FOLL_WRITE > #define FOLL_WRITE 0x01 /* check pte is writable */ > -#define FOLL_LONGTERM 0x10000 /* mapping lifetime is indefinite */ > +#endif > > +#ifndef FOLL_LONGTERM > +#define FOLL_LONGTERM 0x100 /* mapping lifetime is indefinite */ > +#endif > FIXTURE(hmm) > { > int fd; Yes, it's unfortunate that this selftest framework prevents easily including those FOLL_* flags directly. Anyway, thanks for fixing this, Reviewed-by: John Hubbard <jhubbard@nvidia.com> thanks,
On 08.08.23 14:43, Ayush Jain wrote: > After commit 2c2241081f7d ("mm/gup: move private gup FOLL_ flags to internal.h") > FOLL_LONGTERM flag value got updated from 0x10000 to 0x100 at > include/linux/mm_types.h. > As hmm.hmm_device_private.hmm_gup_test uses FOLL_LONGTERM > Updating same here as well. > > Before this change test goes in an infinite assert loop in > hmm.hmm_device_private.hmm_gup_test > ========================================================== > RUN hmm.hmm_device_private.hmm_gup_test ... > hmm-tests.c:1962:hmm_gup_test:Expected HMM_DMIRROR_PROT_WRITE.. > ..(2) == m[2] (34) > hmm-tests.c:157:hmm_gup_test:Expected ret (-1) == 0 (0) > hmm-tests.c:157:hmm_gup_test:Expected ret (-1) == 0 (0) > ... > ========================================================== > > Call Trace: > <TASK> > ? sched_clock+0xd/0x20 > ? __lock_acquire.constprop.0+0x120/0x6c0 > ? ktime_get+0x2c/0xd0 > ? sched_clock+0xd/0x20 > ? local_clock+0x12/0xd0 > ? lock_release+0x26e/0x3b0 > pin_user_pages_fast+0x4c/0x70 > gup_test_ioctl+0x4ff/0xbb0 > ? gup_test_ioctl+0x68c/0xbb0 > __x64_sys_ioctl+0x99/0xd0 > do_syscall_64+0x60/0x90 > ? syscall_exit_to_user_mode+0x2a/0x50 > ? do_syscall_64+0x6d/0x90 > ? syscall_exit_to_user_mode+0x2a/0x50 > ? do_syscall_64+0x6d/0x90 > ? irqentry_exit_to_user_mode+0xd/0x20 > ? irqentry_exit+0x3f/0x50 > ? exc_page_fault+0x96/0x200 > entry_SYSCALL_64_after_hwframe+0x72/0xdc > RIP: 0033:0x7f6aaa31aaff > > After this change test is able to pass successfully. > > Signed-off-by: Ayush Jain <ayush.jain3@amd.com> > Reviewed-by: Raghavendra K T <raghavendra.kt@amd.com> > --- > tools/testing/selftests/mm/hmm-tests.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/mm/hmm-tests.c b/tools/testing/selftests/mm/hmm-tests.c > index 4adaad1b822f..20294553a5dd 100644 > --- a/tools/testing/selftests/mm/hmm-tests.c > +++ b/tools/testing/selftests/mm/hmm-tests.c > @@ -57,9 +57,14 @@ enum { > > #define ALIGN(x, a) (((x) + (a - 1)) & (~((a) - 1))) > /* Just the flags we need, copied from mm.h: */ > + > +#ifndef FOLL_WRITE > #define FOLL_WRITE 0x01 /* check pte is writable */ > -#define FOLL_LONGTERM 0x10000 /* mapping lifetime is indefinite */ > +#endif > > +#ifndef FOLL_LONGTERM > +#define FOLL_LONGTERM 0x100 /* mapping lifetime is indefinite */ > +#endif > FIXTURE(hmm) > { > int fd; Kind of suboptimal that we are passing in FOLL_ flags. mm/gup_test.c should just have provided an abstraction for that. Acked-by: David Hildenbrand <david@redhat.com>
diff --git a/tools/testing/selftests/mm/hmm-tests.c b/tools/testing/selftests/mm/hmm-tests.c index 4adaad1b822f..20294553a5dd 100644 --- a/tools/testing/selftests/mm/hmm-tests.c +++ b/tools/testing/selftests/mm/hmm-tests.c @@ -57,9 +57,14 @@ enum { #define ALIGN(x, a) (((x) + (a - 1)) & (~((a) - 1))) /* Just the flags we need, copied from mm.h: */ + +#ifndef FOLL_WRITE #define FOLL_WRITE 0x01 /* check pte is writable */ -#define FOLL_LONGTERM 0x10000 /* mapping lifetime is indefinite */ +#endif +#ifndef FOLL_LONGTERM +#define FOLL_LONGTERM 0x100 /* mapping lifetime is indefinite */ +#endif FIXTURE(hmm) { int fd;