Re: 4.19: udpgso_bench_tx: setsockopt zerocopy: Unknown error 524

From: Willem de Bruijn
Date: Tue Jun 18 2019 - 12:43:15 EST


On Tue, Jun 18, 2019 at 12:10 PM Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Tue, Jun 18, 2019 at 08:31:16AM -0400, Willem de Bruijn wrote:
> > On Tue, Jun 18, 2019 at 7:27 AM Naresh Kamboju
> > <naresh.kamboju@xxxxxxxxxx> wrote:
> > >
> > > selftests: net: udpgso_bench.sh failed on 4.19, 4.14, 4.9 and 4.4 branches.
> > > PASS on stable branch 5.1, mainline and next.
> > > This failure is started happening on 4.19 and older kernel branches after
> > > kselftest upgrade to version 5.1
> >
> > Does version 5.1 here mean running tests from Linux 5.1, against older kernels?
> >
> > > Is there any possibilities to backport ?
> > >
> > > Error:
> > > udpgso_bench_tx: setsockopt zerocopy: Unknown error 524
> >
> > MSG_ZEROCOPY for UDP was added in commit b5947e5d1e71 ("udp:
> > msg_zerocopy") in Linux 5.0.
> >
> > The selftest was expanded with this feature in commit db63e489c7aa
> > ("selftests: extend zerocopy tests to udp"), also in Linux 5.0.
> >
> > Those tests are not expected to pass on older kernels.
>
> Any way to degrade gracefully if the feature is not present at all in
> the kernel under test? People run the latest version of kselftests on
> older kernels all the time.

We add new tests along with new features and bug fixes all the time.
All of those will fail on older kernels, as expected.

I'm honestly surprised to hear that we run newer tests against older
kernels. Is the idea to validate fixes in stable branches? If so,
should we instead backport the relevant tests to those stable
branches? Only the tests that verify fixes, leaving out those for new
features, of course.

Specific to the above test, I can add a check command testing
setsockopt SO_ZEROCOPY return value. AFAIK kselftest has no explicit
way to denote "skipped", so this would just return "pass". Sounds a
bit fragile, passing success when a feature is absent.