----- Original Message -----
> From: "Francesco RUNDO" <[email protected]>
> To: "Jan Stancek" <[email protected]>
> Cc: [email protected], [email protected]
> Sent: Friday, 21 February, 2014 11:25:03 AM
> Subject: RE: [LTP] [PATCH] madvise/madvise03.c: Changed test exit code
> 
> 
> >>Why should this case be unsupported when addr1 is backed by shared memory?
> >>  TEST(madvise(addr1, 4096, MADV_REMOVE));
> 
> The reported scenario MADV_REMOVE is managed -at kernel side- by
> madvise_remove() function on KERNEL_ROOT/mm/madvice.c.
> From this file I got (mm/madvice.c):
> 
> ==
> static long madvise_remove(struct vm_area_struct *vma,
>                               struct vm_area_struct **prev,
>                               unsigned long start, unsigned long end)
> {
> [snip]
> error = do_fallocate(f, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE,
>                       offset, end - start);
> [snip]
> }
> ==
> 
> Now, "do_fallocate()" needs fallocate() op. but on ext3 this is not supported
> i.e. ENOTSUP.

This is the "unexpected part" for me. What I expect and get on x86_64
with 3.10 based kernel is call to shmem_fallocate():

madvise(start=0x7fcff6d66000 len_in=0x1000 behavior=0x9)
Call Trace:
 0xffffffff81150130 : shmem_fallocate+0x0/0x300 [kernel]
 0xffffffff8122d056 : shm_fallocate+0x26/0x40 [kernel]
 0xffffffff811a0089 : do_fallocate+0xf9/0x190 [kernel]
 0xffffffff8115ac95 : SyS_madvise+0x355/0x7a0 [kernel]
 0xffffffff815d05d9 : system_call_fastpath+0x16/0x1b [kernel]

Do you have possibility to run original testcase with strace?
# strace ./madvise03 2>&1 | grep -v abcdefghijklmnopqrstuvwxyz12345

Regards,
Jan

> This is the reason for which I consider this scenario as not supported and
> not ENOSYS as the system call is supported as the remaining scenarios worked
> fine (MADV_DONTFORK and MADV_DOFORK).
> 
> Regards
> FR
> > 
> > Regards,
> > FR
> > 
> > >>Regards,
> > >>Jan
> > 
> > 
> > > 
> > > 
> > > Regards,
> > > FR
> > > 
> > > -----Original Message-----
> > > From: Wanlong Gao [mailto:[email protected]]
> > > Sent: Friday, February 21, 2014 9:02 AM
> > > To: Francesco RUNDO
> > > Cc: [email protected]
> > > Subject: Re: [LTP] [PATCH] madvise/madvise03.c: Changed test exit
> > > code
> > > 
> > > On 02/21/2014 03:51 PM, Francesco RUNDO wrote:
> > > > Changed exit code from TFAIL to TCONF  in case of unsupported syscall.
> > > > The "madvise" syscall needs kernel support as well as fs support
> > > > as -for specific advice- it requires specific filesystem
> > > > operations such as fallocate().
> > > 
> > > Could you paste the running log on not supported system?
> > > 
> > > Thanks,
> > > Wanlong Gao
> > > 
> > > > So, if kernel support is missed or fs doesn't provide specific
> > > > operation needed for such "advice" scenario of that syscall, the
> > > > right exit code (according to LTP defs) is not TFAIL as it is not
> > > > a failure but it is TCONF as the syscall is unsupported.
> > > > 
> > > > Signed-off-by: Francesco Rundo <[email protected]>
> > > > ---
> > > >  testcases/kernel/syscalls/madvise/madvise03.c |   17 +++++++++++++----
> > > >  1 files changed, 13 insertions(+), 4 deletions(-)
> > > > 
> > > > diff --git a/testcases/kernel/syscalls/madvise/madvise03.c
> > > > b/testcases/kernel/syscalls/madvise/madvise03.c
> > > > index b0c17e8..23dd9a6 100644
> > > > --- a/testcases/kernel/syscalls/madvise/madvise03.c
> > > > +++ b/testcases/kernel/syscalls/madvise/madvise03.c
> > > > @@ -160,10 +160,19 @@ static void cleanup(void)  static void
> > > > check_and_print(char *advice)  {
> > > >         if (TEST_RETURN == -1) {
> > > > -               tst_resm(TFAIL,
> > > > -                        "madvise test for %s failed with "
> > > > -                        "return = %ld, errno = %d : %s",
> > > > -                        advice, TEST_RETURN, TEST_ERRNO, 
> > > > strerror(TEST_ERRNO));
> > > > +               if (TEST_ERRNO != ENOTSUP) {
> > > > +                       tst_resm(TFAIL,
> > > > +                                "madvise test for %s failed with "
> > > > +                                "return = %ld, errno = %d : %s",
> > > > +                                advice, TEST_RETURN, TEST_ERRNO,
> > > > +                                strerror(TEST_ERRNO));
> > > > +               } else {
> > > > +                       tst_resm(TCONF,
> > > > +                               "madvise test for %s unsupported "
> > > > +                               "return = %ld, errno = %d : %s",
> > > > +                               advice, TEST_RETURN, TEST_ERRNO,
> > > > +                               strerror(TEST_ERRNO));
> > > > +               }
> > > >         } else if (STD_FUNCTIONAL_TEST) {
> > > >                 tst_resm(TPASS, "madvise test for %s PASSED", advice);
> > > >         }
> > > > 
> > > 
> > > 
> > > --------------------------------------------------------------------
> > > --
> > > -------- Managing the Performance of Cloud-Based Applications Take
> > > advantage of what the Cloud has to offer - Avoid Common Pitfalls.
> > > Read the Whitepaper.
> > > http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.
> > > clktrk _______________________________________________
> > > Ltp-list mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/ltp-list
> > > 
> > 
> 

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to