[LTP] LTP pre-release testing and freeze

Cyril Hrubis chrubis@suse.cz
Thu Apr 28 14:26:25 CEST 2016


Hi!
> Looks good from my side. I ran the usual set we use as smoke test
> (syscalls, selection of mem/io/etc.) on
>   RHEL6.2 through RHEL6.8 (i386, x86_64, ppc64, s390x)
>   RHEL7.0 through RHEL7.2 (x86_64, ppc64, ppc64le, s390x, aarch64)
> and ran mostly into known bugs in kernel / glibc.
> 
> Other than known issues, there were couple failures to note:
> 
> epoll_wait02
> There is a tolerance, but it goes only one way (oversleep).
> I occasionally see it waking up a ms earlier and then testcase
> reports it as failure. This was new addition, so there are
> no historical data for comparison.

That may be bug, since AFAIC all POSIX timers are not allowed to wake up
earlier. The epoll_wait() is Linux specific, but the manual talks only
about possible overrun as well.

> personality01
> PER_LINUX32 is masked on powerpc as PER_LINUX, so this
> always fails.
> 
> arch/powerpc/kernel/syscalls.c:
> long ppc64_personality(unsigned long personality)
> {
>         long ret;
> 
>         if (personality(current->personality) == PER_LINUX32
>             && personality(personality) == PER_LINUX)
>                 personality = (personality & ~PER_MASK) | PER_LINUX32;
>         ret = sys_personality(personality);
>         if (personality(ret) == PER_LINUX32)
>                 ret = (ret & ~PER_MASK) | PER_LINUX;
>         return ret;
> }

So the fist if () makes sure that process cannot excape PER_LINUX32
while the second hides PER_LINUX32 completly. I've missed the second
part when I was rewriting the testcase. Looking at kernel sources
sparc64 and s390 seems to do the same but the code assumes that
PER_LINUX == 0.

SYSCALL_DEFINE1(s390_personality, unsigned int, personality)
{
        unsigned int ret;

        if (personality(current->personality) == PER_LINUX32 &&
            personality(personality) == PER_LINUX)
                personality |= PER_LINUX32;
        ret = sys_personality(personality);
        if (personality(ret) == PER_LINUX32)
                ret &= ~PER_LINUX32;

        return ret;
}

Does the test fail on s390x as well?

It seems that mapping PER_LINUX32 to PER_LINUX is a common practice on
64 bit, maybe we should just skip that personality on anything than
x86_64.




I'm currently working on few more fixes:

* The umount2() tests still fails with EBUSY rarely,
  I will have to fix the TEST(umount2()) to retry on
  EBUSY as well

* Another diotest fix for Btrfs

And I would like to get the isofs fix I've send to the list in before
the release as well. Can you please have a look at that one?

Apart from these, the rest looks fine.

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list