Re: [PATCH 4.9 00/67] 4.9.91-stable review

From: Dan Rue
Date: Wed Mar 28 2018 - 14:28:36 EST


On Wed, Mar 28, 2018 at 06:21:04PM +0200, Greg Kroah-Hartman wrote:
> On Wed, Mar 28, 2018 at 10:50:35AM -0500, Dan Rue wrote:
> > On Wed, Mar 28, 2018 at 10:21:45AM +0200, Greg Kroah-Hartman wrote:
> > > On Tue, Mar 27, 2018 at 08:35:01PM -0500, Dan Rue wrote:
> > > > qemu_x86_64
> > > > * boot - pass: 21
> > > > * kselftest - skip: 28, pass: 52
> > >
> > > Do you have a list of what you are skipping anywhere? There was some
> > > x86 changes that I had to backport that I was worried about getting
> > > right here, are you running the x86 kselftests?
> >
> > Yes we run the x86 selftests. Here's the full list of what ran and what was
> > skipped. Remember (I know you know, but for anyone else observing), we
> > run kselftest from 4.15.
>
> That's good, as kselftest from 4.9 was a bit broken for x86, which is
> why I backported a bunch of patches for it for this release :)

I've noticed these backports. Should we expect to see selftests
supported in LTS kernels going forward? What is the current policy on
taking selftest backports?

>
> > breakpoint_test â SKIP
> > efivarfs.sh â SKIP
> > fsgsbase_64 â SKIP
> > ftracetest â SKIP
> > fw_fallback.sh â SKIP
> > fw_filesystem.sh â SKIP
> > gpio-mockup.sh â SKIP
> > ldt_gdt_64 â SKIP
> > main.sh â SKIP
> > mem-on-off-test.sh â SKIP
> > pstore_tests â SKIP
> > reuseport_bpf â SKIP
> > run.sh â SKIP
> > run_vmtests â SKIP
> > seccomp_bpf â SKIP
> > sigreturn_64 â SKIP
> > step_after_suspend_test â SKIP
> > sync_test â SKIP
> > sysctl.sh â SKIP
> > test_align â SKIP
> > test_dev_cgroup â SKIP
> > test_kmod.sh â SKIP
> > test_lpm_map â SKIP
> > test_lru_map â SKIP
> > test_maps â SKIP
> > test_progs â SKIP
> > test_tag â SKIP
> > test_verifier â SKIP
>
> Figuring out of any of these are from the tools/testing/selftests/x86/
> directory is a pain, that is the tests I was referring to here...

Agree. It would be nice if we preserved the directory name - I had the
same issue when trying to answer your question.

>
> That being said, why are you skipping so many? ldt_gdt_64 should be
> run, what fails with it? Same for sigreturn_64, which I think means
> that only 2 tests from the x86 directory are being skipped, right?
>
> Have you gone back and looked at any of those other tests to see why
> they are being skipped?

I'll try to keep this short - the tl;dr is that it's historical, and
something we're fixing now.

Originally, we just skipped everything that failed so that we could
focus on regressions. As new things failed, we have investigated them
and reported them upstream or fixed with patches. Over time, many of
these original failures have been resolved but the skipfiles may not
have been updated because...

Our skipfiles are per-branch and per-board, and we used to have one file
for each combination, resulting in dozens of files that ended up with
inconsistencies between them over time. So, we converted it to a
structured data format that is then parsed at runtime to generate a
skipfile for a given board/branch combination.

That work was just completed a couple weeks ago. Now that our kselftest
skipfile is a single structured data file[1], we need to go through it
and resolve all of the inconsistencies, remove the skips that have long
since been resolved, etc. This is work we plan to do in the next couple
weeks.

If you look through that file, you'll see quite a few things that are
wrong. When we're done auditing it, each skip should have a coherent
"reason" for skipping and an accurate branch/board list.

With regard to the specific tests you asked about:
- ldt_gdt_64: As of 4.9.89 this is still failing. I'll test again with
the new RC.
- sigreturn_64: Passing on x86_64 (real hardware) and getting skipped on
qemu x86_64. For some reason it fails intermittently on qemu in our
environment.

Hope that helps,
Dan

[1] https://git.linaro.org/qa/test-definitions.git/tree/automated/linux/kselftest/skipfile-lkft.yaml