* Re: [patch net-next rfc 7/7] net: rtnetlink: add possibility to use alternative names as message handle
From: Jiri Pirko @ 2019-07-20 7:22 UTC (permalink / raw)
To: Jakub Kicinski
Cc: netdev, davem, sthemmin, dsahern, dcbw, mkubecek, andrew, parav,
saeedm, mlxsw
In-Reply-To: <20190719205927.6638187f@cakuba>
Sat, Jul 20, 2019 at 05:59:27AM CEST, jakub.kicinski@netronome.com wrote:
>On Fri, 19 Jul 2019 13:00:29 +0200, Jiri Pirko wrote:
>> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
>> index 1fa30d514e3f..68ad12a7fc4d 100644
>> --- a/net/core/rtnetlink.c
>> +++ b/net/core/rtnetlink.c
>> @@ -1793,6 +1793,8 @@ static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
>> [IFLA_MAX_MTU] = { .type = NLA_U32 },
>> [IFLA_ALT_IFNAME_MOD] = { .type = NLA_STRING,
>> .len = ALTIFNAMSIZ - 1 },
>> + [IFLA_ALT_IFNAME] = { .type = NLA_STRING,
>> + .len = ALTIFNAMSIZ - 1 },
>
>What's the disadvantage of just letting IFLA_IFNAME to get longer
>on input? Is it just that the handling would be asymmetrical?
Hmm, that might work. But the problem is that sometimes the IFLA_IFNAME
is used as a handle, but sometimes it is used to carry the ifname
(newlink, changename). That might be a bit confusing and the code would
be harder to follow. I don't know...
>
>> };
>>
>> static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = {
>
^ permalink raw reply
* Re: [patch net-next rfc 3/7] net: rtnetlink: add commands to add and delete alternative ifnames
From: Jiri Pirko @ 2019-07-20 7:20 UTC (permalink / raw)
To: Jakub Kicinski
Cc: netdev, davem, sthemmin, dsahern, dcbw, mkubecek, andrew, parav,
saeedm, mlxsw
In-Reply-To: <20190719205849.11d17192@cakuba>
Sat, Jul 20, 2019 at 05:58:49AM CEST, jakub.kicinski@netronome.com wrote:
>On Fri, 19 Jul 2019 13:00:25 +0200, Jiri Pirko wrote:
>> +int netdev_name_node_alt_destroy(struct net_device *dev, char *name)
>> +{
>> + struct netdev_name_node *name_node;
>> + struct net *net = dev_net(dev);
>> +
>> + name_node = netdev_name_node_lookup(net, name);
>> + if (!name_node)
>> + return -ENOENT;
>> + __netdev_name_node_alt_destroy(name_node);
>> +
>> + return 0;
>> +}
>> +EXPORT_SYMBOL(netdev_name_node_alt_destroy);
>
>I was surprised to see the exports are they strictly necessary?
Well I call them from net/core/rtnetlink.c, so yes. Maybe I'm missing
your point...
>Just wondering..
>
>> @@ -8258,6 +8313,7 @@ static void rollback_registered_many(struct list_head *head)
>> dev_uc_flush(dev);
>> dev_mc_flush(dev);
>>
>> + netdev_name_node_alt_flush(dev);
>> netdev_name_node_free(dev->name_node);
>>
>> if (dev->netdev_ops->ndo_uninit)
>> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
>> index 1ee6460f8275..7a2010b16e10 100644
>> --- a/net/core/rtnetlink.c
>> +++ b/net/core/rtnetlink.c
>> @@ -1750,6 +1750,8 @@ static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
>> [IFLA_CARRIER_DOWN_COUNT] = { .type = NLA_U32 },
>> [IFLA_MIN_MTU] = { .type = NLA_U32 },
>> [IFLA_MAX_MTU] = { .type = NLA_U32 },
>> + [IFLA_ALT_IFNAME_MOD] = { .type = NLA_STRING,
>> + .len = ALTIFNAMSIZ - 1 },
>
>Should we set:
>
> .strict_start_type = IFLA_ALT_IFNAME_MOD
Probably yes. Will add it.
>
>?
>
>> };
>>
>> static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = {
^ permalink raw reply
* Re: [patch net-next rfc 4/7] net: rtnetlink: put alternative names to getlink message
From: Jiri Pirko @ 2019-07-20 7:17 UTC (permalink / raw)
To: Jakub Kicinski
Cc: netdev, davem, sthemmin, dsahern, dcbw, mkubecek, andrew, parav,
saeedm, mlxsw
In-Reply-To: <20190719205914.3fc786f6@cakuba>
Sat, Jul 20, 2019 at 05:59:14AM CEST, jakub.kicinski@netronome.com wrote:
>On Fri, 19 Jul 2019 13:00:26 +0200, Jiri Pirko wrote:
>> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
>> index 7a2010b16e10..f11a2367037d 100644
>> --- a/net/core/rtnetlink.c
>> +++ b/net/core/rtnetlink.c
>> @@ -980,6 +980,18 @@ static size_t rtnl_xdp_size(void)
>> return xdp_size;
>> }
>>
>> +static size_t rtnl_alt_ifname_list_size(const struct net_device *dev)
>> +{
>> + struct netdev_name_node *name_node;
>> + size_t size = nla_total_size(0);
>> +
>> + if (list_empty(&dev->name_node->list))
>> + return 0;
>
>Nit: it would make the intent a tiny bit clearer if
>
> size = nla_total_size(0);
>
>was after this early return.
Sure.
>
>> + list_for_each_entry(name_node, &dev->name_node->list, list)
>> + size += nla_total_size(ALTIFNAMSIZ);
>
>Since we have the structure I wonder if it would be worthwhile to store
Which structure?
>the exact size in it?
>
>> + return size;
>> +}
>> +
^ 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-20 7:15 UTC (permalink / raw)
To: Stephen Hemminger
Cc: netdev, davem, jakub.kicinski, sthemmin, dsahern, dcbw, mkubecek,
andrew, parav, saeedm, mlxsw
In-Reply-To: <20190719132649.700e6a5c@hermes.lan>
Fri, Jul 19, 2019 at 10:26:49PM CEST, stephen@networkplumber.org wrote:
>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.
Okay. Will process this in. Thanks!
>
>
> 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 nf,v5 0/4] flow_offload fixes
From: David Miller @ 2019-07-20 4:28 UTC (permalink / raw)
To: pablo; +Cc: netfilter-devel, netdev, jiri, jakub.kicinski, pshelar
In-Reply-To: <20190719162016.10243-1-pablo@netfilter.org>
From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Fri, 19 Jul 2019 18:20:12 +0200
> The following patchset contains fixes for the flow_offload infrastructure:
Series applied, please fix the build failure reported by Jakub.
^ permalink raw reply
* Re: [PATCH 00/14] Netfilter fixes for net
From: David Miller @ 2019-07-20 4:25 UTC (permalink / raw)
To: pablo; +Cc: netfilter-devel, netdev
In-Reply-To: <20190719164517.29496-1-pablo@netfilter.org>
From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Fri, 19 Jul 2019 18:45:03 +0200
> The following patchset contains Netfilter fixes for net:
...
> You can pull these changes from:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf.git
Pulled.
^ permalink raw reply
* Re: [patch net-next rfc 7/7] net: rtnetlink: add possibility to use alternative names as message handle
From: Jakub Kicinski @ 2019-07-20 3:59 UTC (permalink / raw)
To: Jiri Pirko
Cc: netdev, davem, sthemmin, dsahern, dcbw, mkubecek, andrew, parav,
saeedm, mlxsw
In-Reply-To: <20190719110029.29466-8-jiri@resnulli.us>
On Fri, 19 Jul 2019 13:00:29 +0200, Jiri Pirko wrote:
> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
> index 1fa30d514e3f..68ad12a7fc4d 100644
> --- a/net/core/rtnetlink.c
> +++ b/net/core/rtnetlink.c
> @@ -1793,6 +1793,8 @@ static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
> [IFLA_MAX_MTU] = { .type = NLA_U32 },
> [IFLA_ALT_IFNAME_MOD] = { .type = NLA_STRING,
> .len = ALTIFNAMSIZ - 1 },
> + [IFLA_ALT_IFNAME] = { .type = NLA_STRING,
> + .len = ALTIFNAMSIZ - 1 },
What's the disadvantage of just letting IFLA_IFNAME to get longer
on input? Is it just that the handling would be asymmetrical?
> };
>
> static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = {
^ permalink raw reply
* Re: [patch net-next rfc 3/7] net: rtnetlink: add commands to add and delete alternative ifnames
From: Jakub Kicinski @ 2019-07-20 3:58 UTC (permalink / raw)
To: Jiri Pirko
Cc: netdev, davem, sthemmin, dsahern, dcbw, mkubecek, andrew, parav,
saeedm, mlxsw
In-Reply-To: <20190719110029.29466-4-jiri@resnulli.us>
On Fri, 19 Jul 2019 13:00:25 +0200, Jiri Pirko wrote:
> +int netdev_name_node_alt_destroy(struct net_device *dev, char *name)
> +{
> + struct netdev_name_node *name_node;
> + struct net *net = dev_net(dev);
> +
> + name_node = netdev_name_node_lookup(net, name);
> + if (!name_node)
> + return -ENOENT;
> + __netdev_name_node_alt_destroy(name_node);
> +
> + return 0;
> +}
> +EXPORT_SYMBOL(netdev_name_node_alt_destroy);
I was surprised to see the exports are they strictly necessary?
Just wondering..
> @@ -8258,6 +8313,7 @@ static void rollback_registered_many(struct list_head *head)
> dev_uc_flush(dev);
> dev_mc_flush(dev);
>
> + netdev_name_node_alt_flush(dev);
> netdev_name_node_free(dev->name_node);
>
> if (dev->netdev_ops->ndo_uninit)
> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
> index 1ee6460f8275..7a2010b16e10 100644
> --- a/net/core/rtnetlink.c
> +++ b/net/core/rtnetlink.c
> @@ -1750,6 +1750,8 @@ static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
> [IFLA_CARRIER_DOWN_COUNT] = { .type = NLA_U32 },
> [IFLA_MIN_MTU] = { .type = NLA_U32 },
> [IFLA_MAX_MTU] = { .type = NLA_U32 },
> + [IFLA_ALT_IFNAME_MOD] = { .type = NLA_STRING,
> + .len = ALTIFNAMSIZ - 1 },
Should we set:
.strict_start_type = IFLA_ALT_IFNAME_MOD
?
> };
>
> static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = {
^ permalink raw reply
* Re: [patch net-next rfc 4/7] net: rtnetlink: put alternative names to getlink message
From: Jakub Kicinski @ 2019-07-20 3:59 UTC (permalink / raw)
To: Jiri Pirko
Cc: netdev, davem, sthemmin, dsahern, dcbw, mkubecek, andrew, parav,
saeedm, mlxsw
In-Reply-To: <20190719110029.29466-5-jiri@resnulli.us>
On Fri, 19 Jul 2019 13:00:26 +0200, Jiri Pirko wrote:
> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
> index 7a2010b16e10..f11a2367037d 100644
> --- a/net/core/rtnetlink.c
> +++ b/net/core/rtnetlink.c
> @@ -980,6 +980,18 @@ static size_t rtnl_xdp_size(void)
> return xdp_size;
> }
>
> +static size_t rtnl_alt_ifname_list_size(const struct net_device *dev)
> +{
> + struct netdev_name_node *name_node;
> + size_t size = nla_total_size(0);
> +
> + if (list_empty(&dev->name_node->list))
> + return 0;
Nit: it would make the intent a tiny bit clearer if
size = nla_total_size(0);
was after this early return.
> + list_for_each_entry(name_node, &dev->name_node->list, list)
> + size += nla_total_size(ALTIFNAMSIZ);
Since we have the structure I wonder if it would be worthwhile to store
the exact size in it?
> + return size;
> +}
> +
^ permalink raw reply
* Re: [PATCH ghak90 V6 02/10] audit: add container id
From: James Bottomley @ 2019-07-20 2:19 UTC (permalink / raw)
To: Eric W. Biederman, Paul Moore
Cc: nhorman, linux-api, containers, LKML, omosnace, dhowells,
Linux-Audit Mailing List, netfilter-devel, simo, netdev,
linux-fsdevel, Eric Paris, sgrubb
In-Reply-To: <87muhadnfr.fsf@xmission.com>
On Fri, 2019-07-19 at 11:00 -0500, Eric W. Biederman wrote:
> Paul Moore <paul@paul-moore.com> writes:
>
> > On Wed, Jul 17, 2019 at 8:52 PM Richard Guy Briggs <rgb@redhat.com>
> > wrote:
> > > On 2019-07-16 19:30, Paul Moore wrote:
> >
> > ...
> >
> > > > We can trust capable(CAP_AUDIT_CONTROL) for enforcing audit
> > > > container ID policy, we can not trust
> > > > ns_capable(CAP_AUDIT_CONTROL).
> > >
> > > Ok. So does a process in a non-init user namespace have two (or
> > > more) sets of capabilities stored in creds, one in the
> > > init_user_ns, and one in current_user_ns? Or does it get
> > > stripped of all its capabilities in init_user_ns once it has its
> > > own set in current_user_ns? If the former, then we can use
> > > capable(). If the latter, we need another mechanism, as
> > > you have suggested might be needed.
> >
> > Unfortunately I think the problem is that ultimately we need to
> > allow any container orchestrator that has been given privileges to
> > manage the audit container ID to also grant that privilege to any
> > of the child process/containers it manages. I don't believe we can
> > do that with capabilities based on the code I've looked at, and the
> > discussions I've had, but if you find a way I would leave to hear
> > it.
> > > If some random unprivileged user wants to fire up a container
> > > orchestrator/engine in his own user namespace, then audit needs
> > > to be namespaced. Can we safely discard this scenario for now?
> >
> > I think the only time we want to allow a container orchestrator to
> > manage the audit container ID is if it has been granted that
> > privilege by someone who has that privilege already. In the zero-
> > container, or single-level of containers, case this is relatively
> > easy, and we can accomplish it using CAP_AUDIT_CONTROL as the
> > privilege. If we start nesting container orchestrators it becomes
> > more complicated as we need to be able to support granting and
> > inheriting this privilege in a manner; this is why I suggested a
> > new mechanism *may* be necessary.
>
>
> Let me segway a bit and see if I can get this conversation out of the
> rut it seems to have drifted into.
>
> Unprivileged containers and nested containers exist today and are
> going to become increasingly common. Let that be a given.
Agree fully.
> As I recall the interesting thing for audit to log is actions by
> privileged processes. Audit can log more but generally configuring
> logging by of the actions of unprivileged users is effectively a self
> DOS.
>
> So I think the initial implementation can safely ignore actions of
> nested containers and unprivileged containers because you don't care
> about their actions.
I don't entirely agree here: remember there might be two consumers for
the audit data: the physical system owner (checking up on the tenants)
and the tenant themselves who might be watching either their sub
tenants or their users (and who, obviously, won't get the full audit
stream). In either case, the tenant may or may not be privileged, and
if they're privileged, it might be through the user_ns in which case
the physical system owner and the kernel would see them as "not
privileged". So I think we are ultimately going to need the ability to
audit unprivileged containers.
I also think audit has a role to play in intrusion detection and
forensic analysis for fully unprivileged containers running external
services, but I don't think we have to solve that case immediately.
> If we start allow running audit in a container then we need to deal
> with all of the nesting issues but until then I don't think you folks
> care.
>
> Or am I wrong. Do the requirements for securely auditing things from
> the kernel care about the actions of unprivileged users?
I think ultimately we have to care, but it could be three phases: first
would be genuinely privileged containers (i.e. with real root inside,
being our most dangerous problem) the second would be user_ns
privileged containers (i.e. with both user_ns and an interior root
mapping) and the third would be unprivileged containers (with or
without user_ns but no interior root).
James
^ permalink raw reply
* Re: [PATCH 2/2] mwifiex: Make use of the new sdio_trigger_replug() API to reset
From: Brian Norris @ 2019-07-19 23:36 UTC (permalink / raw)
To: Douglas Anderson
Cc: Ulf Hansson, Kalle Valo, Adrian Hunter, Ganapathi Bhat,
linux-wireless, Amitkumar Karwar, linux-rockchip, Wolfram Sang,
Nishant Sarmukadam, netdev, Avri Altman, linux-mmc, davem,
Xinming Hu, linux-kernel, Andreas Fenkart
In-Reply-To: <20190716164209.62320-3-dianders@chromium.org>
Hi Doug,
On Tue, Jul 16, 2019 at 09:42:09AM -0700, Doug Anderson wrote:
> As described in the patch ("mmc: core: Add sdio_trigger_replug()
> API"), the current mwifiex_sdio_card_reset() is broken in the cases
> where we're running Bluetooth on a second SDIO func on the same card
> as WiFi. The problem goes away if we just use the
> sdio_trigger_replug() API call.
I'm unfortunately not a good evaluator of SDIO/MMC stuff, so I'll mostly
leave that to others and assume that the "replug" description is pretty
much all I need to know.
> NOTE: Even though with this new solution there is less of a reason to
> do our work from a workqueue (the unplug / plug mechanism we're using
> is possible for a human to perform at any time so the stack is
> supposed to handle it without it needing to be called from a special
> context), we still need a workqueue because the Marvell reset function
> could called from a context where sleeping is invalid and thus we
> can't claim the host. One example is Marvell's wakeup_timer_fn().
>
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> ---
>
> drivers/net/wireless/marvell/mwifiex/sdio.c | 14 +++-----------
> 1 file changed, 3 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.c b/drivers/net/wireless/marvell/mwifiex/sdio.c
> index 24c041dad9f6..f77ad2615f08 100644
> --- a/drivers/net/wireless/marvell/mwifiex/sdio.c
> +++ b/drivers/net/wireless/marvell/mwifiex/sdio.c
> @@ -2218,14 +2218,6 @@ static void mwifiex_sdio_card_reset_work(struct mwifiex_adapter *adapter)
> {
> struct sdio_mmc_card *card = adapter->card;
> struct sdio_func *func = card->func;
> - int ret;
> -
> - mwifiex_shutdown_sw(adapter);
I'm very mildly unhappy to see this driver diverge from the PCIe one
again, but the only way it makes sense to do things the same is if there
is such thing as a "function level reset" for SDIO (i.e., doesn't also
kill the Bluetooth function). But it appears we don't really have such a
thing.
> -
> - /* power cycle the adapter */
> - sdio_claim_host(func);
> - mmc_hw_reset(func->card->host);
> - sdio_release_host(func);
>
> /* Previous save_adapter won't be valid after this. We will cancel
^^^ FTR, the "save_adapter" note was already obsolete as of
cc75c577806a mwifiex: get rid of global save_adapter and sdio_work
but the clear_bit() calls were (before this patch) still useful for
other reasons.
> * pending work requests.
> @@ -2233,9 +2225,9 @@ static void mwifiex_sdio_card_reset_work(struct mwifiex_adapter *adapter)
> clear_bit(MWIFIEX_IFACE_WORK_DEVICE_DUMP, &card->work_flags);
> clear_bit(MWIFIEX_IFACE_WORK_CARD_RESET, &card->work_flags);
But now, I don't think you need these clear_bit() calls any more --
you're totally destroying the card and its workqueue on remove(). (And
anyway, MWIFIEX_IFACE_WORK_CARD_RESET was just cleared by your caller.)
>
> - ret = mwifiex_reinit_sw(adapter);
> - if (ret)
> - dev_err(&func->dev, "reinit failed: %d\n", ret);
> + sdio_claim_host(func);
> + sdio_trigger_replug(func);
> + sdio_release_host(func);
And...we're approximately back to where we were 4 years ago :)
commit b4336a282db86b298b70563f8ed51782b36b772c
Author: Andreas Fenkart <afenkart@gmail.com>
Date: Thu Jul 16 18:50:01 2015 +0200
mwifiex: sdio: reset adapter using mmc_hw_reset
Anyway, assuming the "function reset" thing isn't workable, and you drop
the clear_bit() stuff, I think this is fine:
Reviewed-by: Brian Norris <briannorris@chromium.org>
> }
>
> /* This function read/write firmware */
> --
> 2.22.0.510.g264f2c817a-goog
>
^ permalink raw reply
* Re: [PATCH iproute2] etf: make printing of variable JSON friendly
From: Stephen Hemminger @ 2019-07-19 22:26 UTC (permalink / raw)
To: Vedang Patel
Cc: netdev, jhs, xiyou.wangcong, jiri, vinicius.gomes,
leandro.maciel.dorileo, dsahern
In-Reply-To: <1563572443-10879-1-git-send-email-vedang.patel@intel.com>
On Fri, 19 Jul 2019 14:40:43 -0700
Vedang Patel <vedang.patel@intel.com> wrote:
> 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;
> }
Thanks, but if you are only going to print json boolean if true, then a common
way to indicate that something is enabled is to use print_null().
Could you do that instead?
^ permalink raw reply
* Re: [PATCH bpf] libbpf: fix missing __WORDSIZE definition
From: Andrii Nakryiko @ 2019-07-19 21:48 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: <20190719202703.GR3624@kernel.org>
On Fri, Jul 19, 2019 at 1:27 PM Arnaldo Carvalho de Melo
<arnaldo.melo@gmail.com> wrote:
>
> 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.
Oh well, if it's how it's done right now :)
Acked-by: Andrii Nakryiko <andriin@fb.com>
>
> - Arnaldo
^ permalink raw reply
* Re: [PATCH] be2net: fix adapter->big_page_size miscaculation
From: Qian Cai @ 2019-07-19 21:47 UTC (permalink / raw)
To: David Miller
Cc: morbo, ndesaulniers, jyknight, sathya.perla, ajit.khaparde,
sriharsha.basavapatna, somnath.kotur, arnd, dhowells, hpa, netdev,
linux-arch, linux-kernel, natechancellor
In-Reply-To: <20190718.162928.124906203979938369.davem@davemloft.net>
On Thu, 2019-07-18 at 16:29 -0700, David Miller wrote:
> From: Qian Cai <cai@lca.pw>
> Date: Thu, 18 Jul 2019 19:26:47 -0400
>
> >
> >
> >> On Jul 18, 2019, at 5:21 PM, Bill Wendling <morbo@google.com> wrote:
> >>
> >> [My previous response was marked as spam...]
> >>
> >> Top-of-tree clang says that it's const:
> >>
> >> $ gcc a.c -O2 && ./a.out
> >> a is a const.
> >>
> >> $ clang a.c -O2 && ./a.out
> >> a is a const.
> >
> >
> > I used clang-7.0.1. So, this is getting worse where both GCC and clang will
> start to suffer the
> > same problem.
>
> Then rewrite the module parameter macros such that the non-constness
> is evident to all compilers regardless of version.
>
> That is the place to fix this, otherwise we will just be adding hacks
> all over the place rather than in just one spot.
The problem is that when the compiler is compiling be_main.o, it has no
knowledge about what is going to happen in load_module(). The compiler can only
see that a "const struct kernel_param_ops" "__param_ops_rx_frag_size" at the
time with
__param_ops_rx_frag_size.arg = &rx_frag_size
but only in load_module()->parse_args()->parse_one()->param_set_ushort(), it
changes "__param_ops_rx_frag_size.arg" which in-turn changes the value
of "rx_frag_size".
^ 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
* 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
* 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 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: [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 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: 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 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: 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: 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
* [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
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