* Re: [PATCH bpf] libbpf: fix missing __WORDSIZE definition
From: Arnaldo Carvalho de Melo @ 2019-07-19 18:14 UTC (permalink / raw)
To: Andrii Nakryiko
Cc: Arnaldo Carvalho de Melo, Andrii Nakryiko, bpf, Networking,
Daniel Borkmann, Alexei Starovoitov, Kernel Team, Jiri Olsa,
Namhyung Kim
In-Reply-To: <CAEf4BzaKDTnqe4QYebNSoCLfhcUJbhzgXC5sG+y+c4JLc9PFqg@mail.gmail.com>
Em Fri, Jul 19, 2019 at 10:54:44AM -0700, Andrii Nakryiko escreveu:
> On Thu, Jul 18, 2019 at 6:16 PM Arnaldo Carvalho de Melo
> <arnaldo.melo@gmail.com> wrote:
> >
> > Em Thu, Jul 18, 2019 at 02:16:29PM -0700, Andrii Nakryiko escreveu:
> > > On Thu, Jul 18, 2019 at 12:14 PM Arnaldo Carvalho de Melo
> > > <arnaldo.melo@gmail.com> wrote:
> > > >
> > > > Em Thu, Jul 18, 2019 at 03:56:19PM -0300, Arnaldo Carvalho de Melo escreveu:
> > > > > I'll stop and replace my patch with yours to see if it survives all the
> > > > > test builds...
> > > >
> > > > So, Alpine:3.4, the first image for this distro I did when I started
> > > > these builds, survives the 6 builds with gcc and clang with your patch:
> > > >
> > > >
> > > > [perfbuilder@quaco linux-perf-tools-build]$ export PERF_TARBALL=http://192.168.124.1/perf/perf-5.2.0.tar.xz
> > > > [perfbuilder@quaco linux-perf-tools-build]$ dm
> > > > 1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0, clang version 3.8.0 (tags/RELEASE_380/final)
> > > >
> > > >
> > > > [perfbuilder@quaco linux-perf-tools-build]$ grep "+ make" dm.log/alpine\:3.4
> > > > + make ARCH= CROSS_COMPILE= EXTRA_CFLAGS= -C /git/linux/tools/perf O=/tmp/build/perf
> > > > + make ARCH= CROSS_COMPILE= EXTRA_CFLAGS= NO_LIBELF=1 -C /git/linux/tools/perf O=/tmp/build/perf
> > > > + make ARCH= CROSS_COMPILE= EXTRA_CFLAGS= -C /git/linux/tools/perf O=/tmp/build/perf CC=clang
> > > > + make ARCH= CROSS_COMPILE= EXTRA_CFLAGS= NO_LIBELF=1 -C /git/linux/tools/perf O=/tmp/build/perf CC=clang
> > > > + make ARCH= CROSS_COMPILE= EXTRA_CFLAGS= LIBCLANGLLVM=1 -C /git/linux/tools/perf O=/tmp/build/perf CC=clang
> > > > + make ARCH= CROSS_COMPILE= EXTRA_CFLAGS= LIBCLANGLLVM=1 -C /git/linux/tools/perf O=/tmp/build/perf
> > > > [perfbuilder@quaco linux-perf-tools-build]$
> > > >
> > > > Probably all the rest will go well, will let you know.
> > > >
> > > > Daniel, do you mind if I carry this one in my perf/core branch? Its
> > > > small and shouldn't clash with other patches, I think. It should go
> > > > upstream soon:
> > > >
> > > > Andrii, there are these others:
> > >
> > > I took a look at them, but I think it would be better, if you could
> > > post them as proper patches to
> > > bpf@vger.kernel.org/netdev@vger.kernel.org, so that others can check
> > > and comment, if necessary.
> > >
> > > One nit for all three of them: we typically prefix subject with just
> > > "libbpf: " instead of "tools lib libbpf".
> >
> > Sure, that was mechanic, I do it like that for the patches I upstream,
> > and that was like that in the beginning:
> >
> > [acme@quaco perf]$ git log --oneline tools/lib/bpf | grep lib | tail
> > 9d759a9b4ac2 tools lib bpf: Collect map definition in bpf_object
> > d8ad6a15cc3a tools lib bpf: Don't do a feature check when cleaning
> > 6371ca3b541c bpf tools: Improve libbpf error reporting
> > 0c77c04aa9c2 tools lib bpf: Change FEATURE-DUMP to FEATURE-DUMP.libbpf
> > 715f8db9102f tools lib bpf: Fix compiler warning on CentOS 6
> > 7c422f557266 tools build: Build fixdep helper from perf and basic libs
> > 65f041bee783 tools lib bpf: Use FEATURE_USER to allow building in the same dir as perf
> > 20517cd9c593 tools lib bpf: Fix up FEATURE_{TESTS,DISPLAY} usage
> > cc4228d57c4c bpf tools: Check endianness and make libbpf fail early
> > 1b76c13e4b36 bpf tools: Introduce 'bpf' library and add bpf feature check
> > [acme@quaco perf]$
> >
> > Anyway, I'll resubmit the patches that you acked to bpf@vger and will
> > let my container tests fail for those cases, sticking a warning so that
> > Ingo knows that this is being dealt with and those problems will get
> > fixed soon when the bpf tree merges upstream.
>
> Great, thanks!
>
> >
> > > >
> > > > 8dfb6ed300bf tools lib bpf: Avoid designated initializers for unnamed union members
> > >
> > > + attr.sample_period = attr.wakeup_events = 1;
> > >
> > > let's instead
> > >
> > > + attr.sample_period = 1;
> > > + attr.wakeup_events = 1;
> > >
> > > I don't like multi-assignments.
> >
> > Meh, what's wrong with it? :)
>
> Nothing, objectively :) But I don't remember seeing multi-assignments
> in libbpf code base, so nitpicking for consistency's sake....
>
>
> >
> > > Also, if we are doing explicit assignment, let's do it for all the
> > > fields, not split initialization like that.
> >
> > If that is what takes to get it to build everywhere, no problem. In
> > tools/perf I'm used to doing it, documents that this is an oddity to
> > support more systems :)
> >
> > > > 80f7f8f21441 tools lib bpf: Avoid using 'link' as it shadows a global definition in some systems
> > >
> > > For this one I'm confused. What compiler/system you are getting it on?
> >
> > > I tried to reproduce it with this example (trying both global
> > > variable, as well as function):
> > >
> > > #include <stdio.h>
> > >
> > > //int link = 1;
> > > void link() {}
> > >
> > > int f(int link) {
> > > return link;
> > > }
> > > int main() {
> > > printf("%d\n", f(123));
> > > return 0;
> > > }
> > >
> > > I haven't gotten any errors nor warnings. I'm certainly liking
> > > existing naming better, but my main concern is that we'll probably add
> > > more code like this, and we'll forget about this problem and will
> > > re-introduce.
> >
> > yeah, this happens from time to time with centos:6 and IIRC
> > amazonlinux:1, oraclelinux:6.
> >
> > I still remember when I got reports from the twitter guys when something
> > broke on rhel:5, that was the main reason to get these container tests
> > in place, you never know where people are using this, and since before
> > upstreaming I do the tests, fixing those became second nature 8-)
> >
> > > So I'd rather figure out why it's happening and some rare system and
> > > see if we can mitigate that without all the renames.
>
> Ok, did some more googling. This warning (turned error in your setup)
> is emitted when -Wshadow option is enabled for GCC/clang. It appears
> to be disabled by default, so it must be enabled somewhere for perf
> build or something.
Right, I came to the exact same conclusion, doing tests here:
[perfbuilder@3a58896a648d tmp]$ gcc -Wshadow shadow_global_decl.c -o shadow_global_decl
shadow_global_decl.c: In function 'main':
shadow_global_decl.c:9: warning: declaration of 'link' shadows a global declaration
shadow_global_decl.c:4: warning: shadowed declaration is here
[perfbuilder@3a58896a648d tmp]$ gcc --version |& head -1
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
[perfbuilder@3a58896a648d tmp]$ gcc shadow_global_decl.c -o shadow_global_decl
[perfbuilder@3a58896a648d tmp]$
So I'm going to remove this warning from the places where it causes
problems.
> Would it be possible to disable it at least for libbpf when building
> from perf either everywhere or for those systems where you see this
> warning? I don't think this warning is useful, to be honest, just
> random name conflict between any local and global variables will cause
> this.
Yeah, I might end up having this applied.
[acme@quaco perf]$ git diff
diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
index 495066bafbe3..b6e902a2312f 100644
--- a/tools/scripts/Makefile.include
+++ b/tools/scripts/Makefile.include
@@ -32,7 +32,6 @@ EXTRA_WARNINGS += -Wno-system-headers
EXTRA_WARNINGS += -Wold-style-definition
EXTRA_WARNINGS += -Wpacked
EXTRA_WARNINGS += -Wredundant-decls
-EXTRA_WARNINGS += -Wshadow
EXTRA_WARNINGS += -Wstrict-prototypes
EXTRA_WARNINGS += -Wswitch-default
EXTRA_WARNINGS += -Wswitch-enum
[acme@quaco perf]$
Sorry for the noise...
- Arnaldo
^ permalink raw reply related
* Re: [PATCH bpf] tools/bpf: fix bpftool build with OUTPUT set
From: Jakub Kicinski @ 2019-07-19 18:17 UTC (permalink / raw)
To: Ilya Leoshkevich
Cc: bpf, netdev, lmb, gor, heiko.carstens, Arnaldo Carvalho de Melo
In-Reply-To: <43FB794B-6200-4560-BF10-BBF4B9247913@linux.ibm.com>
On Fri, 19 Jul 2019 15:12:24 +0200, Ilya Leoshkevich wrote:
> > Am 18.07.2019 um 20:51 schrieb Jakub Kicinski <jakub.kicinski@netronome.com>:
> >
> > We should probably make a script with all the ways of calling make
> > should work. Otherwise we can lose track too easily.
>
> Thanks for the script!
>
> I’m trying to make it all pass now, and hitting a weird issue in the
> Kbuild case. The build prints "No rule to make target
> 'scripts/Makefile.ubsan.o'" and proceeds with an empty BPFTOOL_VERSION,
> which causes problems later on.
Does it only break with UBSAN enabled?
> I've found that this is caused by sub_make_done=1 environment variable,
> and unsetting it indeed fixes the problem, since the root Makefile no
> longer uses the implicit %.o rule.
>
> However, I wonder if that would be acceptable in the final version of
> the patch, and whether there is a cleaner way to achieve the same
> effect?
I'm not sure to be honest. Did you check how perf deals with that?
My goal was primarily to make sure we don't regress, so maybe if some
corner cases don't work that's not the end of the world. I think a good
rule of the thumb would be "if it works for perf it should work for
bpftool" ;) Perf gets a lot more build testing.
^ permalink raw reply
* Re: [PATCH bpf] libbpf: fix missing __WORDSIZE definition
From: Andrii Nakryiko @ 2019-07-19 18:26 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Andrii Nakryiko, bpf, Networking, Daniel Borkmann,
Alexei Starovoitov, Kernel Team, Jiri Olsa, Namhyung Kim
In-Reply-To: <20190719181423.GO3624@kernel.org>
On Fri, Jul 19, 2019 at 11:14 AM Arnaldo Carvalho de Melo
<arnaldo.melo@gmail.com> wrote:
>
> Em Fri, Jul 19, 2019 at 10:54:44AM -0700, Andrii Nakryiko escreveu:
> > On Thu, Jul 18, 2019 at 6:16 PM Arnaldo Carvalho de Melo
> > <arnaldo.melo@gmail.com> wrote:
> > >
> > > Em Thu, Jul 18, 2019 at 02:16:29PM -0700, Andrii Nakryiko escreveu:
> > > > On Thu, Jul 18, 2019 at 12:14 PM Arnaldo Carvalho de Melo
> > > > <arnaldo.melo@gmail.com> wrote:
> > > > >
> > > > > Em Thu, Jul 18, 2019 at 03:56:19PM -0300, Arnaldo Carvalho de Melo escreveu:
> > > > > > I'll stop and replace my patch with yours to see if it survives all the
> > > > > > test builds...
> > > > >
> > > > > So, Alpine:3.4, the first image for this distro I did when I started
> > > > > these builds, survives the 6 builds with gcc and clang with your patch:
> > > > >
> > > > >
[...]
> >
> > Ok, did some more googling. This warning (turned error in your setup)
> > is emitted when -Wshadow option is enabled for GCC/clang. It appears
> > to be disabled by default, so it must be enabled somewhere for perf
> > build or something.
>
> Right, I came to the exact same conclusion, doing tests here:
>
> [perfbuilder@3a58896a648d tmp]$ gcc -Wshadow shadow_global_decl.c -o shadow_global_decl
> shadow_global_decl.c: In function 'main':
> shadow_global_decl.c:9: warning: declaration of 'link' shadows a global declaration
> shadow_global_decl.c:4: warning: shadowed declaration is here
> [perfbuilder@3a58896a648d tmp]$ gcc --version |& head -1
> gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
> [perfbuilder@3a58896a648d tmp]$ gcc shadow_global_decl.c -o shadow_global_decl
> [perfbuilder@3a58896a648d tmp]$
>
> So I'm going to remove this warning from the places where it causes
> problems.
>
> > Would it be possible to disable it at least for libbpf when building
> > from perf either everywhere or for those systems where you see this
> > warning? I don't think this warning is useful, to be honest, just
> > random name conflict between any local and global variables will cause
> > this.
>
> Yeah, I might end up having this applied.
Thanks!
>
> [acme@quaco perf]$ git diff
> diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
> index 495066bafbe3..b6e902a2312f 100644
> --- a/tools/scripts/Makefile.include
> +++ b/tools/scripts/Makefile.include
> @@ -32,7 +32,6 @@ EXTRA_WARNINGS += -Wno-system-headers
> EXTRA_WARNINGS += -Wold-style-definition
> EXTRA_WARNINGS += -Wpacked
> EXTRA_WARNINGS += -Wredundant-decls
> -EXTRA_WARNINGS += -Wshadow
> EXTRA_WARNINGS += -Wstrict-prototypes
> EXTRA_WARNINGS += -Wswitch-default
> EXTRA_WARNINGS += -Wswitch-enum
> [acme@quaco perf]$
>
>
> Sorry for the noise...
No worries, I learned something new today :)
>
> - Arnaldo
^ permalink raw reply
* Re: [PATCH 1/2] libbpf: Fix endianness macro usage for some compilers
From: Arnaldo Carvalho de Melo @ 2019-07-19 18:30 UTC (permalink / raw)
To: Y Song
Cc: Daniel Borkmann, Alexei Starovoitov, Clark Williams, bpf, netdev,
Arnaldo Carvalho de Melo, Andrii Nakryiko, Adrian Hunter,
Jiri Olsa, Namhyung Kim
In-Reply-To: <CAH3MdRXDz+Yn104Y3U0u-q_zW0cwSaH0QAPA8aWK9hpBc4hukw@mail.gmail.com>
Em Fri, Jul 19, 2019 at 09:25:07AM -0700, Y Song escreveu:
> On Fri, Jul 19, 2019 at 7:35 AM Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > Using endian.h and its endianness macros makes this code build in a
> > wider range of compilers, as some don't have those macros
> > (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__),
> > so use instead endian.h's macros (__BYTE_ORDER, __LITTLE_ENDIAN,
> > __BIG_ENDIAN) which makes this code even shorter :-)
>
> gcc 4.6.0 starts to support __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, etc.
> I guess those platforms with failing compilation have gcc < 4.6.0.
> Agree that for libbpf, which will be used outside kernel bpf selftest should
> try to compile with lower versions of gcc.
Yeah, I wouldn't mind at all if the answer to this patch was hey, the
minimal version for building libbpf is X.Y, no problem, its just that in
this case there is an alternative that works everywhere and the
resulting source code is even more compact :-)
- Arnaldo
> > Acked-by: Andrii Nakryiko <andriin@fb.com>
> > Cc: Adrian Hunter <adrian.hunter@intel.com>
> > Cc: Alexei Starovoitov <ast@kernel.org>
> > Cc: Daniel Borkmann <daniel@iogearbox.net>
> > Cc: Jiri Olsa <jolsa@kernel.org>
> > Cc: Namhyung Kim <namhyung@kernel.org>
> > Fixes: 12ef5634a855 ("libbpf: simplify endianness check")
> > Fixes: e6c64855fd7a ("libbpf: add btf__parse_elf API to load .BTF and .BTF.ext")
> > Link: https://lkml.kernel.org/n/tip-eep5n8vgwcdphw3uc058k03u@git.kernel.org
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> > ---
> > tools/lib/bpf/btf.c | 5 +++--
> > tools/lib/bpf/libbpf.c | 5 +++--
> > 2 files changed, 6 insertions(+), 4 deletions(-)
> >
> > diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
> > index 467224feb43b..d821107f55f9 100644
> > --- a/tools/lib/bpf/btf.c
> > +++ b/tools/lib/bpf/btf.c
> > @@ -1,6 +1,7 @@
> > // SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
> > /* Copyright (c) 2018 Facebook */
> >
> > +#include <endian.h>
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <string.h>
> > @@ -419,9 +420,9 @@ struct btf *btf__new(__u8 *data, __u32 size)
> >
> > static bool btf_check_endianness(const GElf_Ehdr *ehdr)
> > {
> > -#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
> > +#if __BYTE_ORDER == __LITTLE_ENDIAN
> > return ehdr->e_ident[EI_DATA] == ELFDATA2LSB;
> > -#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
> > +#elif __BYTE_ORDER == __BIG_ENDIAN
> > return ehdr->e_ident[EI_DATA] == ELFDATA2MSB;
> > #else
> > # error "Unrecognized __BYTE_ORDER__"
> > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
> > index 794dd5064ae8..b1dec5b1de54 100644
> > --- a/tools/lib/bpf/libbpf.c
> > +++ b/tools/lib/bpf/libbpf.c
> > @@ -20,6 +20,7 @@
> > #include <inttypes.h>
> > #include <string.h>
> > #include <unistd.h>
> > +#include <endian.h>
> > #include <fcntl.h>
> > #include <errno.h>
> > #include <asm/unistd.h>
> > @@ -612,10 +613,10 @@ static int bpf_object__elf_init(struct bpf_object *obj)
> >
> > static int bpf_object__check_endianness(struct bpf_object *obj)
> > {
> > -#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
> > +#if __BYTE_ORDER == __LITTLE_ENDIAN
> > if (obj->efile.ehdr.e_ident[EI_DATA] == ELFDATA2LSB)
> > return 0;
> > -#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
> > +#elif __BYTE_ORDER == __BIG_ENDIAN
> > if (obj->efile.ehdr.e_ident[EI_DATA] == ELFDATA2MSB)
> > return 0;
> > #else
> > --
> > 2.21.0
> >
--
- Arnaldo
^ permalink raw reply
* Re: [PATCH bpf] libbpf: fix missing __WORDSIZE definition
From: Arnaldo Carvalho de Melo @ 2019-07-19 18:34 UTC (permalink / raw)
To: Andrii Nakryiko
Cc: Arnaldo Carvalho de Melo, Andrii Nakryiko, bpf, Networking,
Daniel Borkmann, Alexei Starovoitov, Kernel Team, Jiri Olsa,
Namhyung Kim
In-Reply-To: <CAEf4BzZtYnVG3tnn25-TTJLOmeevv9fSZnAf7S2pG3VA+dMM+Q@mail.gmail.com>
Em Fri, Jul 19, 2019 at 11:26:50AM -0700, Andrii Nakryiko escreveu:
> On Fri, Jul 19, 2019 at 11:14 AM Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote:
> > Em Fri, Jul 19, 2019 at 10:54:44AM -0700, Andrii Nakryiko escreveu:
> > > Ok, did some more googling. This warning (turned error in your setup)
> > > is emitted when -Wshadow option is enabled for GCC/clang. It appears
> > > to be disabled by default, so it must be enabled somewhere for perf
> > > build or something.
> > Right, I came to the exact same conclusion, doing tests here:
> > [perfbuilder@3a58896a648d tmp]$ gcc -Wshadow shadow_global_decl.c -o shadow_global_decl
> > shadow_global_decl.c: In function 'main':
> > shadow_global_decl.c:9: warning: declaration of 'link' shadows a global declaration
> > shadow_global_decl.c:4: warning: shadowed declaration is here
> > [perfbuilder@3a58896a648d tmp]$ gcc --version |& head -1
> > gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
> > [perfbuilder@3a58896a648d tmp]$ gcc shadow_global_decl.c -o shadow_global_decl
> > [perfbuilder@3a58896a648d tmp]$
> > So I'm going to remove this warning from the places where it causes
> > problems.
> > > Would it be possible to disable it at least for libbpf when building
> > > from perf either everywhere or for those systems where you see this
> > > warning? I don't think this warning is useful, to be honest, just
> > > random name conflict between any local and global variables will cause
> > > this.
> > Yeah, I might end up having this applied.
> Thanks!
So, I'm ending up with the patch below, there is some value after all in
Wshadow, that is, from gcc 4.8 onwards :-)
- Arnaldo
diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
index 495066bafbe3..ded7a950dc40 100644
--- a/tools/scripts/Makefile.include
+++ b/tools/scripts/Makefile.include
@@ -32,7 +32,6 @@ EXTRA_WARNINGS += -Wno-system-headers
EXTRA_WARNINGS += -Wold-style-definition
EXTRA_WARNINGS += -Wpacked
EXTRA_WARNINGS += -Wredundant-decls
-EXTRA_WARNINGS += -Wshadow
EXTRA_WARNINGS += -Wstrict-prototypes
EXTRA_WARNINGS += -Wswitch-default
EXTRA_WARNINGS += -Wswitch-enum
@@ -69,8 +68,16 @@ endif
# will do for now and keep the above -Wstrict-aliasing=3 in place
# in newer systems.
# Needed for the __raw_cmpxchg in tools/arch/x86/include/asm/cmpxchg.h
+#
+# See https://lkml.org/lkml/2006/11/28/253 and https://gcc.gnu.org/gcc-4.8/changes.html,
+# that takes into account Linus's comments (search for Wshadow) for the reasoning about
+# -Wshadow not being interesting before gcc 4.8.
+
ifneq ($(filter 3.%,$(MAKE_VERSION)),) # make-3
EXTRA_WARNINGS += -fno-strict-aliasing
+EXTRA_WARNINGS += -Wno-shadow
+else
+EXTRA_WARNINGS += -Wshadow
endif
ifneq ($(findstring $(MAKEFLAGS), w),w)
^ permalink raw reply related
* Re: [PATCH v3 net-next 13/19] ionic: Add initial ethtool support
From: Shannon Nelson @ 2019-07-19 18:41 UTC (permalink / raw)
To: Andrew Lunn; +Cc: netdev
In-Reply-To: <20190719024013.GC24765@lunn.ch>
On 7/18/19 7:40 PM, Andrew Lunn wrote:
> On Thu, Jul 18, 2019 at 05:12:07PM -0700, Shannon Nelson wrote:
>> On 7/17/19 8:28 PM, Andrew Lunn wrote:
>>> On Fri, Jul 12, 2019 at 10:16:31PM -0700, Shannon Nelson wrote:
>>>> On 7/8/19 7:14 PM, Andrew Lunn wrote:
>>>>>> +static int ionic_set_pauseparam(struct net_device *netdev,
>>>>>> + struct ethtool_pauseparam *pause)
>>>>>> +{
>>>>>> + struct lif *lif = netdev_priv(netdev);
>>>>>> + struct ionic *ionic = lif->ionic;
>>>>>> + struct ionic_dev *idev = &lif->ionic->idev;
>>>>>> +
>>>>>> + u32 requested_pause;
>>>>>> + u32 cur_autoneg;
>>>>>> + int err;
>>>>>> +
>>>>>> + cur_autoneg = idev->port_info->config.an_enable ? AUTONEG_ENABLE :
>>>>>> + AUTONEG_DISABLE;
>>>>>> + if (pause->autoneg != cur_autoneg) {
>>>>>> + netdev_info(netdev, "Please use 'ethtool -s ...' to change autoneg\n");
>>>>>> + return -EOPNOTSUPP;
>>>>>> + }
>>>>>> +
>>>>>> + /* change both at the same time */
>>>>>> + requested_pause = PORT_PAUSE_TYPE_LINK;
>>>>>> + if (pause->rx_pause)
>>>>>> + requested_pause |= IONIC_PAUSE_F_RX;
>>>>>> + if (pause->tx_pause)
>>>>>> + requested_pause |= IONIC_PAUSE_F_TX;
>>>>>> +
>>>>>> + if (requested_pause == idev->port_info->config.pause_type)
>>>>>> + return 0;
>>>>>> +
>>>>>> + idev->port_info->config.pause_type = requested_pause;
>>>>>> +
>>>>>> + mutex_lock(&ionic->dev_cmd_lock);
>>>>>> + ionic_dev_cmd_port_pause(idev, requested_pause);
>>>>>> + err = ionic_dev_cmd_wait(ionic, devcmd_timeout);
>>>>>> + mutex_unlock(&ionic->dev_cmd_lock);
>>>>>> + if (err)
>>>>>> + return err;
>>>>> Hi Shannon
>>>>>
>>>>> I've no idea what the firmware black box is doing, but this looks
>>>>> wrong.
>>>>>
>>>>> pause->autoneg is about if the results of auto-neg should be used or
>>>>> not. If false, just configure the MAC with the pause settings and you
>>>>> are done. If the interface is being forced, so autoneg in general is
>>>>> disabled, just configure the MAC and you are done.
>>>>>
>>>>> If pause->autoneg is true and the interface is using auto-neg as a
>>>>> whole, you pass the pause values to the PHY for it to advertise and
>>>>> trigger an auto-neg. Once autoneg has completed, and the resolved
>>>>> settings are available, the MAC is configured with the resolved
>>>>> values.
>>>>>
>>>>> Looking at this code, i don't see any difference between configuring
>>>>> the MAC or configuring the PHY. I would expect pause->autoneg to be
>>>>> part of requested_pause somehow, so the firmware knows what is should
>>>>> do.
>>>>>
>>>>> Andrew
>>>> In this device there's actually very little the driver can do to directly
>>>> configure the mac or phy besides passing through to the firmware what the
>>>> user has requested - that happens here for the pause values, and in
>>>> ionic_set_link_ksettings() for autoneg. The firmware is managing the port
>>>> based on these requests with the help of internally configured rules defined
>>>> in a customer setting.
>>> I get that. But the firmware needs to conform to what Linux
>>> expects. And what i see here does not conform. That is why i gave a
>>> bit of detail in my reply.
>>>
>>> What exactly does the firmware do? Once we know that, we can figure
>>> out when the driver should return -EOPNOTSUPP because of firmware
>>> limitations, and what it can configure and should return 0.
>> Because this is fairly smart FW, it handles this as expected. I can add
>> this as another comment in the code.
> Hi Shannon
>
> Looking at the code, i don't see how it can handle this
> correctly. Please look at my comments, particularly the meaning of
> pause->autoneg and describe how the firmware does the right thing,
> given what information it is passed.
>
I guess I'm not sure how much better I can answer your question. Like
several other devices, we don't support selecting pause->autoneg. The
firmware manages the PHY itself, the driver doesn't have direct access
to the PHY. The driver passes the tx and rx pause info down to the
firmware in a command request. The NIC firmware does an autoneg if
autoneg is enabled on the port.
sln
^ permalink raw reply
* [PATCH net] tcp: be more careful in tcp_fragment()
From: Eric Dumazet @ 2019-07-19 18:52 UTC (permalink / raw)
To: David S . Miller
Cc: netdev, Eric Dumazet, Eric Dumazet, Andrew Prout, Jonathan Lemon,
Michal Kubecek, Neal Cardwell, Yuchung Cheng, Christoph Paasch,
Jonathan Looney
Some applications set tiny SO_SNDBUF values and expect
TCP to just work. Recent patches to address CVE-2019-11478
broke them in case of losses, since retransmits might
be prevented.
We should allow these flows to make progress.
This patch allows the first and last skb in retransmit queue
to be split even if memory limits are hit.
It also adds the some room due to the fact that tcp_sendmsg()
and tcp_sendpage() might overshoot sk_wmem_queued by about one full
TSO skb (64KB size). Note this allowance was already present
in stable backports for kernels < 4.15
Note for < 4.15 backports :
tcp_rtx_queue_tail() will probably look like :
static inline struct sk_buff *tcp_rtx_queue_tail(const struct sock *sk)
{
struct sk_buff *skb = tcp_send_head(sk);
return skb ? tcp_write_queue_prev(sk, skb) : tcp_write_queue_tail(sk);
}
Fixes: f070ef2ac667 ("tcp: tcp_fragment() should apply sane memory limits")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Andrew Prout <aprout@ll.mit.edu>
Tested-by: Andrew Prout <aprout@ll.mit.edu>
Tested-by: Jonathan Lemon <jonathan.lemon@gmail.com>
Tested-by: Michal Kubecek <mkubecek@suse.cz>
Acked-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Christoph Paasch <cpaasch@apple.com>
Cc: Jonathan Looney <jtl@netflix.com>
---
include/net/tcp.h | 5 +++++
net/ipv4/tcp_output.c | 13 +++++++++++--
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/include/net/tcp.h b/include/net/tcp.h
index f42d300f0cfaa87520320dd287a7b4750adf7d8a..e5cf514ba118e688ce3b3da66f696abd47e1d10f 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1709,6 +1709,11 @@ static inline struct sk_buff *tcp_rtx_queue_head(const struct sock *sk)
return skb_rb_first(&sk->tcp_rtx_queue);
}
+static inline struct sk_buff *tcp_rtx_queue_tail(const struct sock *sk)
+{
+ return skb_rb_last(&sk->tcp_rtx_queue);
+}
+
static inline struct sk_buff *tcp_write_queue_head(const struct sock *sk)
{
return skb_peek(&sk->sk_write_queue);
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 4af1f5dae9d3e937ef39685355c9d3f19ff3ee3b..6e4afc48d7bba7cded4d3fe38f32ab02328f9e05 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1288,6 +1288,7 @@ int tcp_fragment(struct sock *sk, enum tcp_queue tcp_queue,
struct tcp_sock *tp = tcp_sk(sk);
struct sk_buff *buff;
int nsize, old_factor;
+ long limit;
int nlen;
u8 flags;
@@ -1298,8 +1299,16 @@ int tcp_fragment(struct sock *sk, enum tcp_queue tcp_queue,
if (nsize < 0)
nsize = 0;
- if (unlikely((sk->sk_wmem_queued >> 1) > sk->sk_sndbuf &&
- tcp_queue != TCP_FRAG_IN_WRITE_QUEUE)) {
+ /* tcp_sendmsg() can overshoot sk_wmem_queued by one full size skb.
+ * We need some allowance to not penalize applications setting small
+ * SO_SNDBUF values.
+ * Also allow first and last skb in retransmit queue to be split.
+ */
+ limit = sk->sk_sndbuf + 2 * SKB_TRUESIZE(GSO_MAX_SIZE);
+ if (unlikely((sk->sk_wmem_queued >> 1) > limit &&
+ tcp_queue != TCP_FRAG_IN_WRITE_QUEUE &&
+ skb != tcp_rtx_queue_head(sk) &&
+ skb != tcp_rtx_queue_tail(sk))) {
NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPWQUEUETOOBIG);
return -ENOMEM;
}
--
2.22.0.657.g960e92d24f-goog
^ permalink raw reply related
* Re: [PATCH v3 net-next 13/19] ionic: Add initial ethtool support
From: Andrew Lunn @ 2019-07-19 19:07 UTC (permalink / raw)
To: Shannon Nelson; +Cc: netdev
In-Reply-To: <15796ade-68dd-4350-e481-3a3a1e7ce3d5@pensando.io>
On Fri, Jul 19, 2019 at 11:41:28AM -0700, Shannon Nelson wrote:
> On 7/18/19 7:40 PM, Andrew Lunn wrote:
> >On Thu, Jul 18, 2019 at 05:12:07PM -0700, Shannon Nelson wrote:
> >>On 7/17/19 8:28 PM, Andrew Lunn wrote:
> >>>On Fri, Jul 12, 2019 at 10:16:31PM -0700, Shannon Nelson wrote:
> >>>>On 7/8/19 7:14 PM, Andrew Lunn wrote:
> >>>>>>+static int ionic_set_pauseparam(struct net_device *netdev,
> >>>>>>+ struct ethtool_pauseparam *pause)
> >>>>>>+{
> >>>>>>+ struct lif *lif = netdev_priv(netdev);
> >>>>>>+ struct ionic *ionic = lif->ionic;
> >>>>>>+ struct ionic_dev *idev = &lif->ionic->idev;
> >>>>>>+
> >>>>>>+ u32 requested_pause;
> >>>>>>+ u32 cur_autoneg;
> >>>>>>+ int err;
> >>>>>>+
> >>>>>>+ cur_autoneg = idev->port_info->config.an_enable ? AUTONEG_ENABLE :
> >>>>>>+ AUTONEG_DISABLE;
> >>>>>>+ if (pause->autoneg != cur_autoneg) {
> >>>>>>+ netdev_info(netdev, "Please use 'ethtool -s ...' to change autoneg\n");
> >>>>>>+ return -EOPNOTSUPP;
> >>>>>>+ }
> >>>>>>+
> >>>>>>+ /* change both at the same time */
> >>>>>>+ requested_pause = PORT_PAUSE_TYPE_LINK;
> >>>>>>+ if (pause->rx_pause)
> >>>>>>+ requested_pause |= IONIC_PAUSE_F_RX;
> >>>>>>+ if (pause->tx_pause)
> >>>>>>+ requested_pause |= IONIC_PAUSE_F_TX;
> >>>>>>+
> >>>>>>+ if (requested_pause == idev->port_info->config.pause_type)
> >>>>>>+ return 0;
> >>>>>>+
> >>>>>>+ idev->port_info->config.pause_type = requested_pause;
> >>>>>>+
> >>>>>>+ mutex_lock(&ionic->dev_cmd_lock);
> >>>>>>+ ionic_dev_cmd_port_pause(idev, requested_pause);
> >>>>>>+ err = ionic_dev_cmd_wait(ionic, devcmd_timeout);
> >>>>>>+ mutex_unlock(&ionic->dev_cmd_lock);
> >>>>>>+ if (err)
> >>>>>>+ return err;
> >>>>>Hi Shannon
> >>>>>
> >>>>>I've no idea what the firmware black box is doing, but this looks
> >>>>>wrong.
> >>>>>
> >>>>>pause->autoneg is about if the results of auto-neg should be used or
> >>>>>not. If false, just configure the MAC with the pause settings and you
> >>>>>are done. If the interface is being forced, so autoneg in general is
> >>>>>disabled, just configure the MAC and you are done.
> >>>>>
> >>>>>If pause->autoneg is true and the interface is using auto-neg as a
> >>>>>whole, you pass the pause values to the PHY for it to advertise and
> >>>>>trigger an auto-neg. Once autoneg has completed, and the resolved
> >>>>>settings are available, the MAC is configured with the resolved
> >>>>>values.
> >>>>>
> >>>>>Looking at this code, i don't see any difference between configuring
> >>>>>the MAC or configuring the PHY. I would expect pause->autoneg to be
> >>>>>part of requested_pause somehow, so the firmware knows what is should
> >>>>>do.
> >>>>>
> >>>>> Andrew
> >>>>In this device there's actually very little the driver can do to directly
> >>>>configure the mac or phy besides passing through to the firmware what the
> >>>>user has requested - that happens here for the pause values, and in
> >>>>ionic_set_link_ksettings() for autoneg. The firmware is managing the port
> >>>>based on these requests with the help of internally configured rules defined
> >>>>in a customer setting.
> >>>I get that. But the firmware needs to conform to what Linux
> >>>expects. And what i see here does not conform. That is why i gave a
> >>>bit of detail in my reply.
> >>>
> >>>What exactly does the firmware do? Once we know that, we can figure
> >>>out when the driver should return -EOPNOTSUPP because of firmware
> >>>limitations, and what it can configure and should return 0.
> >>Because this is fairly smart FW, it handles this as expected. I can add
> >>this as another comment in the code.
> >Hi Shannon
> >
> >Looking at the code, i don't see how it can handle this
> >correctly. Please look at my comments, particularly the meaning of
> >pause->autoneg and describe how the firmware does the right thing,
> >given what information it is passed.
> >
>
> I guess I'm not sure how much better I can answer your question. Like
> several other devices, we don't support selecting pause->autoneg. The
> firmware manages the PHY itself, the driver doesn't have direct access to
> the PHY. The driver passes the tx and rx pause info down to the firmware in
> a command request. The NIC firmware does an autoneg if autoneg is enabled
> on the port.
Hi Shannon
Thanks. That was the information i was looking for.
Please return -EOPNOTSUPP if pause->autoneg indicates autoneg results
should not be used. Your firmware does not support it, so the driver
should error out. Also the get function should use a hard coded value
for pause->autoneg.
If you ever fix your firmware, you can add full support for pause
configuration.
Thanks
Andrew
^ permalink raw reply
* Re: [patch net-next rfc 0/7] net: introduce alternative names for network interfaces
From: Jiri Pirko @ 2019-07-19 19:16 UTC (permalink / raw)
To: Stephen Hemminger
Cc: netdev, davem, jakub.kicinski, sthemmin, dsahern, dcbw, mkubecek,
andrew, parav, saeedm, mlxsw
In-Reply-To: <20190719093135.5807f41c@hermes.lan>
Fri, Jul 19, 2019 at 06:31:35PM CEST, stephen@networkplumber.org wrote:
>On Fri, 19 Jul 2019 13:00:22 +0200
>Jiri Pirko <jiri@resnulli.us> wrote:
>
>> From: Jiri Pirko <jiri@mellanox.com>
>>
>> In the past, there was repeatedly discussed the IFNAMSIZ (16) limit for
>> netdevice name length. Now when we have PF and VF representors
>> with port names like "pfXvfY", it became quite common to hit this limit:
>> 0123456789012345
>> enp131s0f1npf0vf6
>> enp131s0f1npf0vf22
>>
>> Udev cannot rename these interfaces out-of-the-box and user needs to
>> create custom rules to handle them.
>>
>> Also, udev has multiple schemes of netdev names. From udev code:
>> * Type of names:
>> * b<number> - BCMA bus core number
>> * c<bus_id> - bus id of a grouped CCW or CCW device,
>> * with all leading zeros stripped [s390]
>> * o<index>[n<phys_port_name>|d<dev_port>]
>> * - on-board device index number
>> * s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
>> * - hotplug slot index number
>> * x<MAC> - MAC address
>> * [P<domain>]p<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
>> * - PCI geographical location
>> * [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
>> * - USB port number chain
>> * v<slot> - VIO slot number (IBM PowerVM)
>> * a<vendor><model>i<instance> - Platform bus ACPI instance id
>> * i<addr>n<phys_port_name> - Netdevsim bus address and port name
>>
>> One device can be often renamed by multiple patterns at the
>> same time (e.g. pci address/mac).
>>
>> This patchset introduces alternative names for network interfaces.
>> Main goal is to:
>> 1) Overcome the IFNAMSIZ limitation
>> 2) Allow to have multiple names at the same time (multiple udev patterns)
>> 3) Allow to use alternative names as handle for commands
>>
>> See following examples.
>>
>> $ ip link
>> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
>> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>> 3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
>> link/ether 7e:a2:d4:b8:91:7a brd ff:ff:ff:ff:ff:ff
>>
>> -> Add alternative names for dummy0:
>>
>> $ ip link altname add dummy0 name someothername
>> $ ip link altname add dummy0 name someotherveryveryveryverylongname
>> $ ip link
>> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
>> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>> 3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
>> link/ether 7e:a2:d4:b8:91:7a brd ff:ff:ff:ff:ff:ff
>> altname someothername
>> altname someotherveryveryveryverylongname
>>
>> -> Add bridge brx, add it's alternative name and use alternative names to
>> do enslavement.
>>
>> $ ip link add name brx type bridge
>> $ ip link altname add brx name mypersonalsuperspecialbridge
>> $ ip link set someotherveryveryveryverylongname master mypersonalsuperspecialbridge
>> $ ip link
>> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
>> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>> 3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop master brx state DOWN mode DEFAULT group default qlen 1000
>> link/ether 7e:a2:d4:b8:91:7a brd ff:ff:ff:ff:ff:ff
>> altname someothername
>> altname someotherveryveryveryverylongname
>> 4: brx: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
>> link/ether 7e:a2:d4:b8:91:7a brd ff:ff:ff:ff:ff:ff
>> altname mypersonalsuperspecialbridge
>>
>> -> Add ipv4 address to the bridge using alternative name:
>>
>> $ ip addr add 192.168.0.1/24 dev mypersonalsuperspecialbridge
>> $ ip addr show mypersonalsuperspecialbridge
>> 4: brx: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
>> link/ether 7e:a2:d4:b8:91:7a brd ff:ff:ff:ff:ff:ff
>> altname mypersonalsuperspecialbridge
>> inet 192.168.0.1/24 scope global brx
>> valid_lft forever preferred_lft forever
>>
>> -> Delete one of dummy0 alternative names:
>>
>> $ ip link altname del someotherveryveryveryverylongname
>> $ ip link
>> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
>> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>> 3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop master brx state DOWN mode DEFAULT group default qlen 1000
>> link/ether 7e:a2:d4:b8:91:7a brd ff:ff:ff:ff:ff:ff
>> altname someothername
>> 4: brx: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
>> link/ether 7e:a2:d4:b8:91:7a brd ff:ff:ff:ff:ff:ff
>> altname mypersonalsuperspecialbridge
>>
>> TODO:
>> - notifications for alternative names add/removal
>> - sanitization of add/del cmds (similar to get link)
>> - test more usecases and write selftests
>> - extend support for other netlink ifaces (ovs for example)
>> - add sysfs symlink altname->basename?
>>
>> Jiri Pirko (7):
>> net: procfs: use index hashlist instead of name hashlist
>> net: introduce name_node struct to be used in hashlist
>> net: rtnetlink: add commands to add and delete alternative ifnames
>> net: rtnetlink: put alternative names to getlink message
>> net: rtnetlink: unify the code in __rtnl_newlink get dev with the rest
>> net: rtnetlink: introduce helper to get net_device instance by ifname
>> net: rtnetlink: add possibility to use alternative names as message
>> handle
>>
>> include/linux/netdevice.h | 14 ++-
>> include/uapi/linux/if.h | 1 +
>> include/uapi/linux/if_link.h | 3 +
>> include/uapi/linux/rtnetlink.h | 7 ++
>> net/core/dev.c | 152 ++++++++++++++++++++++----
>> net/core/net-procfs.c | 4 +-
>> net/core/rtnetlink.c | 192 +++++++++++++++++++++++++++++----
>> security/selinux/nlmsgtab.c | 4 +-
>> 8 files changed, 334 insertions(+), 43 deletions(-)
>>
>
>You might want to add altname/ object property in sysfs?
>I.e
> /sys/class/net/eth0/altname/
Sysfs representation is one point on my TODO list.
I didn't look much into this, but yeah, that would work.
I also want to have symlinks altname->basename.
>
^ permalink raw reply
* Re: [patch net-next rfc 2/7] net: introduce name_node struct to be used in hashlist
From: Jiri Pirko @ 2019-07-19 19:17 UTC (permalink / raw)
To: Stephen Hemminger
Cc: netdev, davem, jakub.kicinski, sthemmin, dsahern, dcbw, mkubecek,
andrew, parav, saeedm, mlxsw
In-Reply-To: <20190719092936.60c2d925@hermes.lan>
Fri, Jul 19, 2019 at 06:29:36PM CEST, stephen@networkplumber.org wrote:
>On Fri, 19 Jul 2019 13:00:24 +0200
>Jiri Pirko <jiri@resnulli.us> wrote:
>
>> From: Jiri Pirko <jiri@mellanox.com>
>>
>> Signed-off-by: Jiri Pirko <jiri@mellanox.com>
>> ---
>> include/linux/netdevice.h | 10 +++-
>> net/core/dev.c | 96 +++++++++++++++++++++++++++++++--------
>> 2 files changed, 86 insertions(+), 20 deletions(-)
>>
>> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
>> index 88292953aa6f..74f99f127b0e 100644
>> --- a/include/linux/netdevice.h
>> +++ b/include/linux/netdevice.h
>> @@ -918,6 +918,12 @@ struct dev_ifalias {
>> struct devlink;
>> struct tlsdev_ops;
>>
>> +struct netdev_name_node {
>> + struct hlist_node hlist;
>> + struct net_device *dev;
>> + char *name
>
>You probably can make this const char *
I'll try.
>
>Do you want to add __rcu to this list?
Which list?
^ permalink raw reply
* Re: [PATCH v2] vrf: make sure skb->data contains ip header to make routing
From: David Ahern @ 2019-07-19 19:17 UTC (permalink / raw)
To: Peter Kosyh; +Cc: davem, Shrijeet Mukherjee, netdev, linux-kernel
In-Reply-To: <20190719081148.11512-1-p.kosyh@gmail.com>
On 7/19/19 2:11 AM, Peter Kosyh wrote:
> vrf_process_v4_outbound() and vrf_process_v6_outbound() do routing
> using ip/ipv6 addresses, but don't make sure the header is available
> in skb->data[] (skb_headlen() is less then header size).
>
> Case:
>
> 1) igb driver from intel.
> 2) Packet size is greater then 255.
> 3) MPLS forwards to VRF device.
>
> So, patch adds pskb_may_pull() calls in vrf_process_v4/v6_outbound()
> functions.
>
> Signed-off-by: Peter Kosyh <p.kosyh@gmail.com>
> ---
> drivers/net/vrf.c | 58 +++++++++++++++++++++++++++++++++----------------------
> 1 file changed, 35 insertions(+), 23 deletions(-)
>
Reviewed-by: David Ahern <dsa@cumulusnetworks.com>
^ permalink raw reply
* [PATCH bpf] libbpf: fix SIGSEGV when BTF loading fails, but .BTF.ext exists
From: Andrii Nakryiko @ 2019-07-19 19:32 UTC (permalink / raw)
To: bpf, netdev, ast, daniel, rdna
Cc: andrii.nakryiko, kernel-team, Andrii Nakryiko
In case when BTF loading fails despite sanitization, but BPF object has
.BTF.ext loaded as well, we free and null obj->btf, but not
obj->btf_ext. This leads to an attempt to relocate .BTF.ext later on
during bpf_object__load(), which assumes obj->btf is present. This leads
to SIGSEGV on null pointer access. Fix bug by freeing and nulling
obj->btf_ext as well.
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
---
tools/lib/bpf/libbpf.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index 794dd5064ae8..87168f21ef43 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -1500,6 +1500,12 @@ static int bpf_object__sanitize_and_load_btf(struct bpf_object *obj)
BTF_ELF_SEC, err);
btf__free(obj->btf);
obj->btf = NULL;
+ /* btf_ext can't exist without btf, so free it as well */
+ if (obj->btf_ext) {
+ btf_ext__free(obj->btf_ext);
+ obj->btf_ext = NULL;
+ }
+
if (bpf_object__is_btf_mandatory(obj))
return err;
}
--
2.17.1
^ permalink raw reply related
* Re: [PATCH bpf] libbpf: fix SIGSEGV when BTF loading fails, but .BTF.ext exists
From: Alexei Starovoitov @ 2019-07-19 19:38 UTC (permalink / raw)
To: Andrii Nakryiko, bpf@vger.kernel.org, netdev@vger.kernel.org,
daniel@iogearbox.net, Andrey Ignatov
Cc: andrii.nakryiko@gmail.com, Kernel Team
In-Reply-To: <20190719193242.2658962-1-andriin@fb.com>
On 7/19/19 12:32 PM, Andrii Nakryiko wrote:
> In case when BTF loading fails despite sanitization, but BPF object has
> .BTF.ext loaded as well, we free and null obj->btf, but not
> obj->btf_ext. This leads to an attempt to relocate .BTF.ext later on
> during bpf_object__load(), which assumes obj->btf is present. This leads
> to SIGSEGV on null pointer access. Fix bug by freeing and nulling
> obj->btf_ext as well.
>
> Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Applied. Thanks
^ permalink raw reply
* Re: [GIT] Networking
From: pr-tracker-bot @ 2019-07-19 19:45 UTC (permalink / raw)
To: David Miller; +Cc: torvalds, akpm, netdev, linux-kernel
In-Reply-To: <20190718.204420.2101649864834371997.davem@davemloft.net>
The pull request you sent on Thu, 18 Jul 2019 20:44:20 -0700 (PDT):
> git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git refs/heads/master
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/5f4fc6d440d77a2cf74fe4ea56955674ac7e35e7
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker
^ permalink raw reply
* [PATCH bpf] libbpf: sanitize VAR to conservative 1-byte INT
From: Andrii Nakryiko @ 2019-07-19 19:46 UTC (permalink / raw)
To: bpf, netdev, ast, daniel, rdna
Cc: andrii.nakryiko, kernel-team, Andrii Nakryiko
If VAR in non-sanitized BTF was size less than 4, converting such VAR
into an INT with size=4 will cause BTF validation failure due to
violationg of STRUCT (into which DATASEC was converted) member size.
Fix by conservatively using size=1.
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
---
tools/lib/bpf/libbpf.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index 87168f21ef43..d8833ff6c4a1 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -1377,8 +1377,13 @@ static void bpf_object__sanitize_btf(struct bpf_object *obj)
if (!has_datasec && kind == BTF_KIND_VAR) {
/* replace VAR with INT */
t->info = BTF_INFO_ENC(BTF_KIND_INT, 0, 0);
- t->size = sizeof(int);
- *(int *)(t+1) = BTF_INT_ENC(0, 0, 32);
+ /*
+ * using size = 1 is the safest choice, 4 will be too
+ * big and cause kernel BTF validation failure if
+ * original variable took less than 4 bytes
+ */
+ t->size = 1;
+ *(int *)(t+1) = BTF_INT_ENC(0, 0, 8);
} else if (!has_datasec && kind == BTF_KIND_DATASEC) {
/* replace DATASEC with STRUCT */
struct btf_var_secinfo *v = (void *)(t + 1);
--
2.17.1
^ permalink raw reply related
* Re: [PATCH bpf] libbpf: sanitize VAR to conservative 1-byte INT
From: Alexei Starovoitov @ 2019-07-19 19:50 UTC (permalink / raw)
To: Andrii Nakryiko, bpf@vger.kernel.org, netdev@vger.kernel.org,
daniel@iogearbox.net, Andrey Ignatov
Cc: andrii.nakryiko@gmail.com, Kernel Team
In-Reply-To: <20190719194603.2704713-1-andriin@fb.com>
On 7/19/19 12:46 PM, Andrii Nakryiko wrote:
> If VAR in non-sanitized BTF was size less than 4, converting such VAR
> into an INT with size=4 will cause BTF validation failure due to
> violationg of STRUCT (into which DATASEC was converted) member size.
> Fix by conservatively using size=1.
>
> Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Applied. Thanks
^ permalink raw reply
* Re: phylink: flow control on fixed-link not working.
From: René van Dorst @ 2019-07-19 19:52 UTC (permalink / raw)
To: Russell King - ARM Linux admin; +Cc: netdev
In-Reply-To: <20190717225816.Horde.Lym7vHLMewe-3L_Elk45WIQ@www.vdorst.com>
Quoting René van Dorst <opensource@vdorst.com>:
> Quoting Russell King - ARM Linux admin <linux@armlinux.org.uk>:
>
>> On Wed, Jul 17, 2019 at 09:31:11PM +0000, René van Dorst wrote:
>>> Hi,
>>>
>>> I am trying to enable flow control/pause on PHYLINK and fixed-link.
>>>
>>> My setup SOC mac (mt7621) <-> RGMII <-> SWITCH mac (mt7530).
>>>
>>> It seems that in fixed-link mode all the flow control/pause bits
>>> are cleared
>>> in
>>> phylink_parse_fixedlink(). If I read phylink_parse_fixedlink() [0]
>>> correctly,
>>> I see that pl->link_config.advertising is AND with pl->supprted
>>> which has only
>>> the PHY_SETTING() modes bits set. pl->link_config.advertising is
>>> losing Pause
>>> bits. pl->link_config.advertising is used in
>>> phylink_resolve_flow() to set the
>>> MLO_PAUSE_RX/TX BITS.
>>>
>>> I think this is an error.
>>> Because in phylink_start() see this part [1].
>>>
>>> /* Apply the link configuration to the MAC when starting. This allows
>>> * a fixed-link to start with the correct parameters, and also
>>> * ensures that we set the appropriate advertisement for Serdes links.
>>> */
>>> phylink_resolve_flow(pl, &pl->link_config);
>>> phylink_mac_config(pl, &pl->link_config);
>>>
>>>
>>> If I add a this hacky patch below, flow control is enabled on the
>>> fixed-link.
>>> if (s) {
>>> __set_bit(s->bit, pl->supported);
>>> + if (phylink_test(pl->link_config.advertising, Pause))
>>> + phylink_set(pl->supported, Pause);
>>> } else {
>>>
>>> So is phylink_parse_fixedlink() broken or should it handled in a other way?
>>
>> Quite simply, if the MAC says it doesn't support pause modes (i.o.w.
>> the validate callback clears them) then pause modes aren't supported.
>
> Hi Russel,
>
> Thanks for your response.
>
> I believe that I am setting pause bits right on both ends see SOC [0] and
> SWITCH [1] and also in the DTS [2].
>
> Correct me if it is not the right way.
>
>
> Maybe I am looking in the wrong part of the code.
> But I added many debug lines in phylink_parse_fixedlink() [3] to see what
> happens with the Pause bit in the pl->link_config.advertising and
> pl->supported.
>
>
> This is the dmesg output.
> [ 1.991245] libphy: Fixed MDIO Bus: probed
> [ 2.031260] phylink_create: config0: Pause
> [ 2.039410] phylink_create: supported: Pause
> [ 2.047904] mtk_validate: mask: Pause
> [ 2.055186] mtk_validate: supported: Pause
> [ 2.063332] mtk_validate: advertising: Pause
> [ 2.071825] phylink_create: config1: Pause
> [ 2.079966] phylink_create: config2: Pause
> [ 2.088132] phylink_parse_fixedlink: config: Pause
> [ 2.097660] phylink_parse_fixedlink: support: Pause
> [ 2.107366] mtk_validate: mask: Pause
> [ 2.114647] mtk_validate: supported: Pause
> [ 2.122792] mtk_validate: advertising: Pause
> [ 2.131283] phylink_parse_fixedlink: config2: Pause
> [ 2.140971] phylink_parse_fixedlink: support2: Pause
> [ 2.150845] phylink_parse_fixedlink: config3: Pause
> [ 2.160546] phylink_parse_fixedlink: support3: Pause
> [ 2.170420] phylink_parse_fixedlink: config4: Pause
> [ 2.180120] phylink_parse_fixedlink: config5: Pause
>
> [ 5.854674] mt7530 mdio-bus:1f: configuring for fixed/trgmii link mode
> [ 5.867665] phylink_resolve_flow: PAUSE_AN: pause: 0, 12, 8dfba630
> [ 5.867670] phylink_resolve_flow: new_pause: 0
> [ 5.879980] mt7530 mdio-bus:1f: phylink_mac_config:
> mode=fixed/trgmii/1Gbps/Full adv=00,00000000,00000220 pause=12
> link=1 an=1
> [ 6.651239] DSA: tree 0 setup
> [ 6.658192] input: gpio-keys as /devices/platform/gpio-keys/input/input0
> [ 6.672108] mt7530 mdio-bus:1f: phylink_mac_config:
> mode=fixed/trgmii/1Gbps/Full adv=00,00000000,00000220 pause=12
> link=1 an=1
> [ 28.937543] mtk_soc_eth 1e100000.ethernet eth0: configuring for
> fixed/trgmii link mode
> [ 28.965884] mtk_soc_eth 1e100000.ethernet eth0:
> phylink_mac_config: mode=fixed/trgmii/1Gbps/Full
> adv=00,00000000,00000220 pause=12 link=1 an=1
> [ 29.000740] mtk_soc_eth 1e100000.ethernet eth0:
> phylink_mac_config: mode=fixed/trgmii/1Gbps/Full
> adv=00,00000000,00000220 pause=12 link=1 an=1
> [ 29.026392] mtk_soc_eth 1e100000.ethernet eth0: Link is Up -
> 1Gbps/Full - flow control off
> [ 29.373577] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
>
>
> I don't see the "config6:" [4] debug.
> I think the pause bits are always cleared in
> pl->link_config.advertising by phylink_parse_fixedlink()
>
> Again I may understand the code wrong or I am looking at the wrong place.
> So I hope you can point me in the right direction...
Hi Russel,
If I use this patch below:
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
index 5d0af041b8f9..a6aebaa14338 100644
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
@@ -216,6 +216,8 @@ static int phylink_parse_fixedlink(struct phylink *pl,
pl->supported, true);
linkmode_zero(pl->supported);
phylink_set(pl->supported, MII);
+ phylink_set(pl->supported, Pause);
+ phylink_set(pl->supported, Asym_Pause);
if (s) {
__set_bit(s->bit, pl->supported);
} else {
Which is similar thing also done in phylink_parse_mode().
I get these results:
- DTS = 'Pause' is set in the fixed-link
- validate = No means phylink_set(mask, Pause) is not used in validate
callback.
- flow = results reported my link is Up line.
+-----+----------+-------+
| DTS | validate | flow |
+-----+----------+-------+
| Yes | Yes | rx/tx |
| No | Yes | off |
| Yes | No | off |
+-----+----------+-------+
What do you think?
Can this be a correct fix?
Greats,
René
>
> Greats,
>
> René
>
>
> [0]:
> https://github.com/vDorst/linux-1/blob/8538cdefd425592d249a71445c466159b0f27475/drivers/net/ethernet/mediatek/mtk_eth_soc.c#L502
> [1]:
> https://github.com/vDorst/linux-1/blob/8538cdefd425592d249a71445c466159b0f27475/drivers/net/dsa/mt7530.c#L1468
> [2]:
> https://github.com/vDorst/linux-1/blob/8538cdefd425592d249a71445c466159b0f27475/drivers/staging/mt7621-dts/UBNT-ER-e50.dtsi#L122
> [3]:
> https://github.com/vDorst/linux-1/blob/8538cdefd425592d249a71445c466159b0f27475/drivers/net/phy/phylink.c#L214
> [4]:
> https://github.com/vDorst/linux-1/blob/8538cdefd425592d249a71445c466159b0f27475/drivers/net/phy/phylink.c#L263
>
>>
>> --
>> RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
>> FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down
>> 622kbps up
>> According to speedtest.net: 11.9Mbps down 500kbps up
^ permalink raw reply related
* Re: [PATCH bpf] libbpf: fix missing __WORDSIZE definition
From: Andrii Nakryiko @ 2019-07-19 20:04 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Andrii Nakryiko, bpf, Networking, Daniel Borkmann,
Alexei Starovoitov, Kernel Team, Jiri Olsa, Namhyung Kim
In-Reply-To: <20190719183417.GQ3624@kernel.org>
On Fri, Jul 19, 2019 at 11:34 AM Arnaldo Carvalho de Melo
<arnaldo.melo@gmail.com> wrote:
>
> Em Fri, Jul 19, 2019 at 11:26:50AM -0700, Andrii Nakryiko escreveu:
> > On Fri, Jul 19, 2019 at 11:14 AM Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote:
> > > Em Fri, Jul 19, 2019 at 10:54:44AM -0700, Andrii Nakryiko escreveu:
> > > > Ok, did some more googling. This warning (turned error in your setup)
> > > > is emitted when -Wshadow option is enabled for GCC/clang. It appears
> > > > to be disabled by default, so it must be enabled somewhere for perf
> > > > build or something.
>
> > > Right, I came to the exact same conclusion, doing tests here:
>
> > > [perfbuilder@3a58896a648d tmp]$ gcc -Wshadow shadow_global_decl.c -o shadow_global_decl
> > > shadow_global_decl.c: In function 'main':
> > > shadow_global_decl.c:9: warning: declaration of 'link' shadows a global declaration
> > > shadow_global_decl.c:4: warning: shadowed declaration is here
> > > [perfbuilder@3a58896a648d tmp]$ gcc --version |& head -1
> > > gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
> > > [perfbuilder@3a58896a648d tmp]$ gcc shadow_global_decl.c -o shadow_global_decl
> > > [perfbuilder@3a58896a648d tmp]$
>
> > > So I'm going to remove this warning from the places where it causes
> > > problems.
>
> > > > Would it be possible to disable it at least for libbpf when building
> > > > from perf either everywhere or for those systems where you see this
> > > > warning? I don't think this warning is useful, to be honest, just
> > > > random name conflict between any local and global variables will cause
> > > > this.
>
> > > Yeah, I might end up having this applied.
>
> > Thanks!
>
> So, I'm ending up with the patch below, there is some value after all in
> Wshadow, that is, from gcc 4.8 onwards :-)
I agree with the intent, but see below.
>
> - Arnaldo
>
> diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
> index 495066bafbe3..ded7a950dc40 100644
> --- a/tools/scripts/Makefile.include
> +++ b/tools/scripts/Makefile.include
> @@ -32,7 +32,6 @@ EXTRA_WARNINGS += -Wno-system-headers
> EXTRA_WARNINGS += -Wold-style-definition
> EXTRA_WARNINGS += -Wpacked
> EXTRA_WARNINGS += -Wredundant-decls
> -EXTRA_WARNINGS += -Wshadow
> EXTRA_WARNINGS += -Wstrict-prototypes
> EXTRA_WARNINGS += -Wswitch-default
> EXTRA_WARNINGS += -Wswitch-enum
> @@ -69,8 +68,16 @@ endif
> # will do for now and keep the above -Wstrict-aliasing=3 in place
> # in newer systems.
> # Needed for the __raw_cmpxchg in tools/arch/x86/include/asm/cmpxchg.h
> +#
> +# See https://lkml.org/lkml/2006/11/28/253 and https://gcc.gnu.org/gcc-4.8/changes.html,
> +# that takes into account Linus's comments (search for Wshadow) for the reasoning about
> +# -Wshadow not being interesting before gcc 4.8.
> +
> ifneq ($(filter 3.%,$(MAKE_VERSION)),) # make-3
This is checking make version, not GCC version. So code comment and
configurations are not in sync?
> EXTRA_WARNINGS += -fno-strict-aliasing
> +EXTRA_WARNINGS += -Wno-shadow
> +else
> +EXTRA_WARNINGS += -Wshadow
> endif
>
> ifneq ($(findstring $(MAKEFLAGS), w),w)
^ permalink raw reply
* Re: network problems with r8169
From: Heiner Kallweit @ 2019-07-19 20:05 UTC (permalink / raw)
To: Thomas Voegtle; +Cc: linux-kernel, netdev@vger.kernel.org
In-Reply-To: <alpine.LSU.2.21.1907182032370.7080@er-systems.de>
On 18.07.2019 20:50, Thomas Voegtle wrote:
>
> Hello,
>
> I'm having network problems with the commits on r8169 since v5.2. There are ping packet loss, sometimes 100%, sometimes 50%. In the end network is unusable.
>
> v5.2 is fine, I bisected it down to:
>
> a2928d28643e3c064ff41397281d20c445525032 is the first bad commit
> commit a2928d28643e3c064ff41397281d20c445525032
> Author: Heiner Kallweit <hkallweit1@gmail.com>
> Date: Sun Jun 2 10:53:49 2019 +0200
>
> r8169: use paged versions of phylib MDIO access functions
>
> Use paged versions of phylib MDIO access functions to simplify
> the code.
>
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>
>
> Reverting that commit on top of v5.2-11564-g22051d9c4a57 fixes the problem
> for me (had to adjust the renaming to r8169_main.c).
>
> I have a:
> 04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev
> 0c)
> Subsystem: Biostar Microtech Int'l Corp Device [1565:2400]
> Kernel driver in use: r8169
>
> on a BIOSTAR H81MG motherboard.
>
Interesting. I have the same chip version (RTL8168g) and can't reproduce
the issue. Can you provide a full dmesg output and test the patch below
on top of linux-next? I'd be interested in the WARN_ON stack traces
(if any) and would like to know whether the experimental change to
__phy_modify_changed helps.
>
> greetings,
>
> Thomas
>
>
Heiner
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index 8d7dd4c5f..26be73000 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -1934,6 +1934,8 @@ static int rtl_get_eee_supp(struct rtl8169_private *tp)
struct phy_device *phydev = tp->phydev;
int ret;
+ WARN_ON(phy_read(phydev, 0x1f));
+
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_34:
case RTL_GIGA_MAC_VER_35:
@@ -1957,6 +1959,8 @@ static int rtl_get_eee_lpadv(struct rtl8169_private *tp)
struct phy_device *phydev = tp->phydev;
int ret;
+ WARN_ON(phy_read(phydev, 0x1f));
+
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_34:
case RTL_GIGA_MAC_VER_35:
@@ -1980,6 +1984,8 @@ static int rtl_get_eee_adv(struct rtl8169_private *tp)
struct phy_device *phydev = tp->phydev;
int ret;
+ WARN_ON(phy_read(phydev, 0x1f));
+
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_34:
case RTL_GIGA_MAC_VER_35:
@@ -2003,6 +2009,8 @@ static int rtl_set_eee_adv(struct rtl8169_private *tp, int val)
struct phy_device *phydev = tp->phydev;
int ret = 0;
+ WARN_ON(phy_read(phydev, 0x1f));
+
switch (tp->mac_version) {
case RTL_GIGA_MAC_VER_34:
case RTL_GIGA_MAC_VER_35:
diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c
index 16667fbac..1aa1142b8 100644
--- a/drivers/net/phy/phy-core.c
+++ b/drivers/net/phy/phy-core.c
@@ -463,12 +463,10 @@ int __phy_modify_changed(struct phy_device *phydev, u32 regnum, u16 mask,
return ret;
new = (ret & ~mask) | set;
- if (new == ret)
- return 0;
- ret = __phy_write(phydev, regnum, new);
+ __phy_write(phydev, regnum, new);
- return ret < 0 ? ret : 1;
+ return new != ret;
}
EXPORT_SYMBOL_GPL(__phy_modify_changed);
--
2.22.0
^ permalink raw reply related
* Re: [PATCH v3 net-next 13/19] ionic: Add initial ethtool support
From: Shannon Nelson @ 2019-07-19 20:20 UTC (permalink / raw)
To: Andrew Lunn; +Cc: netdev
In-Reply-To: <20190719190715.GO25635@lunn.ch>
On 7/19/19 12:07 PM, Andrew Lunn wrote:
> On Fri, Jul 19, 2019 at 11:41:28AM -0700, Shannon Nelson wrote:
>> On 7/18/19 7:40 PM, Andrew Lunn wrote:
>>> On Thu, Jul 18, 2019 at 05:12:07PM -0700, Shannon Nelson wrote:
>>>> On 7/17/19 8:28 PM, Andrew Lunn wrote:
>>>>> On Fri, Jul 12, 2019 at 10:16:31PM -0700, Shannon Nelson wrote:
>>>>>> On 7/8/19 7:14 PM, Andrew Lunn wrote:
>>>>>>>> +static int ionic_set_pauseparam(struct net_device *netdev,
>>>>>>>> + struct ethtool_pauseparam *pause)
>>>>>>>> +{
>>>>>>>> + struct lif *lif = netdev_priv(netdev);
>>>>>>>> + struct ionic *ionic = lif->ionic;
>>>>>>>> + struct ionic_dev *idev = &lif->ionic->idev;
>>>>>>>> +
>>>>>>>> + u32 requested_pause;
>>>>>>>> + u32 cur_autoneg;
>>>>>>>> + int err;
>>>>>>>> +
>>>>>>>> + cur_autoneg = idev->port_info->config.an_enable ? AUTONEG_ENABLE :
>>>>>>>> + AUTONEG_DISABLE;
>>>>>>>> + if (pause->autoneg != cur_autoneg) {
>>>>>>>> + netdev_info(netdev, "Please use 'ethtool -s ...' to change autoneg\n");
>>>>>>>> + return -EOPNOTSUPP;
>>>>>>>> + }
>>>>>>>> +
>>>>>>>> + /* change both at the same time */
>>>>>>>> + requested_pause = PORT_PAUSE_TYPE_LINK;
>>>>>>>> + if (pause->rx_pause)
>>>>>>>> + requested_pause |= IONIC_PAUSE_F_RX;
>>>>>>>> + if (pause->tx_pause)
>>>>>>>> + requested_pause |= IONIC_PAUSE_F_TX;
>>>>>>>> +
>>>>>>>> + if (requested_pause == idev->port_info->config.pause_type)
>>>>>>>> + return 0;
>>>>>>>> +
>>>>>>>> + idev->port_info->config.pause_type = requested_pause;
>>>>>>>> +
>>>>>>>> + mutex_lock(&ionic->dev_cmd_lock);
>>>>>>>> + ionic_dev_cmd_port_pause(idev, requested_pause);
>>>>>>>> + err = ionic_dev_cmd_wait(ionic, devcmd_timeout);
>>>>>>>> + mutex_unlock(&ionic->dev_cmd_lock);
>>>>>>>> + if (err)
>>>>>>>> + return err;
>>>>>>> Hi Shannon
>>>>>>>
>>>>>>> I've no idea what the firmware black box is doing, but this looks
>>>>>>> wrong.
>>>>>>>
>>>>>>> pause->autoneg is about if the results of auto-neg should be used or
>>>>>>> not. If false, just configure the MAC with the pause settings and you
>>>>>>> are done. If the interface is being forced, so autoneg in general is
>>>>>>> disabled, just configure the MAC and you are done.
>>>>>>>
>>>>>>> If pause->autoneg is true and the interface is using auto-neg as a
>>>>>>> whole, you pass the pause values to the PHY for it to advertise and
>>>>>>> trigger an auto-neg. Once autoneg has completed, and the resolved
>>>>>>> settings are available, the MAC is configured with the resolved
>>>>>>> values.
>>>>>>>
>>>>>>> Looking at this code, i don't see any difference between configuring
>>>>>>> the MAC or configuring the PHY. I would expect pause->autoneg to be
>>>>>>> part of requested_pause somehow, so the firmware knows what is should
>>>>>>> do.
>>>>>>>
>>>>>>> Andrew
>>>>>> In this device there's actually very little the driver can do to directly
>>>>>> configure the mac or phy besides passing through to the firmware what the
>>>>>> user has requested - that happens here for the pause values, and in
>>>>>> ionic_set_link_ksettings() for autoneg. The firmware is managing the port
>>>>>> based on these requests with the help of internally configured rules defined
>>>>>> in a customer setting.
>>>>> I get that. But the firmware needs to conform to what Linux
>>>>> expects. And what i see here does not conform. That is why i gave a
>>>>> bit of detail in my reply.
>>>>>
>>>>> What exactly does the firmware do? Once we know that, we can figure
>>>>> out when the driver should return -EOPNOTSUPP because of firmware
>>>>> limitations, and what it can configure and should return 0.
>>>> Because this is fairly smart FW, it handles this as expected. I can add
>>>> this as another comment in the code.
>>> Hi Shannon
>>>
>>> Looking at the code, i don't see how it can handle this
>>> correctly. Please look at my comments, particularly the meaning of
>>> pause->autoneg and describe how the firmware does the right thing,
>>> given what information it is passed.
>>>
>> I guess I'm not sure how much better I can answer your question. Like
>> several other devices, we don't support selecting pause->autoneg. The
>> firmware manages the PHY itself, the driver doesn't have direct access to
>> the PHY. The driver passes the tx and rx pause info down to the firmware in
>> a command request. The NIC firmware does an autoneg if autoneg is enabled
>> on the port.
> Hi Shannon
>
> Thanks. That was the information i was looking for.
>
> Please return -EOPNOTSUPP if pause->autoneg indicates autoneg results
> should not be used. Your firmware does not support it, so the driver
> should error out. Also the get function should use a hard coded value
> for pause->autoneg.
>
> If you ever fix your firmware, you can add full support for pause
> configuration.
>
>
Thanks for the help,
sln
^ permalink raw reply
* Re: [patch net-next rfc 2/7] net: introduce name_node struct to be used in hashlist
From: Stephen Hemminger @ 2019-07-19 20:26 UTC (permalink / raw)
To: Jiri Pirko
Cc: netdev, davem, jakub.kicinski, sthemmin, dsahern, dcbw, mkubecek,
andrew, parav, saeedm, mlxsw
In-Reply-To: <20190719191740.GF2230@nanopsycho>
On Fri, 19 Jul 2019 21:17:40 +0200
Jiri Pirko <jiri@resnulli.us> wrote:
> Fri, Jul 19, 2019 at 06:29:36PM CEST, stephen@networkplumber.org wrote:
> >On Fri, 19 Jul 2019 13:00:24 +0200
> >Jiri Pirko <jiri@resnulli.us> wrote:
> >
> >> From: Jiri Pirko <jiri@mellanox.com>
> >>
> >> Signed-off-by: Jiri Pirko <jiri@mellanox.com>
> >> ---
> >> include/linux/netdevice.h | 10 +++-
> >> net/core/dev.c | 96 +++++++++++++++++++++++++++++++--------
> >> 2 files changed, 86 insertions(+), 20 deletions(-)
> >>
> >> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
> >> index 88292953aa6f..74f99f127b0e 100644
> >> --- a/include/linux/netdevice.h
> >> +++ b/include/linux/netdevice.h
> >> @@ -918,6 +918,12 @@ struct dev_ifalias {
> >> struct devlink;
> >> struct tlsdev_ops;
> >>
> >> +struct netdev_name_node {
> >> + struct hlist_node hlist;
> >> + struct net_device *dev;
> >> + char *name
> >
> >You probably can make this const char *
Don't bother, it looks ok as is. the problem is you would have
to cast it when calling free.
> >Do you want to add __rcu to this list?
>
> Which list?
>
struct netdev_name_node __rcu *name_node;
You might also want to explictly init the hlist node rather
than relying on the fact that zero is an empty node ptr.
static struct netdev_name_node *netdev_name_node_alloc(struct net_device *dev,
- char *name)
+ const char *name)
{
struct netdev_name_node *name_node;
- name_node = kzalloc(sizeof(*name_node), GFP_KERNEL);
+ name_node = kmalloc(sizeof(*name_node));
if (!name_node)
return NULL;
+
+ INIT_HLIST_NODE(&name_node->hlist);
name_node->dev = dev;
name_node->name = name;
return name_node;
^ permalink raw reply
* Re: [PATCH bpf] libbpf: fix missing __WORDSIZE definition
From: Arnaldo Carvalho de Melo @ 2019-07-19 20:27 UTC (permalink / raw)
To: Andrii Nakryiko
Cc: Arnaldo Carvalho de Melo, Andrii Nakryiko, bpf, Networking,
Daniel Borkmann, Alexei Starovoitov, Kernel Team, Jiri Olsa,
Namhyung Kim
In-Reply-To: <CAEf4Bzb6Dfup+aRuWLyTj3=-Nyq3wWGsLXRSX7s=aMVs8WBiWQ@mail.gmail.com>
Em Fri, Jul 19, 2019 at 01:04:32PM -0700, Andrii Nakryiko escreveu:
> On Fri, Jul 19, 2019 at 11:34 AM Arnaldo Carvalho de Melo
> <arnaldo.melo@gmail.com> wrote:
> >
> > Em Fri, Jul 19, 2019 at 11:26:50AM -0700, Andrii Nakryiko escreveu:
> > > On Fri, Jul 19, 2019 at 11:14 AM Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote:
> > > > Em Fri, Jul 19, 2019 at 10:54:44AM -0700, Andrii Nakryiko escreveu:
> > > > > Ok, did some more googling. This warning (turned error in your setup)
> > > > > is emitted when -Wshadow option is enabled for GCC/clang. It appears
> > > > > to be disabled by default, so it must be enabled somewhere for perf
> > > > > build or something.
> >
> > > > Right, I came to the exact same conclusion, doing tests here:
> >
> > > > [perfbuilder@3a58896a648d tmp]$ gcc -Wshadow shadow_global_decl.c -o shadow_global_decl
> > > > shadow_global_decl.c: In function 'main':
> > > > shadow_global_decl.c:9: warning: declaration of 'link' shadows a global declaration
> > > > shadow_global_decl.c:4: warning: shadowed declaration is here
> > > > [perfbuilder@3a58896a648d tmp]$ gcc --version |& head -1
> > > > gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
> > > > [perfbuilder@3a58896a648d tmp]$ gcc shadow_global_decl.c -o shadow_global_decl
> > > > [perfbuilder@3a58896a648d tmp]$
> >
> > > > So I'm going to remove this warning from the places where it causes
> > > > problems.
> >
> > > > > Would it be possible to disable it at least for libbpf when building
> > > > > from perf either everywhere or for those systems where you see this
> > > > > warning? I don't think this warning is useful, to be honest, just
> > > > > random name conflict between any local and global variables will cause
> > > > > this.
> >
> > > > Yeah, I might end up having this applied.
> >
> > > Thanks!
> >
> > So, I'm ending up with the patch below, there is some value after all in
> > Wshadow, that is, from gcc 4.8 onwards :-)
>
> I agree with the intent, but see below.
>
> >
> > - Arnaldo
> >
> > diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
> > index 495066bafbe3..ded7a950dc40 100644
> > --- a/tools/scripts/Makefile.include
> > +++ b/tools/scripts/Makefile.include
> > @@ -32,7 +32,6 @@ EXTRA_WARNINGS += -Wno-system-headers
> > EXTRA_WARNINGS += -Wold-style-definition
> > EXTRA_WARNINGS += -Wpacked
> > EXTRA_WARNINGS += -Wredundant-decls
> > -EXTRA_WARNINGS += -Wshadow
> > EXTRA_WARNINGS += -Wstrict-prototypes
> > EXTRA_WARNINGS += -Wswitch-default
> > EXTRA_WARNINGS += -Wswitch-enum
> > @@ -69,8 +68,16 @@ endif
> > # will do for now and keep the above -Wstrict-aliasing=3 in place
> > # in newer systems.
> > # Needed for the __raw_cmpxchg in tools/arch/x86/include/asm/cmpxchg.h
> > +#
> > +# See https://lkml.org/lkml/2006/11/28/253 and https://gcc.gnu.org/gcc-4.8/changes.html,
> > +# that takes into account Linus's comments (search for Wshadow) for the reasoning about
> > +# -Wshadow not being interesting before gcc 4.8.
> > +
> > ifneq ($(filter 3.%,$(MAKE_VERSION)),) # make-3
>
> This is checking make version, not GCC version. So code comment and
> configurations are not in sync?
Ah, I should have added a few lines back:
# Hack to avoid type-punned warnings on old systems such as RHEL5:
# We should be changing CFLAGS and checking gcc version, but this
# will do for now and keep the above -Wstrict-aliasing=3 in place
# in newer systems.
# Needed for the __raw_cmpxchg in tools/arch/x86/include/asm/cmpxchg.h
#
# See https://lkml.org/lkml/2006/11/28/253 and https://gcc.gnu.org/gcc-4.8/changes.html,
# that takes into account Linus's comments (search for Wshadow) for the reasoning about
# -Wshadow not being interesting before gcc 4.8.
In time I'll try and get it to use the gcc version to be strict.
- Arnaldo
^ permalink raw reply
* Re: network problems with r8169
From: Thomas Voegtle @ 2019-07-19 21:12 UTC (permalink / raw)
To: Heiner Kallweit; +Cc: linux-kernel, netdev@vger.kernel.org
In-Reply-To: <2eeedff5-4911-db6e-6bfd-99b591daa7ef@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3984 bytes --]
On Fri, 19 Jul 2019, Heiner Kallweit wrote:
> On 18.07.2019 20:50, Thomas Voegtle wrote:
>>
>> Hello,
>>
>> I'm having network problems with the commits on r8169 since v5.2. There are ping packet loss, sometimes 100%, sometimes 50%. In the end network is unusable.
>>
>> v5.2 is fine, I bisected it down to:
>>
>> a2928d28643e3c064ff41397281d20c445525032 is the first bad commit
>> commit a2928d28643e3c064ff41397281d20c445525032
>> Author: Heiner Kallweit <hkallweit1@gmail.com>
>> Date: Sun Jun 2 10:53:49 2019 +0200
>>
>> r8169: use paged versions of phylib MDIO access functions
>>
>> Use paged versions of phylib MDIO access functions to simplify
>> the code.
>>
>> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
>> Signed-off-by: David S. Miller <davem@davemloft.net>
>>
>>
>> Reverting that commit on top of v5.2-11564-g22051d9c4a57 fixes the problem
>> for me (had to adjust the renaming to r8169_main.c).
>>
>> I have a:
>> 04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
>> RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev
>> 0c)
>> Subsystem: Biostar Microtech Int'l Corp Device [1565:2400]
>> Kernel driver in use: r8169
>>
>> on a BIOSTAR H81MG motherboard.
>>
> Interesting. I have the same chip version (RTL8168g) and can't reproduce
> the issue. Can you provide a full dmesg output and test the patch below
> on top of linux-next? I'd be interested in the WARN_ON stack traces
> (if any) and would like to know whether the experimental change to
> __phy_modify_changed helps.
>
>>
>> greetings,
>>
>> Thomas
>>
>>
> Heiner
>
>
> diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
> index 8d7dd4c5f..26be73000 100644
> --- a/drivers/net/ethernet/realtek/r8169_main.c
> +++ b/drivers/net/ethernet/realtek/r8169_main.c
> @@ -1934,6 +1934,8 @@ static int rtl_get_eee_supp(struct rtl8169_private *tp)
> struct phy_device *phydev = tp->phydev;
> int ret;
>
> + WARN_ON(phy_read(phydev, 0x1f));
> +
> switch (tp->mac_version) {
> case RTL_GIGA_MAC_VER_34:
> case RTL_GIGA_MAC_VER_35:
> @@ -1957,6 +1959,8 @@ static int rtl_get_eee_lpadv(struct rtl8169_private *tp)
> struct phy_device *phydev = tp->phydev;
> int ret;
>
> + WARN_ON(phy_read(phydev, 0x1f));
> +
> switch (tp->mac_version) {
> case RTL_GIGA_MAC_VER_34:
> case RTL_GIGA_MAC_VER_35:
> @@ -1980,6 +1984,8 @@ static int rtl_get_eee_adv(struct rtl8169_private *tp)
> struct phy_device *phydev = tp->phydev;
> int ret;
>
> + WARN_ON(phy_read(phydev, 0x1f));
> +
> switch (tp->mac_version) {
> case RTL_GIGA_MAC_VER_34:
> case RTL_GIGA_MAC_VER_35:
> @@ -2003,6 +2009,8 @@ static int rtl_set_eee_adv(struct rtl8169_private *tp, int val)
> struct phy_device *phydev = tp->phydev;
> int ret = 0;
>
> + WARN_ON(phy_read(phydev, 0x1f));
> +
> switch (tp->mac_version) {
> case RTL_GIGA_MAC_VER_34:
> case RTL_GIGA_MAC_VER_35:
> diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c
> index 16667fbac..1aa1142b8 100644
> --- a/drivers/net/phy/phy-core.c
> +++ b/drivers/net/phy/phy-core.c
> @@ -463,12 +463,10 @@ int __phy_modify_changed(struct phy_device *phydev, u32 regnum, u16 mask,
> return ret;
>
> new = (ret & ~mask) | set;
> - if (new == ret)
> - return 0;
>
> - ret = __phy_write(phydev, regnum, new);
> + __phy_write(phydev, regnum, new);
>
> - return ret < 0 ? ret : 1;
> + return new != ret;
> }
> EXPORT_SYMBOL_GPL(__phy_modify_changed);
>
>
Took your patch on top of next-20190719.
See attached dmesg.
It didn't work. Same thing, lots of ping drops, no usable network.
like that:
44 packets transmitted, 2 received, 95% packet loss, time 44005ms
Maybe important:
I build a kernel with no modules.
I have to power off when I booted a kernel which doesn't work, a (soft)
reboot into a older kernel (e.g. 4.9.y) doesn't
fix the problem. Powering off and on does.
greetings,
Thomas
[-- Attachment #2: Type: text/plain, Size: 53470 bytes --]
[ 0.000000] microcode: microcode updated early to revision 0x27, date = 2019-02-26
[ 0.000000] Linux version 5.2.0-next-20190719-i5-dirty (thomas@maggie) (gcc version 7.4.1 20190424 [gcc-7-branch revision 270538] (SUSE Linux)) #1 SMP Fri Jul 19 22:41:26 CEST 2019
[ 0.000000] Command line: root=/dev/sda3 resume=/dev/sda1 console=ttyS0,115200N8 panic=30 no_console_suspend
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
[ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d7ff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009d800-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000cc5a0fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000cc5a1000-0x00000000cc5a7fff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000cc5a8000-0x00000000ccd76fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000ccd77000-0x00000000ccfe7fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ccfe8000-0x00000000ddba1fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000ddba2000-0x00000000ddedafff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ddedb000-0x00000000de0dcfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000de0dd000-0x00000000de890fff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000de891000-0x00000000deffefff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000defff000-0x00000000deffffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed03fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000011effffff] usable
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] SMBIOS 2.7 present.
[ 0.000000] DMI: BIOSTAR Group H81MG/H81MG, BIOS 4.6.5 06/27/2014
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.000000] tsc: Detected 3391.866 MHz processor
[ 0.001234] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.001235] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.001239] last_pfn = 0x11f000 max_arch_pfn = 0x400000000
[ 0.001243] MTRR default type: uncachable
[ 0.001243] MTRR fixed ranges enabled:
[ 0.001244] 00000-9FFFF write-back
[ 0.001244] A0000-BFFFF uncachable
[ 0.001245] C0000-CFFFF write-protect
[ 0.001245] D0000-E7FFF uncachable
[ 0.001246] E8000-FFFFF write-protect
[ 0.001246] MTRR variable ranges enabled:
[ 0.001247] 0 base 0000000000 mask 7F00000000 write-back
[ 0.001247] 1 base 0100000000 mask 7FF0000000 write-back
[ 0.001248] 2 base 0110000000 mask 7FF8000000 write-back
[ 0.001249] 3 base 0118000000 mask 7FFC000000 write-back
[ 0.001249] 4 base 011C000000 mask 7FFE000000 write-back
[ 0.001249] 5 base 011E000000 mask 7FFF000000 write-back
[ 0.001250] 6 base 00E0000000 mask 7FE0000000 uncachable
[ 0.001250] 7 disabled
[ 0.001250] 8 disabled
[ 0.001251] 9 disabled
[ 0.001494] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT
[ 0.001773] e820: update [mem 0xe0000000-0xffffffff] usable ==> reserved
[ 0.001776] last_pfn = 0xdf000 max_arch_pfn = 0x400000000
[ 0.001784] check: Scanning 1 areas for low memory corruption
[ 0.001787] Using GB pages for direct mapping
[ 0.001789] BRK [0x32801000, 0x32801fff] PGTABLE
[ 0.001789] BRK [0x32802000, 0x32802fff] PGTABLE
[ 0.001790] BRK [0x32803000, 0x32803fff] PGTABLE
[ 0.001805] BRK [0x32804000, 0x32804fff] PGTABLE
[ 0.001806] BRK [0x32805000, 0x32805fff] PGTABLE
[ 0.001845] BRK [0x32806000, 0x32806fff] PGTABLE
[ 0.001865] BRK [0x32807000, 0x32807fff] PGTABLE
[ 0.001925] BRK [0x32808000, 0x32808fff] PGTABLE
[ 0.001950] BRK [0x32809000, 0x32809fff] PGTABLE
[ 0.001988] BRK [0x3280a000, 0x3280afff] PGTABLE
[ 0.002011] BRK [0x3280b000, 0x3280bfff] PGTABLE
[ 0.002012] BRK [0x3280c000, 0x3280cfff] PGTABLE
[ 0.002094] ACPI: Early table checksum verification disabled
[ 0.002096] ACPI: RSDP 0x00000000000F0490 000024 (v02 ALASKA)
[ 0.002098] ACPI: XSDT 0x00000000DE867080 00007C (v01 ALASKA A M I 01072009 AMI 00010013)
[ 0.002102] ACPI: FACP 0x00000000DE872D40 00010C (v05 ALASKA A M I 01072009 AMI 00010013)
[ 0.002106] ACPI: DSDT 0x00000000DE867190 00BBAB (v02 ALASKA A M I 00000026 INTL 20120711)
[ 0.002108] ACPI: FACS 0x00000000DE88F080 000040
[ 0.002110] ACPI: APIC 0x00000000DE872E50 000092 (v03 ALASKA A M I 01072009 AMI 00010013)
[ 0.002111] ACPI: FPDT 0x00000000DE872EE8 000044 (v01 ALASKA A M I 01072009 AMI 00010013)
[ 0.002113] ACPI: SSDT 0x00000000DE872F30 000539 (v01 PmRef Cpu0Ist 00003000 INTL 20120711)
[ 0.002115] ACPI: SSDT 0x00000000DE873470 000AD8 (v01 PmRef CpuPm 00003000 INTL 20120711)
[ 0.002117] ACPI: SSDT 0x00000000DE873F48 0001C7 (v01 PmRef LakeTiny 00003000 INTL 20120711)
[ 0.002118] ACPI: MCFG 0x00000000DE874110 00003C (v01 ALASKA A M I 01072009 MSFT 00000097)
[ 0.002120] ACPI: HPET 0x00000000DE874150 000038 (v01 ALASKA A M I 01072009 AMI. 00000005)
[ 0.002122] ACPI: SSDT 0x00000000DE874188 00036D (v01 SataRe SataTabl 00001000 INTL 20120711)
[ 0.002124] ACPI: SSDT 0x00000000DE8744F8 0034DC (v01 SaSsdt SaSsdt 00003000 INTL 20091112)
[ 0.002125] ACPI: DMAR 0x00000000DE8779D8 000080 (v01 INTEL HSW 00000001 INTL 00000001)
[ 0.002130] ACPI: Local APIC address 0xfee00000
[ 0.002140] Zone ranges:
[ 0.002141] DMA [mem 0x0000000000001000-0x0000000000ffffff]
[ 0.002142] DMA32 [mem 0x0000000001000000-0x00000000ffffffff]
[ 0.002143] Normal [mem 0x0000000100000000-0x000000011effffff]
[ 0.002143] Movable zone start for each node
[ 0.002144] Early memory node ranges
[ 0.002145] node 0: [mem 0x0000000000001000-0x000000000009cfff]
[ 0.002145] node 0: [mem 0x0000000000100000-0x00000000cc5a0fff]
[ 0.002146] node 0: [mem 0x00000000cc5a8000-0x00000000ccd76fff]
[ 0.002147] node 0: [mem 0x00000000ccfe8000-0x00000000ddba1fff]
[ 0.002147] node 0: [mem 0x00000000ddedb000-0x00000000de0dcfff]
[ 0.002148] node 0: [mem 0x00000000defff000-0x00000000deffffff]
[ 0.002148] node 0: [mem 0x0000000100000000-0x000000011effffff]
[ 0.002229] Zeroed struct page in unavailable ranges: 9527 pages
[ 0.002230] Initmem setup node 0 [mem 0x0000000000001000-0x000000011effffff]
[ 0.002231] On node 0 totalpages: 1034953
[ 0.002232] DMA zone: 64 pages used for memmap
[ 0.002232] DMA zone: 21 pages reserved
[ 0.002233] DMA zone: 3996 pages, LIFO batch:0
[ 0.002266] DMA32 zone: 14125 pages used for memmap
[ 0.002267] DMA32 zone: 903981 pages, LIFO batch:63
[ 0.013829] Normal zone: 1984 pages used for memmap
[ 0.013830] Normal zone: 126976 pages, LIFO batch:31
[ 0.015576] ACPI: PM-Timer IO Port: 0x1808
[ 0.015578] ACPI: Local APIC address 0xfee00000
[ 0.015583] ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
[ 0.015592] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[ 0.015593] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.015594] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.015595] ACPI: IRQ0 used by override.
[ 0.015596] ACPI: IRQ9 used by override.
[ 0.015597] Using ACPI (MADT) for SMP configuration information
[ 0.015598] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[ 0.015601] smpboot: Allowing 8 CPUs, 0 hotplug CPUs
[ 0.015612] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[ 0.015613] PM: Registered nosave memory: [mem 0x0009d000-0x0009dfff]
[ 0.015614] PM: Registered nosave memory: [mem 0x0009e000-0x0009ffff]
[ 0.015614] PM: Registered nosave memory: [mem 0x000a0000-0x000dffff]
[ 0.015615] PM: Registered nosave memory: [mem 0x000e0000-0x000fffff]
[ 0.015616] PM: Registered nosave memory: [mem 0xcc5a1000-0xcc5a7fff]
[ 0.015617] PM: Registered nosave memory: [mem 0xccd77000-0xccfe7fff]
[ 0.015618] PM: Registered nosave memory: [mem 0xddba2000-0xddedafff]
[ 0.015619] PM: Registered nosave memory: [mem 0xde0dd000-0xde890fff]
[ 0.015619] PM: Registered nosave memory: [mem 0xde891000-0xdeffefff]
[ 0.015620] PM: Registered nosave memory: [mem 0xdf000000-0xf7ffffff]
[ 0.015621] PM: Registered nosave memory: [mem 0xf8000000-0xfbffffff]
[ 0.015621] PM: Registered nosave memory: [mem 0xfc000000-0xfebfffff]
[ 0.015622] PM: Registered nosave memory: [mem 0xfec00000-0xfec00fff]
[ 0.015622] PM: Registered nosave memory: [mem 0xfec01000-0xfecfffff]
[ 0.015623] PM: Registered nosave memory: [mem 0xfed00000-0xfed03fff]
[ 0.015623] PM: Registered nosave memory: [mem 0xfed04000-0xfed1bfff]
[ 0.015624] PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
[ 0.015624] PM: Registered nosave memory: [mem 0xfed20000-0xfedfffff]
[ 0.015625] PM: Registered nosave memory: [mem 0xfee00000-0xfee00fff]
[ 0.015625] PM: Registered nosave memory: [mem 0xfee01000-0xfeffffff]
[ 0.015626] PM: Registered nosave memory: [mem 0xff000000-0xffffffff]
[ 0.015627] [mem 0xdf000000-0xf7ffffff] available for PCI devices
[ 0.015630] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[ 0.066511] setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:8 nr_node_ids:1
[ 0.066788] percpu: Embedded 43 pages/cpu s145624 r0 d30504 u262144
[ 0.066793] pcpu-alloc: s145624 r0 d30504 u262144 alloc=1*2097152
[ 0.066794] pcpu-alloc: [0] 0 1 2 3 4 5 6 7
[ 0.066803] Built 1 zonelists, mobility grouping on. Total pages: 1018759
[ 0.066804] Kernel command line: root=/dev/sda3 resume=/dev/sda1 console=ttyS0,115200N8 panic=30 no_console_suspend
[ 0.066842] printk: log_buf_len individual max cpu contribution: 131072 bytes
[ 0.066842] printk: log_buf_len total cpu_extra contributions: 917504 bytes
[ 0.066843] printk: log_buf_len min size: 262144 bytes
[ 0.067096] printk: log_buf_len: 2097152 bytes
[ 0.067097] printk: early log buf free: 251192(95%)
[ 0.067483] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[ 0.067683] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[ 0.067730] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.089039] Memory: 3974020K/4139812K available (12291K kernel code, 709K rwdata, 2896K rodata, 920K init, 1280K bss, 165792K reserved, 0K cma-reserved)
[ 0.089131] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[ 0.089138] Kernel/User page tables isolation: enabled
[ 0.089185] rcu: Hierarchical RCU implementation.
[ 0.089186] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.089195] NR_IRQS: 4352, nr_irqs: 488, preallocated irqs: 16
[ 0.089400] random: get_random_bytes called from start_kernel+0x2fc/0x437 with crng_init=0
[ 0.092055] Console: colour VGA+ 80x25
[ 0.907099] printk: console [ttyS0] enabled
[ 0.911280] ACPI: Core revision 20190703
[ 0.915276] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484882848 ns
[ 0.924410] APIC: Switch to symmetric I/O mode setup
[ 0.929745] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.952412] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x30e44ad9a85, max_idle_ns: 440795380737 ns
[ 0.962921] Calibrating delay loop (skipped), value calculated using timer frequency.. 6783.73 BogoMIPS (lpj=13567464)
[ 0.966920] pid_max: default: 32768 minimum: 301
[ 0.970955] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.974933] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.978929] *** VALIDATE shmem ***
[ 0.983009] *** VALIDATE proc ***
[ 0.986337] *** VALIDATE cgroup1 ***
[ 0.986920] *** VALIDATE cgroup2 ***
[ 0.990949] mce: CPU0: Thermal monitoring enabled (TM1)
[ 0.994930] process: using mwait in idle threads
[ 0.998921] Last level iTLB entries: 4KB 1024, 2MB 1024, 4MB 1024
[ 1.002920] Last level dTLB entries: 4KB 1024, 2MB 1024, 4MB 1024, 1GB 4
[ 1.006921] Spectre V2 : Mitigation: Full generic retpoline
[ 1.010920] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch
[ 1.014920] Spectre V2 : Enabling Restricted Speculation for firmware calls
[ 1.018920] Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier
[ 1.022920] Spectre V2 : User space: Mitigation: STIBP via seccomp and prctl
[ 1.026920] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl and seccomp
[ 1.030921] MDS: Mitigation: Clear CPU buffers
[ 1.038984] Freeing SMP alternatives memory: 32K
[ 1.043156] TSC deadline timer enabled
[ 1.043157] smpboot: CPU0: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz (family: 0x6, model: 0x3c, stepping: 0x3)
[ 1.046973] Performance Events: PEBS fmt2+, Haswell events, 16-deep LBR, full-width counters, Intel PMU driver.
[ 1.050921] ... version: 3
[ 1.054920] ... bit width: 48
[ 1.058920] ... generic registers: 4
[ 1.062920] ... value mask: 0000ffffffffffff
[ 1.066920] ... max period: 00007fffffffffff
[ 1.070920] ... fixed-purpose events: 3
[ 1.074920] ... event mask: 000000070000000f
[ 1.078946] rcu: Hierarchical SRCU implementation.
[ 1.083618] NMI watchdog: Enabled. Permanently consumes one hw-PMU counter.
[ 1.086963] smp: Bringing up secondary CPUs ...
[ 1.090965] x86: Booting SMP configuration:
[ 1.094921] .... node #0, CPUs: #1 #2 #3 #4
[ 1.099930] MDS CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html for more details.
[ 1.106978] #5 #6 #7
[ 1.107395] smp: Brought up 1 node, 8 CPUs
[ 1.110922] smpboot: Max logical packages: 1
[ 1.114921] smpboot: Total of 8 processors activated (54269.85 BogoMIPS)
[ 1.120415] devtmpfs: initialized
[ 1.123025] PM: Registering ACPI NVS region [mem 0xcc5a1000-0xcc5a7fff] (28672 bytes)
[ 1.126921] PM: Registering ACPI NVS region [mem 0xde0dd000-0xde890fff] (8077312 bytes)
[ 1.131028] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 1.134922] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[ 1.138959] *** VALIDATE debugfs ***
[ 1.142562] PM: RTC time: 20:45:27, date: 2019-07-19
[ 1.142945] NET: Registered protocol family 16
[ 1.147005] cpuidle: using governor ladder
[ 1.150929] cpuidle: using governor menu
[ 1.154942] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
[ 1.158920] ACPI: bus type PCI registered
[ 1.162928] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xf8000000-0xfbffffff] (base 0xf8000000)
[ 1.166921] PCI: MMCONFIG at [mem 0xf8000000-0xfbffffff] reserved in E820
[ 1.170924] pmd_set_huge: Cannot satisfy [mem 0xf8000000-0xf8200000] with a huge-page mapping due to MTRR override.
[ 1.174949] PCI: Using configuration type 1 for base access
[ 1.178939] core: PMU erratum BJ122, BV98, HSD29 worked around, HT is on
[ 1.183033] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[ 1.188099] cryptd: max_cpu_qlen set to 1000
[ 1.190956] ACPI: Added _OSI(Module Device)
[ 1.194921] ACPI: Added _OSI(Processor Device)
[ 1.198923] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 1.202920] ACPI: Added _OSI(Processor Aggregator Device)
[ 1.210921] ACPI: Added _OSI(Linux-Dell-Video)
[ 1.214922] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[ 1.218920] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)
[ 1.231677] ACPI: 6 ACPI AML tables successfully acquired and loaded
[ 1.239947] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 1.247283] ACPI: Dynamic OEM Table Load:
[ 1.250923] ACPI: SSDT 0xFFFF94D199FC7C00 0003D3 (v01 PmRef Cpu0Cst 00003001 INTL 20120711)
[ 1.259402] ACPI: Dynamic OEM Table Load:
[ 1.262923] ACPI: SSDT 0xFFFF94D199729800 0005AA (v01 PmRef ApIst 00003000 INTL 20120711)
[ 1.275001] ACPI: Dynamic OEM Table Load:
[ 1.278922] ACPI: SSDT 0xFFFF94D19964F800 000119 (v01 PmRef ApCst 00003000 INTL 20120711)
[ 1.288603] ACPI: Interpreter enabled
[ 1.290941] ACPI: (supports S0 S1 S4 S5)
[ 1.294863] ACPI: Using IOAPIC for interrupt routing
[ 1.298942] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 1.311258] ACPI: Enabled 10 GPEs in block 00 to 3F
[ 1.322367] ACPI: Power Resource [FN00] (off)
[ 1.326978] ACPI: Power Resource [FN01] (off)
[ 1.330974] ACPI: Power Resource [FN02] (off)
[ 1.334974] ACPI: Power Resource [FN03] (off)
[ 1.338978] ACPI: Power Resource [FN04] (off)
[ 1.343531] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3e])
[ 1.350924] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3]
[ 1.359112] acpi PNP0A08:00: _OSC: platform does not support [PME]
[ 1.367047] acpi PNP0A08:00: _OSC: OS now controls [AER PCIeCapability LTR]
[ 1.374920] acpi PNP0A08:00: FADT indicates ASPM is unsupported, using BIOS configuration
[ 1.383181] PCI host bridge to bus 0000:00
[ 1.386921] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window]
[ 1.390921] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window]
[ 1.398920] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
[ 1.406920] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff window]
[ 1.414921] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff window]
[ 1.422920] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff window]
[ 1.430920] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff window]
[ 1.434920] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff window]
[ 1.442920] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff window]
[ 1.450920] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xfeafffff window]
[ 1.458921] pci_bus 0000:00: root bus resource [bus 00-3e]
[ 1.462927] pci 0000:00:00.0: [8086:0c00] type 00 class 0x060000
[ 1.470987] pci 0000:00:01.0: [8086:0c01] type 01 class 0x060400
[ 1.474950] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[ 1.483032] pci 0000:00:14.0: [8086:8c31] type 00 class 0x0c0330
[ 1.490937] pci 0000:00:14.0: reg 0x10: [mem 0xf7100000-0xf710ffff 64bit]
[ 1.494970] pci 0000:00:14.0: PME# supported from D3hot D3cold
[ 1.502977] pci 0000:00:16.0: [8086:8c3a] type 00 class 0x078000
[ 1.506937] pci 0000:00:16.0: reg 0x10: [mem 0xf711a000-0xf711a00f 64bit]
[ 1.514972] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[ 1.518982] pci 0000:00:1a.0: [8086:8c2d] type 00 class 0x0c0320
[ 1.526938] pci 0000:00:1a.0: reg 0x10: [mem 0xf7118000-0xf71183ff]
[ 1.530992] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[ 1.538982] pci 0000:00:1b.0: [8086:8c20] type 00 class 0x040300
[ 1.546937] pci 0000:00:1b.0: reg 0x10: [mem 0xf7110000-0xf7113fff 64bit]
[ 1.550978] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[ 1.558975] pci 0000:00:1c.0: [8086:8c10] type 01 class 0x060400
[ 1.562985] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 1.571016] pci 0000:00:1c.1: [8086:8c12] type 01 class 0x060400
[ 1.574986] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[ 1.583015] pci 0000:00:1c.3: [8086:8c16] type 01 class 0x060400
[ 1.586986] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[ 1.595018] pci 0000:00:1d.0: [8086:8c26] type 00 class 0x0c0320
[ 1.598938] pci 0000:00:1d.0: reg 0x10: [mem 0xf7117000-0xf71173ff]
[ 1.606992] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[ 1.614983] pci 0000:00:1f.0: [8086:8c5c] type 00 class 0x060100
[ 1.619064] pci 0000:00:1f.2: [8086:8c02] type 00 class 0x010601
[ 1.626933] pci 0000:00:1f.2: reg 0x10: [io 0xf070-0xf077]
[ 1.630925] pci 0000:00:1f.2: reg 0x14: [io 0xf060-0xf063]
[ 1.634925] pci 0000:00:1f.2: reg 0x18: [io 0xf050-0xf057]
[ 1.642925] pci 0000:00:1f.2: reg 0x1c: [io 0xf040-0xf043]
[ 1.646925] pci 0000:00:1f.2: reg 0x20: [io 0xf020-0xf03f]
[ 1.654925] pci 0000:00:1f.2: reg 0x24: [mem 0xf7116000-0xf71167ff]
[ 1.658948] pci 0000:00:1f.2: PME# supported from D3hot
[ 1.662973] pci 0000:00:1f.3: [8086:8c22] type 00 class 0x0c0500
[ 1.670934] pci 0000:00:1f.3: reg 0x10: [mem 0xf7115000-0xf71150ff 64bit]
[ 1.678937] pci 0000:00:1f.3: reg 0x20: [io 0xf000-0xf01f]
[ 1.683005] pci 0000:01:00.0: [10de:1187] type 00 class 0x030000
[ 1.690936] pci 0000:01:00.0: reg 0x10: [mem 0xf6000000-0xf6ffffff]
[ 1.694929] pci 0000:01:00.0: reg 0x14: [mem 0xe8000000-0xefffffff 64bit pref]
[ 1.702929] pci 0000:01:00.0: reg 0x1c: [mem 0xf0000000-0xf1ffffff 64bit pref]
[ 1.710926] pci 0000:01:00.0: reg 0x24: [io 0xe000-0xe07f]
[ 1.714926] pci 0000:01:00.0: reg 0x30: [mem 0xf7000000-0xf707ffff pref]
[ 1.722974] pci 0000:01:00.0: 32.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s x16 link at 0000:00:01.0 (capable of 126.016 Gb/s with 8 GT/s x16 link)
[ 1.734953] pci 0000:01:00.1: [10de:0e0a] type 00 class 0x040300
[ 1.742933] pci 0000:01:00.1: reg 0x10: [mem 0xf7080000-0xf7083fff]
[ 1.751026] pci 0000:00:01.0: PCI bridge to [bus 01]
[ 1.754921] pci 0000:00:01.0: bridge window [io 0xe000-0xefff]
[ 1.758921] pci 0000:00:01.0: bridge window [mem 0xf6000000-0xf70fffff]
[ 1.766922] pci 0000:00:01.0: bridge window [mem 0xe8000000-0xf1ffffff 64bit pref]
[ 1.774948] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 1.778967] pci 0000:03:00.0: [14f1:8880] type 00 class 0x040000
[ 1.786960] pci 0000:03:00.0: reg 0x10: [mem 0xf7200000-0xf73fffff 64bit]
[ 1.791076] pci 0000:03:00.0: supports D1 D2
[ 1.794920] pci 0000:03:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 1.814950] pci 0000:00:1c.1: PCI bridge to [bus 03]
[ 1.818924] pci 0000:00:1c.1: bridge window [mem 0xf7200000-0xf73fffff]
[ 1.826965] pci 0000:04:00.0: [10ec:8168] type 00 class 0x020000
[ 1.834947] pci 0000:04:00.0: reg 0x10: [io 0xd000-0xd0ff]
[ 1.838945] pci 0000:04:00.0: reg 0x18: [mem 0xf7400000-0xf7400fff 64bit]
[ 1.846935] pci 0000:04:00.0: reg 0x20: [mem 0xf2100000-0xf2103fff 64bit pref]
[ 1.851014] pci 0000:04:00.0: supports D1 D2
[ 1.858920] pci 0000:04:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 1.863002] pci 0000:00:1c.3: PCI bridge to [bus 04]
[ 1.870922] pci 0000:00:1c.3: bridge window [io 0xd000-0xdfff]
[ 1.874922] pci 0000:00:1c.3: bridge window [mem 0xf7400000-0xf74fffff]
[ 1.882923] pci 0000:00:1c.3: bridge window [mem 0xf2100000-0xf21fffff 64bit pref]
[ 1.890934] pci_bus 0000:00: on NUMA node 0
[ 1.891536] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 *11 12 14 15)
[ 1.898963] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 *10 11 12 14 15)
[ 1.902962] ACPI: PCI Interrupt Link [LNKC] (IRQs *3 4 5 6 10 11 12 14 15)
[ 1.910961] ACPI: PCI Interrupt Link [LNKD] (IRQs *3 4 6 10 11 12 14 15)
[ 1.918961] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[ 1.926961] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[ 1.934961] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 *11 12 14 15)
[ 1.938962] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 *10 11 12 14 15)
[ 1.947163] pci 0000:01:00.0: vgaarb: setting as boot VGA device
[ 1.950919] pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[ 1.962922] pci 0000:01:00.0: vgaarb: bridge control possible
[ 1.966920] vgaarb: loaded
[ 1.969669] SCSI subsystem initialized
[ 1.974924] libata version 3.00 loaded.
[ 1.974934] ACPI: bus type USB registered
[ 1.978925] usbcore: registered new interface driver usbfs
[ 1.982922] usbcore: registered new interface driver hub
[ 1.990933] usbcore: registered new device driver usb
[ 1.994926] videodev: Linux video capture interface: v2.00
[ 1.998935] Advanced Linux Sound Architecture Driver Initialized.
[ 2.006922] PCI: Using ACPI for IRQ routing
[ 2.012134] PCI: pci_cache_line_size set to 64 bytes
[ 2.012168] e820: reserve RAM buffer [mem 0x0009d800-0x0009ffff]
[ 2.012169] e820: reserve RAM buffer [mem 0xcc5a1000-0xcfffffff]
[ 2.012169] e820: reserve RAM buffer [mem 0xccd77000-0xcfffffff]
[ 2.012170] e820: reserve RAM buffer [mem 0xddba2000-0xdfffffff]
[ 2.012171] e820: reserve RAM buffer [mem 0xde0dd000-0xdfffffff]
[ 2.012171] e820: reserve RAM buffer [mem 0xdf000000-0xdfffffff]
[ 2.012172] e820: reserve RAM buffer [mem 0x11f000000-0x11fffffff]
[ 2.012258] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[ 2.018921] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[ 2.026926] clocksource: Switched to clocksource tsc-early
[ 2.032428] *** VALIDATE ramfs ***
[ 2.035837] pnp: PnP ACPI init
[ 2.038939] system 00:00: [mem 0xfed40000-0xfed44fff] has been reserved
[ 2.045546] system 00:00: Plug and Play ACPI device, IDs PNP0c01 (active)
[ 2.045679] system 00:01: [io 0x0680-0x069f] has been reserved
[ 2.051596] system 00:01: [io 0xffff] has been reserved
[ 2.056908] system 00:01: [io 0xffff] has been reserved
[ 2.062212] system 00:01: [io 0xffff] has been reserved
[ 2.067517] system 00:01: [io 0x1c00-0x1cfe] has been reserved
[ 2.073428] system 00:01: [io 0x1d00-0x1dfe] has been reserved
[ 2.079338] system 00:01: [io 0x1e00-0x1efe] has been reserved
[ 2.085249] system 00:01: [io 0x1f00-0x1ffe] has been reserved
[ 2.091161] system 00:01: [io 0x1800-0x18fe] has been reserved
[ 2.097072] system 00:01: [io 0x164e-0x164f] has been reserved
[ 2.102984] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 2.102997] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
[ 2.103030] system 00:03: [io 0x1854-0x1857] has been reserved
[ 2.108947] system 00:03: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[ 2.109049] system 00:04: [io 0x0a00-0x0a1f] has been reserved
[ 2.114963] system 00:04: [io 0x0a20-0x0a2f] has been reserved
[ 2.120873] system 00:04: [io 0x0a30-0x0a3f] has been reserved
[ 2.126785] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 2.127030] pnp 00:05: [dma 0 disabled]
[ 2.127119] pnp 00:05: Plug and Play ACPI device, IDs PNP0400 (active)
[ 2.127152] system 00:06: [io 0x04d0-0x04d1] has been reserved
[ 2.133069] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 2.133187] pnp 00:07: [dma 0 disabled]
[ 2.133214] pnp 00:07: Plug and Play ACPI device, IDs PNP0501 (active)
[ 2.133565] system 00:08: [mem 0xfed1c000-0xfed1ffff] has been reserved
[ 2.140176] system 00:08: [mem 0xfed10000-0xfed17fff] has been reserved
[ 2.146780] system 00:08: [mem 0xfed18000-0xfed18fff] has been reserved
[ 2.153384] system 00:08: [mem 0xfed19000-0xfed19fff] has been reserved
[ 2.159988] system 00:08: [mem 0xf8000000-0xfbffffff] has been reserved
[ 2.166593] system 00:08: [mem 0xfed20000-0xfed3ffff] has been reserved
[ 2.173199] system 00:08: [mem 0xfed90000-0xfed93fff] has been reserved
[ 2.179804] system 00:08: [mem 0xfed45000-0xfed8ffff] has been reserved
[ 2.186408] system 00:08: [mem 0xff000000-0xffffffff] has been reserved
[ 2.193012] system 00:08: [mem 0xfee00000-0xfeefffff] could not be reserved
[ 2.199965] system 00:08: [mem 0xf7fef000-0xf7feffff] has been reserved
[ 2.206577] system 00:08: [mem 0xf7ff0000-0xf7ff0fff] has been reserved
[ 2.213182] system 00:08: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 2.213364] pnp: PnP ACPI: found 9 devices
[ 2.218171] thermal_sys: Registered thermal governor 'fair_share'
[ 2.218172] thermal_sys: Registered thermal governor 'bang_bang'
[ 2.224259] thermal_sys: Registered thermal governor 'step_wise'
[ 2.230255] thermal_sys: Registered thermal governor 'user_space'
[ 2.240734] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[ 2.255680] pci 0000:00:1c.0: bridge window [io 0x1000-0x0fff] to [bus 02] add_size 1000
[ 2.263851] pci 0000:00:1c.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 02] add_size 200000 add_align 100000
[ 2.275308] pci 0000:00:1c.0: bridge window [mem 0x00100000-0x000fffff] to [bus 02] add_size 200000 add_align 100000
[ 2.285819] pci 0000:00:1c.0: BAR 8: assigned [mem 0xe0000000-0xe01fffff]
[ 2.292604] pci 0000:00:1c.0: BAR 9: assigned [mem 0xe0200000-0xe03fffff 64bit pref]
[ 2.300341] pci 0000:00:1c.0: BAR 7: assigned [io 0x2000-0x2fff]
[ 2.306433] pci 0000:00:01.0: PCI bridge to [bus 01]
[ 2.311392] pci 0000:00:01.0: bridge window [io 0xe000-0xefff]
[ 2.317484] pci 0000:00:01.0: bridge window [mem 0xf6000000-0xf70fffff]
[ 2.324262] pci 0000:00:01.0: bridge window [mem 0xe8000000-0xf1ffffff 64bit pref]
[ 2.331995] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 2.336960] pci 0000:00:1c.0: bridge window [io 0x2000-0x2fff]
[ 2.343047] pci 0000:00:1c.0: bridge window [mem 0xe0000000-0xe01fffff]
[ 2.349833] pci 0000:00:1c.0: bridge window [mem 0xe0200000-0xe03fffff 64bit pref]
[ 2.357572] pci 0000:00:1c.1: PCI bridge to [bus 03]
[ 2.362539] pci 0000:00:1c.1: bridge window [mem 0xf7200000-0xf73fffff]
[ 2.369328] pci 0000:00:1c.3: PCI bridge to [bus 04]
[ 2.374290] pci 0000:00:1c.3: bridge window [io 0xd000-0xdfff]
[ 2.380378] pci 0000:00:1c.3: bridge window [mem 0xf7400000-0xf74fffff]
[ 2.387164] pci 0000:00:1c.3: bridge window [mem 0xf2100000-0xf21fffff 64bit pref]
[ 2.394906] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7 window]
[ 2.401080] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff window]
[ 2.407253] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window]
[ 2.414118] pci_bus 0000:00: resource 7 [mem 0x000d0000-0x000d3fff window]
[ 2.420980] pci_bus 0000:00: resource 8 [mem 0x000d4000-0x000d7fff window]
[ 2.427847] pci_bus 0000:00: resource 9 [mem 0x000d8000-0x000dbfff window]
[ 2.434711] pci_bus 0000:00: resource 10 [mem 0x000dc000-0x000dffff window]
[ 2.441662] pci_bus 0000:00: resource 11 [mem 0x000e0000-0x000e3fff window]
[ 2.448614] pci_bus 0000:00: resource 12 [mem 0x000e4000-0x000e7fff window]
[ 2.455564] pci_bus 0000:00: resource 13 [mem 0xe0000000-0xfeafffff window]
[ 2.462516] pci_bus 0000:01: resource 0 [io 0xe000-0xefff]
[ 2.468079] pci_bus 0000:01: resource 1 [mem 0xf6000000-0xf70fffff]
[ 2.474338] pci_bus 0000:01: resource 2 [mem 0xe8000000-0xf1ffffff 64bit pref]
[ 2.481548] pci_bus 0000:02: resource 0 [io 0x2000-0x2fff]
[ 2.487113] pci_bus 0000:02: resource 1 [mem 0xe0000000-0xe01fffff]
[ 2.493371] pci_bus 0000:02: resource 2 [mem 0xe0200000-0xe03fffff 64bit pref]
[ 2.500582] pci_bus 0000:03: resource 1 [mem 0xf7200000-0xf73fffff]
[ 2.506841] pci_bus 0000:04: resource 0 [io 0xd000-0xdfff]
[ 2.512405] pci_bus 0000:04: resource 1 [mem 0xf7400000-0xf74fffff]
[ 2.518662] pci_bus 0000:04: resource 2 [mem 0xf2100000-0xf21fffff 64bit pref]
[ 2.525953] NET: Registered protocol family 2
[ 2.530359] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[ 2.538880] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 2.546821] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[ 2.554187] TCP: Hash tables configured (established 32768 bind 32768)
[ 2.560726] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 2.567428] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 2.574584] NET: Registered protocol family 1
[ 2.626992] pci 0000:00:1a.0: quirk_usb_early_handoff+0x0/0x680 took 46807 usecs
[ 2.658987] pci 0000:00:1d.0: quirk_usb_early_handoff+0x0/0x680 took 24018 usecs
[ 2.666389] pci 0000:01:00.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[ 2.674735] pci 0000:01:00.1: D0 power state depends on 0000:01:00.0
[ 2.681088] PCI: CLS 64 bytes, default 64
[ 2.685102] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 2.691534] software IO TLB: mapped [mem 0xd9ba2000-0xddba2000] (64MB)
[ 2.698462] check: Scanning for low memory corruption every 60 seconds
[ 2.705466] workingset: timestamp_bits=62 max_order=20 bucket_order=0
[ 2.712505] zbud: loaded
[ 2.715161] *** VALIDATE devpts ***
[ 2.718797] ntfs: driver 2.1.32 [Flags: R/O].
[ 2.723182] fuse: init (API version 7.31)
[ 2.727200] *** VALIDATE fuse ***
[ 2.730510] *** VALIDATE fuse ***
[ 2.736784] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[ 2.744172] io scheduler mq-deadline registered
[ 2.749117] intel_idle: MWAIT substates: 0x42120
[ 2.749118] intel_idle: v0.4.1 model 0x3C
[ 2.749325] intel_idle: lapic_timer_reliable_states 0xffffffff
[ 2.749361] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
[ 2.757720] ACPI: Power Button [PWRB]
[ 2.761407] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
[ 2.768815] ACPI: Power Button [PWRF]
[ 2.773196] thermal LNXTHERM:00: registered as thermal_zone0
[ 2.778853] ACPI: Thermal Zone [TZ00] (28 C)
[ 2.783314] thermal LNXTHERM:01: registered as thermal_zone1
[ 2.788972] ACPI: Thermal Zone [TZ01] (30 C)
[ 2.795025] thermal LNXTHERM:02: registered as thermal_zone2
[ 2.800683] ACPI: Thermal Zone [THRM] (50 C)
[ 2.805001] Serial: 8250/16550 driver, 32 ports, IRQ sharing disabled
[ 2.831793] 00:07: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 2.839726] Non-volatile memory driver v1.3
[ 2.844365] ACPI Warning: SystemIO range 0x0000000000001828-0x000000000000182F conflicts with OpRegion 0x0000000000001800-0x000000000000187F (\PMIO) (20190703/utaddress-213)
[ 2.859823] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 2.869987] ACPI Warning: SystemIO range 0x0000000000001C40-0x0000000000001C4F conflicts with OpRegion 0x0000000000001C00-0x0000000000001FFF (\GPR) (20190703/utaddress-213)
[ 2.885354] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 2.895512] ACPI Warning: SystemIO range 0x0000000000001C30-0x0000000000001C3F conflicts with OpRegion 0x0000000000001C00-0x0000000000001C3F (\GPRL) (20190703/utaddress-213)
[ 2.910957] ACPI Warning: SystemIO range 0x0000000000001C30-0x0000000000001C3F conflicts with OpRegion 0x0000000000001C00-0x0000000000001FFF (\GPR) (20190703/utaddress-213)
[ 2.926316] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 2.936474] ACPI Warning: SystemIO range 0x0000000000001C00-0x0000000000001C2F conflicts with OpRegion 0x0000000000001C00-0x0000000000001C3F (\GPRL) (20190703/utaddress-213)
[ 2.951918] ACPI Warning: SystemIO range 0x0000000000001C00-0x0000000000001C2F conflicts with OpRegion 0x0000000000001C00-0x0000000000001FFF (\GPR) (20190703/utaddress-213)
[ 2.967277] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 2.977437] lpc_ich: Resource conflict(s) found affecting gpio_ich
[ 2.983624] rdac: device handler registered
[ 2.987854] hp_sw: device handler registered
[ 2.992119] emc: device handler registered
[ 2.996268] alua: device handler registered
[ 3.000593] ahci 0000:00:1f.2: version 3.0
[ 3.000705] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 4 ports 6 Gbps 0x33 impl SATA mode
[ 3.008875] ahci 0000:00:1f.2: flags: 64bit ncq pm led clo pio slum part ems
[ 3.051443] scsi host0: ahci
[ 3.054568] scsi host1: ahci
[ 3.057689] scsi host2: ahci
[ 3.060688] scsi host3: ahci
[ 3.063694] scsi host4: ahci
[ 3.066635] scsi host5: ahci
[ 3.069541] ata1: SATA max UDMA/133 abar m2048@0xf7116000 port 0xf7116100 irq 28
[ 3.076930] ata2: SATA max UDMA/133 abar m2048@0xf7116000 port 0xf7116180 irq 28
[ 3.084314] ata3: DUMMY
[ 3.086757] ata4: DUMMY
[ 3.089202] ata5: SATA max UDMA/133 abar m2048@0xf7116000 port 0xf7116300 irq 28
[ 3.096587] ata6: SATA max UDMA/133 abar m2048@0xf7116000 port 0xf7116380 irq 28
[ 3.104022] r8169 0000:04:00.0: can't disable ASPM; OS doesn't have ASPM control
[ 3.123063] libphy: r8169: probed
[ 3.126477] r8169 0000:04:00.0 eth0: RTL8168g/8111g, b8:97:5a:62:36:25, XID 4c0, IRQ 29
[ 3.134473] r8169 0000:04:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[ 3.142988] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 3.149518] ehci-pci: EHCI PCI platform driver
[ 3.154025] ehci-pci 0000:00:1a.0: EHCI Host Controller
[ 3.159246] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[ 3.166644] ehci-pci 0000:00:1a.0: debug port 2
[ 3.175054] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[ 3.181846] ehci-pci 0000:00:1a.0: irq 16, io mem 0xf7118000
[ 3.203000] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[ 3.208986] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.02
[ 3.217248] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.224464] usb usb1: Product: EHCI Host Controller
[ 3.229336] usb usb1: Manufacturer: Linux 5.2.0-next-20190719-i5-dirty ehci_hcd
[ 3.236633] usb usb1: SerialNumber: 0000:00:1a.0
[ 3.241428] hub 1-0:1.0: USB hub found
[ 3.245207] hub 1-0:1.0: 2 ports detected
[ 3.249607] ehci-pci 0000:00:1d.0: EHCI Host Controller
[ 3.254834] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2
[ 3.262228] ehci-pci 0000:00:1d.0: debug port 2
[ 3.270645] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[ 3.277431] ehci-pci 0000:00:1d.0: irq 23, io mem 0xf7117000
[ 3.298999] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[ 3.304917] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.02
[ 3.313178] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.320396] usb usb2: Product: EHCI Host Controller
[ 3.325268] usb usb2: Manufacturer: Linux 5.2.0-next-20190719-i5-dirty ehci_hcd
[ 3.332564] usb usb2: SerialNumber: 0000:00:1d.0
[ 3.337376] hub 2-0:1.0: USB hub found
[ 3.341150] hub 2-0:1.0: 2 ports detected
[ 3.345513] xhci_hcd 0000:00:14.0: xHCI Host Controller
[ 3.350738] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
[ 3.359162] xhci_hcd 0000:00:14.0: hcc params 0x200077c1 hci version 0x100 quirks 0x0000000000009810
[ 3.368286] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[ 3.375386] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.02
[ 3.383645] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.390862] usb usb3: Product: xHCI Host Controller
[ 3.395732] usb usb3: Manufacturer: Linux 5.2.0-next-20190719-i5-dirty xhci-hcd
[ 3.403032] usb usb3: SerialNumber: 0000:00:14.0
[ 3.407821] hub 3-0:1.0: USB hub found
[ 3.411610] hub 3-0:1.0: 10 ports detected
[ 3.416328] xhci_hcd 0000:00:14.0: xHCI Host Controller
[ 3.416670] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 3.421558] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 4
[ 3.427756] ata5: SATA link down (SStatus 0 SControl 300)
[ 3.435118] xhci_hcd 0000:00:14.0: Host supports USB 3.0 SuperSpeed
[ 3.440531] ata6: SATA link down (SStatus 0 SControl 300)
[ 3.446832] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.02
[ 3.452178] ata2: SATA link down (SStatus 0 SControl 300)
[ 3.460420] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.466035] ata1.00: ATA-8: ST31000524AS, JC4B, max UDMA/133
[ 3.473037] usb usb4: Product: xHCI Host Controller
[ 3.473038] usb usb4: Manufacturer: Linux 5.2.0-next-20190719-i5-dirty xhci-hcd
[ 3.473038] usb usb4: SerialNumber: 0000:00:14.0
[ 3.473172] hub 4-0:1.0: USB hub found
[ 3.478698] ata1.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 32)
[ 3.480054] ata1.00: configured for UDMA/133
[ 3.483594] hub 4-0:1.0: 2 ports detected
[ 3.490957] scsi 0:0:0:0: Direct-Access ATA ST31000524AS JC4B PQ: 0 ANSI: 5
[ 3.495737] usbcore: registered new interface driver usb-storage
[ 3.499335] scsi 0:0:0:0: Attached scsi generic sg0 type 0
[ 3.499418] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[ 3.499425] sd 0:0:0:0: [sda] Write Protect is off
[ 3.499426] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 3.499437] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3.505857] i8042: PNP: No PS/2 controller found.
[ 3.559215] sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 >
[ 3.559916] input: PC Speaker as /devices/platform/pcspkr/input/input2
[ 3.565649] sd 0:0:0:0: [sda] Attached SCSI disk
[ 3.571706] rtc_cmos 00:02: RTC can wake from S4
[ 3.581051] rtc_cmos 00:02: registered as rtc0
[ 3.582928] usb 1-1: new high-speed USB device number 2 using ehci-pci
[ 3.585500] rtc_cmos 00:02: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[ 3.599737] i801_smbus 0000:00:1f.3: SPD Write Disable is set
[ 3.605488] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt
[ 3.611642] saa7146: register extension 'budget_av'
[ 3.616527] cx23885: cx23885 driver version 0.0.4 loaded
[ 3.621890] cx23885: CORE cx23885[0]: subsystem: 0070:c138, board: Hauppauge WinTV-HVR4400/HVR5500 [card=38,autodetected]
[ 3.687007] usb 2-1: new high-speed USB device number 2 using ehci-pci
[ 3.714999] tsc: Refined TSC clocksource calibration: 3392.144 MHz
[ 3.721182] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x30e5517d4e4, max_idle_ns: 440795261668 ns
[ 3.731200] clocksource: Switched to clocksource tsc
[ 3.747404] usb 1-1: New USB device found, idVendor=8087, idProduct=8008, bcdDevice= 0.05
[ 3.755580] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.763007] hub 1-1:1.0: USB hub found
[ 3.766863] hub 1-1:1.0: 4 ports detected
[ 3.847519] usb 2-1: New USB device found, idVendor=8087, idProduct=8000, bcdDevice= 0.05
[ 3.855705] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.863166] hub 2-1:1.0: USB hub found
[ 3.866999] hub 2-1:1.0: 6 ports detected
[ 3.982339] tveeprom: Hauppauge model 121029, rev B3F5, serial# 4035236800
[ 3.989210] tveeprom: MAC address is 00:0d:fe:84:d3:c0
[ 3.994342] tveeprom: tuner model is NXP 18271C2 (idx 155, type 54)
[ 4.000599] tveeprom: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xf4)
[ 4.010149] tveeprom: audio processor is CX23888 (idx 40)
[ 4.015540] tveeprom: decoder processor is CX23888 (idx 34)
[ 4.021104] tveeprom: has radio, has IR receiver, has no IR transmitter
[ 4.027709] cx23885: cx23885[0]: hauppauge eeprom: model=121029
[ 4.033636] tea5767_autodetection: not probed - driver disabled by Kconfig
[ 4.040500] tuner: 2-0060: Tuner -1 found with type(s) Radio TV.
[ 4.046500] tda18271 2-0060: creating new instance
[ 4.053324] tda18271: TDA18271HD/C1 detected @ 2-0060
[ 4.332335] cx23885: cx23885[0]: registered device video0 [v4l2]
[ 4.338449] cx23885: cx23885[0]: registered device vbi0
[ 4.343875] cx23885: cx23885[0]: alsa: registered ALSA audio device
[ 4.343876] cx23885: cx23885_dvb_register() allocating 1 frontend(s)
[ 4.350224] cx23885: cx23885[0]: cx23885 based dvb card
[ 4.356903] tda10071 1-0005: NXP TDA10071 successfully identified
[ 4.363341] a8293 1-000b: Allegro A8293 SEC successfully attached
[ 4.369767] dvbdev: DVB: registering new adapter (cx23885[0])
[ 4.375511] cx23885 0000:03:00.0: DVB: registering adapter 0 frontend 0 (NXP TDA10071)...
[ 4.383968] cx23885: cx23885_dvb_register() allocating 1 frontend(s)
[ 4.390315] cx23885: cx23885[0]: cx23885 based dvb card
[ 4.398168] si2165 1-0064: Detected Silicon Labs Si2165-D (type 7, rev 3)
[ 4.404954] tda18271 2-0060: attaching existing instance
[ 4.410602] dvbdev: DVB: registering new adapter (cx23885[0])
[ 4.416339] cx23885 0000:03:00.0: DVB: registering adapter 1 frontend 0 (Silicon Labs Si2165 DVB-T DVB-C)...
[ 4.426286] cx23885: cx23885_dev_checkrevision() Hardware revision = 0xd0
[ 4.433068] cx23885: cx23885[0]/0: found at 0000:03:00.0, rev: 4, irq: 17, latency: 0, mmio: 0xf7200000
[ 4.442480] usbcore: registered new interface driver dvb_usb_ttusb2
[ 4.448964] it87: Found IT8728F chip at 0xa30, revision 1
[ 4.454377] it87: Beeping is supported
[ 4.458125] ACPI Warning: SystemIO range 0x0000000000000A35-0x0000000000000A36 conflicts with OpRegion 0x0000000000000A35-0x0000000000000A36 (\SENP) (20190703/utaddress-213)
[ 4.473577] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 4.483970] device-mapper: ioctl: 4.40.0-ioctl (2019-01-18) initialised: dm-devel@redhat.com
[ 4.492404] intel_pstate: Intel P-state driver initializing
[ 4.498168] hidraw: raw HID events driver (C) Jiri Kosina
[ 4.503614] usbcore: registered new interface driver usbhid
[ 4.509192] usbhid: USB HID core driver
[ 4.513676] snd_hda_intel 0000:01:00.1: Disabling MSI
[ 4.519126] microcode: sig=0x306c3, pf=0x2, revision=0x27
[ 4.524689] microcode: Microcode Update Driver: v2.2.
[ 4.524694] AVX2 version of gcm_enc/dec engaged.
[ 4.532306] snd_hda_codec_generic hdaudioC1D2: autoconfig for Generic: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:line
[ 4.534352] AES CTR mode by8 optimization enabled
[ 4.544775] snd_hda_codec_generic hdaudioC1D2: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 4.549890] sched_clock: Marking stable (3704332450, 845554743)->(4680208972, -130321779)
[ 4.557383] snd_hda_codec_generic hdaudioC1D2: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 4.557384] snd_hda_codec_generic hdaudioC1D2: mono: mono_out=0x0
[ 4.579457] snd_hda_codec_generic hdaudioC1D2: dig-out=0x1e/0x0
[ 4.579596] zswap: loaded using pool lzo/zbud
[ 4.585644] snd_hda_codec_generic hdaudioC1D2: inputs:
[ 4.585646] snd_hda_codec_generic hdaudioC1D2: Front Mic=0x19
[ 4.601564] snd_hda_codec_generic hdaudioC1D2: Rear Mic=0x18
[ 4.601585] *** VALIDATE pstore ***
[ 4.607648] snd_hda_codec_generic hdaudioC1D2: Line=0x1a
[ 4.611360] PM: Magic number: 11:791:801
[ 4.621025] acpi PNP0F03:00: hash matches
[ 4.622570] random: fast init done
[ 4.628430] rtc_cmos 00:02: setting system clock to 2019-07-19T20:45:31 UTC (1563569131)
[ 4.632127] input: HDA Intel PCH Front Mic as /devices/pci0000:00/0000:00:1b.0/sound/card1/input3
[ 4.644810] PM: Image not found (code -22)
[ 4.645364] ALSA device list:
[ 4.645426] input: HDA Intel PCH Rear Mic as /devices/pci0000:00/0000:00:1b.0/sound/card1/input4
[ 4.648330] #0: Conexant CX23885 at cx23885[0]
[ 4.662374] input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1b.0/sound/card1/input5
[ 4.670840] input: HDA Intel PCH Line Out as /devices/pci0000:00/0000:00:1b.0/sound/card1/input6
[ 4.679728] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card1/input7
[ 4.691436] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null)
[ 4.699114] VFS: Mounted root (ext4 filesystem) readonly on device 8:3.
[ 4.723892] devtmpfs: mounted
[ 4.727068] Freeing unused kernel image memory: 920K
[ 4.732061] Write protecting the kernel read-only data: 18432k
[ 4.738206] Freeing unused kernel image memory: 2012K
[ 4.743447] Freeing unused kernel image memory: 1200K
[ 4.753667] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[ 4.760102] x86/mm: Checking user space page tables
[ 4.769946] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[ 4.776380] Run /sbin/init as init process
[ 4.983011] snd_hda_codec_generic hdaudioC2D0: ignore pin 0x6, too many assigned pins
[ 4.999019] snd_hda_codec_generic hdaudioC2D0: ignore pin 0x7, too many assigned pins
[ 5.006849] snd_hda_codec_generic hdaudioC2D0: autoconfig for Generic: line_outs=0 (0x0/0x0/0x0/0x0/0x0) type:line
[ 5.017186] snd_hda_codec_generic hdaudioC2D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 5.025105] snd_hda_codec_generic hdaudioC2D0: hp_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 5.032574] snd_hda_codec_generic hdaudioC2D0: mono: mono_out=0x0
[ 5.038917] snd_hda_codec_generic hdaudioC2D0: dig-out=0x4/0x5
[ 5.045003] snd_hda_codec_generic hdaudioC2D0: inputs:
[ 5.191112] input: HDA NVidia HDMI as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card2/input8
[ 5.200544] input: HDA NVidia HDMI as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card2/input9
[ 5.812700] systemd[1]: Failed to insert module 'autofs4': No such file or directory
[ 5.861648] systemd[1]: systemd 234 running in system mode. (+PAM -AUDIT +SELINUX -IMA +APPARMOR -SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT -GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN default-hierarchy=hybrid)
[ 5.899093] systemd[1]: Detected architecture x86-64.
[ 5.935238] systemd[1]: Set hostname to <maggie>.
[ 7.154196] systemd[1]: Binding to IPv6 address not available since kernel does not support IPv6.
[ 7.163173] systemd[1]: Binding to IPv6 address not available since kernel does not support IPv6.
[ 7.179296] systemd[1]: nss-lookup.target: Dependency Before=nss-lookup.target dropped
[ 7.448351] random: systemd: uninitialized urandom read (16 bytes read)
[ 7.455083] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[ 7.479079] random: systemd: uninitialized urandom read (16 bytes read)
[ 7.485761] systemd[1]: Listening on LVM2 poll daemon socket.
[ 7.507072] random: systemd: uninitialized urandom read (16 bytes read)
[ 7.513753] systemd[1]: Listening on Device-mapper event daemon FIFOs.
[ 7.535179] systemd[1]: Listening on Journal Socket.
[ 8.252098] EXT4-fs (sda3): re-mounted. Opts: (null)
[ 8.464829] systemd-journald[182]: Received request to flush runtime journal from PID 1
[ 9.247678] random: crng init done
[ 9.251147] random: 7 urandom warning(s) missed due to ratelimiting
[ 10.195027] Adding 2097148k swap on /dev/sda1. Priority:42 extents:1 across:2097148k FS
[ 10.775161] EXT4-fs (sda6): barriers disabled
[ 10.787685] EXT4-fs (sda6): mounted filesystem with writeback data mode. Opts: data=writeback,barrier=0
[ 10.829063] EXT4-fs (sda5): barriers disabled
[ 10.837089] EXT4-fs (sda5): mounted filesystem with writeback data mode. Opts: data=writeback,barrier=0
[ 14.921329] Generic Realtek PHY r8169-400:00: attached PHY driver [Generic Realtek PHY] (mii_bus:phy_addr=r8169-400:00, irq=IGNORE)
[ 15.043898] r8169 0000:04:00.0 eth0: Link is Down
[ 16.628325] r8169 0000:04:00.0 eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 19.163718] tda10071 1-0005: found a 'NXP TDA10071' in cold state, will try to load a firmware
[ 19.163719] tda10071 1-0005: downloading firmware from file 'dvb-fe-tda10071.fw'
[ 23.943807] tda10071 1-0005: firmware version 1.21.31.2
[ 23.943809] tda10071 1-0005: found a 'NXP TDA10071' in warm state
[ 24.055347] si2165 1-0064: downloading firmware from file 'dvb-demod-si2165.fw' size=5768
[ 24.058419] si2165 1-0064: si2165_upload_firmware: extracted patch_version=0x9a, block_count=0x27, crc_expected=0xcc0a
[ 25.141017] si2165 1-0064: fw load finished
^ permalink raw reply
* Re: [PATCH iproute2 net-next v5 1/5] etf: Add skip_sock_check
From: Patel, Vedang @ 2019-07-19 21:39 UTC (permalink / raw)
To: Stephen Hemminger
Cc: netdev@vger.kernel.org, Jamal Hadi Salim, Cong Wang, Jiri Pirko,
Gomes, Vinicius, Dorileo, Leandro, jakub.kicinski@netronome.com,
m-karicheri2@ti.com, dsahern@gmail.com
In-Reply-To: <20190718221227.46631096@hermes.lan>
> On Jul 18, 2019, at 10:12 PM, Stephen Hemminger <stephen@networkplumber.org> wrote:
>
> On Thu, 18 Jul 2019 12:55:39 -0700
> Vedang Patel <vedang.patel@intel.com> wrote:
>
>> - print_string(PRINT_ANY, "deadline_mode", "deadline_mode %s",
>> + print_string(PRINT_ANY, "deadline_mode", "deadline_mode %s ",
>> (qopt->flags & TC_ETF_DEADLINE_MODE_ON) ? "on" : "off");
>> + print_string(PRINT_ANY, "skip_sock_check", "skip_sock_check %s",
>> + (qopt->flags & TC_ETF_SKIP_SOCK_CHECK) ? "on" : "off");
>
> These should really be boolean options in JSON, not string values.
Ok. Sending out a patch to fix this.
Thanks,
Vedang
^ permalink raw reply
* [PATCH iproute2] etf: make printing of variable JSON friendly
From: Vedang Patel @ 2019-07-19 21:40 UTC (permalink / raw)
To: netdev
Cc: jhs, xiyou.wangcong, jiri, stephen, vinicius.gomes,
leandro.maciel.dorileo, dsahern, Vedang Patel
In iproute2 txtime-assist series, it was pointed out that print_bool()
should be used to print binary values. This is to make it JSON friendly.
So, make the corresponding changes in ETF.
Fixes: 8ccd49383cdc ("etf: Add skip_sock_check")
Reported-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Vedang Patel <vedang.patel@intel.com>
---
tc/q_etf.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tc/q_etf.c b/tc/q_etf.c
index c2090589bc64..307c50eed48b 100644
--- a/tc/q_etf.c
+++ b/tc/q_etf.c
@@ -176,12 +176,12 @@ static int etf_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt)
get_clock_name(qopt->clockid));
print_uint(PRINT_ANY, "delta", "delta %d ", qopt->delta);
- print_string(PRINT_ANY, "offload", "offload %s ",
- (qopt->flags & TC_ETF_OFFLOAD_ON) ? "on" : "off");
- print_string(PRINT_ANY, "deadline_mode", "deadline_mode %s ",
- (qopt->flags & TC_ETF_DEADLINE_MODE_ON) ? "on" : "off");
- print_string(PRINT_ANY, "skip_sock_check", "skip_sock_check %s",
- (qopt->flags & TC_ETF_SKIP_SOCK_CHECK) ? "on" : "off");
+ if (qopt->flags & TC_ETF_OFFLOAD_ON)
+ print_bool(PRINT_ANY, "offload", "offload ", true);
+ if (qopt->flags & TC_ETF_DEADLINE_MODE_ON)
+ print_bool(PRINT_ANY, "deadline_mode", "deadline_mode ", true);
+ if (qopt->flags & TC_ETF_SKIP_SOCK_CHECK)
+ print_bool(PRINT_ANY, "skip_sock_check", "skip_sock_check", true);
return 0;
}
--
2.7.3
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox