* [RFC PATCH 3/4] udp: implement GRO plain UDP sockets.
From: Paolo Abeni @ 2018-09-14 15:43 UTC (permalink / raw)
To: netdev; +Cc: David S. Miller, Willem de Bruijn, Steffen Klassert
In-Reply-To: <cover.1536939423.git.pabeni@redhat.com>
This is the RX counter part of commit bec1f6f69736 ("udp: generate gso
with UDP_SEGMENT"). When UDP_SEGMENT is enabled, such socket is also
eligible for GRO in the rx path: UDP segments directed to such socket
are assembled into a larger GSO_UDP_L4 packet.
The core UDP GRO support is enabled/updated on setsockopt(UDP_SEGMENT) and
disabled, if needed at socket destruction time.
Initial benchmark numbers:
Before:
udp rx: 1079 MB/s 769065 calls/s
After:
udp rx: 1466 MB/s 24877 calls/s
This change introduces a side effect in respect to UDP tunnels:
after an UDP tunnel creation, now the kernel performs a lookup per ingress UDP
packet, before such lookup happended only if the ingress packet carried a valid
internal header csum.
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
include/linux/udp.h | 2 +-
net/ipv4/udp.c | 1 +
net/ipv4/udp_offload.c | 107 +++++++++++++++++++++++++++++++++--------
net/ipv6/udp_offload.c | 6 +--
4 files changed, 90 insertions(+), 26 deletions(-)
diff --git a/include/linux/udp.h b/include/linux/udp.h
index 56a321a55ba1..27dea956ef6e 100644
--- a/include/linux/udp.h
+++ b/include/linux/udp.h
@@ -128,7 +128,7 @@ static inline bool udp_get_gro_in_use(struct sock *sk)
static inline bool udp_want_gro(struct sock *sk)
{
- return udp_sk(sk)->gro_receive;
+ return udp_sk(sk)->gro_receive || udp_sk(sk)->gso_size;
}
#define udp_portaddr_for_each_entry(__sk, list) \
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 5ac794230013..871ee55afd96 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -2450,6 +2450,7 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname,
if (val < 0 || val > USHRT_MAX)
return -EINVAL;
up->gso_size = val;
+ udp_update_gro_in_use(sk, udp_want_gro(sk));
break;
/*
diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c
index 08b225adf763..4ff150bb84de 100644
--- a/net/ipv4/udp_offload.c
+++ b/net/ipv4/udp_offload.c
@@ -347,6 +347,54 @@ static struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb,
return segs;
}
+#define UDO_GRO_CNT_MAX 64
+static struct sk_buff *udp_gro_receive_segment(struct list_head *head,
+ struct sk_buff *skb)
+{
+ struct udphdr *uh = udp_hdr(skb);
+ struct sk_buff *pp = NULL;
+ struct udphdr *uh2;
+ struct sk_buff *p;
+
+ /* requires non zero csum, for simmetry with GSO */
+ if (!uh->check) {
+ NAPI_GRO_CB(skb)->flush = 1;
+ return NULL;
+ }
+
+ /* pull encapsulating udp header */
+ skb_gro_pull(skb, sizeof(struct udphdr));
+ skb_gro_postpull_rcsum(skb, uh, sizeof(struct udphdr));
+
+ list_for_each_entry(p, head, list) {
+ if (!NAPI_GRO_CB(p)->same_flow)
+ continue;
+
+ uh2 = udp_hdr(p);
+
+ /* Match ports only, as csum is always non zero */
+ if ((*(u32 *)&uh->source != *(u32 *)&uh2->source)) {
+ NAPI_GRO_CB(p)->same_flow = 0;
+ continue;
+ }
+
+ /* Terminate the flow on len mismatch or if it grow "too much".
+ * Under small packet flood GRO count could elsewhere grow a lot
+ * leading to execessive truesize values
+ */
+ if (!skb_gro_receive(p, skb) &&
+ NAPI_GRO_CB(p)->count > UDO_GRO_CNT_MAX)
+ pp = p;
+ else if (uh->len != uh2->len)
+ pp = p;
+
+ return pp;
+ }
+
+ /* mismatch, but we never need to flush */
+ return NULL;
+}
+
struct sk_buff *udp_gro_receive(struct list_head *head, struct sk_buff *skb,
struct udphdr *uh, udp_lookup_t lookup)
{
@@ -357,23 +405,29 @@ struct sk_buff *udp_gro_receive(struct list_head *head, struct sk_buff *skb,
int flush = 1;
struct sock *sk;
+ rcu_read_lock();
+ sk = (*lookup)(skb, uh->source, uh->dest);
+ if (!sk)
+ goto out_unlock;
+
+ if (udp_sk(sk)->gso_size) {
+ pp = call_gro_receive(udp_gro_receive_segment, head, skb);
+ rcu_read_unlock();
+ return pp;
+ }
+
if (NAPI_GRO_CB(skb)->encap_mark ||
(skb->ip_summed != CHECKSUM_PARTIAL &&
NAPI_GRO_CB(skb)->csum_cnt == 0 &&
!NAPI_GRO_CB(skb)->csum_valid))
- goto out;
+ goto out_unlock;
/* mark that this skb passed once through the tunnel gro layer */
NAPI_GRO_CB(skb)->encap_mark = 1;
- rcu_read_lock();
- sk = (*lookup)(skb, uh->source, uh->dest);
-
- if (sk && udp_sk(sk)->gro_receive)
- goto unflush;
- goto out_unlock;
+ if (!udp_sk(sk)->gro_receive)
+ goto out_unlock;
-unflush:
flush = 0;
list_for_each_entry(p, head, list) {
@@ -398,7 +452,6 @@ struct sk_buff *udp_gro_receive(struct list_head *head, struct sk_buff *skb,
out_unlock:
rcu_read_unlock();
-out:
skb_gro_flush_final(skb, pp, flush);
return pp;
}
@@ -431,6 +484,19 @@ static struct sk_buff *udp4_gro_receive(struct list_head *head,
return NULL;
}
+static int udp_gro_complete_segment(struct sk_buff *skb)
+{
+ struct udphdr *uh = udp_hdr(skb);
+
+ skb->csum_start = (unsigned char *)uh - skb->head;
+ skb->csum_offset = offsetof(struct udphdr, check);
+ skb->ip_summed = CHECKSUM_PARTIAL;
+
+ skb_shinfo(skb)->gso_segs = NAPI_GRO_CB(skb)->count;
+ skb_shinfo(skb)->gso_type |= SKB_GSO_UDP_L4;
+ return 0;
+}
+
int udp_gro_complete(struct sk_buff *skb, int nhoff,
udp_lookup_t lookup)
{
@@ -441,16 +507,21 @@ int udp_gro_complete(struct sk_buff *skb, int nhoff,
uh->len = newlen;
- /* Set encapsulation before calling into inner gro_complete() functions
- * to make them set up the inner offsets.
- */
- skb->encapsulation = 1;
-
rcu_read_lock();
sk = (*lookup)(skb, uh->source, uh->dest);
- if (sk && udp_sk(sk)->gro_complete)
+ if (sk && udp_sk(sk)->gso_size) {
+ err = udp_gro_complete_segment(skb);
+ } else if (sk && udp_sk(sk)->gro_complete) {
+ skb_shinfo(skb)->gso_type = uh->check ? SKB_GSO_UDP_TUNNEL_CSUM
+ : SKB_GSO_UDP_TUNNEL;
+
+ /* Set encapsulation before calling into inner gro_complete()
+ * functions to make them set up the inner offsets.
+ */
+ skb->encapsulation = 1;
err = udp_sk(sk)->gro_complete(sk, skb,
nhoff + sizeof(struct udphdr));
+ }
rcu_read_unlock();
if (skb->remcsum_offload)
@@ -465,13 +536,9 @@ static int udp4_gro_complete(struct sk_buff *skb, int nhoff)
const struct iphdr *iph = ip_hdr(skb);
struct udphdr *uh = (struct udphdr *)(skb->data + nhoff);
- if (uh->check) {
- skb_shinfo(skb)->gso_type |= SKB_GSO_UDP_TUNNEL_CSUM;
+ if (uh->check)
uh->check = ~udp_v4_check(skb->len - nhoff, iph->saddr,
iph->daddr, 0);
- } else {
- skb_shinfo(skb)->gso_type |= SKB_GSO_UDP_TUNNEL;
- }
return udp_gro_complete(skb, nhoff, udp4_lib_lookup_skb);
}
diff --git a/net/ipv6/udp_offload.c b/net/ipv6/udp_offload.c
index 1df968a3e788..f2731b7b4c75 100644
--- a/net/ipv6/udp_offload.c
+++ b/net/ipv6/udp_offload.c
@@ -147,13 +147,9 @@ static int udp6_gro_complete(struct sk_buff *skb, int nhoff)
const struct ipv6hdr *ipv6h = ipv6_hdr(skb);
struct udphdr *uh = (struct udphdr *)(skb->data + nhoff);
- if (uh->check) {
- skb_shinfo(skb)->gso_type |= SKB_GSO_UDP_TUNNEL_CSUM;
+ if (uh->check)
uh->check = ~udp_v6_check(skb->len - nhoff, &ipv6h->saddr,
&ipv6h->daddr, 0);
- } else {
- skb_shinfo(skb)->gso_type |= SKB_GSO_UDP_TUNNEL;
- }
return udp_gro_complete(skb, nhoff, udp6_lib_lookup_skb);
}
--
2.17.1
^ permalink raw reply related
* [RFC PATCH 2/4] net: enable UDP gro on demand.
From: Paolo Abeni @ 2018-09-14 15:43 UTC (permalink / raw)
To: netdev; +Cc: David S. Miller, Willem de Bruijn, Steffen Klassert
In-Reply-To: <cover.1536939423.git.pabeni@redhat.com>
Currently, the UDP GRO callback is always invoked, regardless of
the existence of any actual user (e.g. a UDP tunnel). With retpoline
enabled, this causes measurable overhead.
This changeset introduces explicit accounting of the sockets requiring
UDP GRO and updates the UDP offloads at runtime accordingly, so that
the GRO callback is present (and invoked) only when there is at least
one socket requiring it.
Tested with pktgen vs udpgso_bench_rx
Before:
udp rx: 27 MB/s 1613271 calls/s
After:
udp rx: 30 MB/s 1771537 calls/s
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
include/linux/udp.h | 18 +++++++++++-
include/net/addrconf.h | 1 +
include/net/udp.h | 12 ++++++++
net/ipv4/udp.c | 2 ++
net/ipv4/udp_offload.c | 63 ++++++++++++++++++++++++++++++++++++++++--
net/ipv4/udp_tunnel.c | 1 +
net/ipv6/af_inet6.c | 1 +
net/ipv6/udp_offload.c | 25 +++++++++++++++--
8 files changed, 117 insertions(+), 6 deletions(-)
diff --git a/include/linux/udp.h b/include/linux/udp.h
index 320d49d85484..56a321a55ba1 100644
--- a/include/linux/udp.h
+++ b/include/linux/udp.h
@@ -49,7 +49,8 @@ struct udp_sock {
unsigned int corkflag; /* Cork is required */
__u8 encap_type; /* Is this an Encapsulation socket? */
unsigned char no_check6_tx:1,/* Send zero UDP6 checksums on TX? */
- no_check6_rx:1;/* Allow zero UDP6 checksums on RX? */
+ no_check6_rx:1,/* Allow zero UDP6 checksums on RX? */
+ gro_in_use:1; /* UDP GRO is requested */
/*
* Following member retains the information to create a UDP header
* when the socket is uncorked.
@@ -105,6 +106,11 @@ static inline void udp_set_no_check6_rx(struct sock *sk, bool val)
udp_sk(sk)->no_check6_rx = val;
}
+static inline void udp_set_gro_in_use(struct sock *sk, bool val)
+{
+ udp_sk(sk)->gro_in_use = val;
+}
+
static inline bool udp_get_no_check6_tx(struct sock *sk)
{
return udp_sk(sk)->no_check6_tx;
@@ -115,6 +121,16 @@ static inline bool udp_get_no_check6_rx(struct sock *sk)
return udp_sk(sk)->no_check6_rx;
}
+static inline bool udp_get_gro_in_use(struct sock *sk)
+{
+ return udp_sk(sk)->gro_in_use;
+}
+
+static inline bool udp_want_gro(struct sock *sk)
+{
+ return udp_sk(sk)->gro_receive;
+}
+
#define udp_portaddr_for_each_entry(__sk, list) \
hlist_for_each_entry(__sk, list, __sk_common.skc_portaddr_node)
diff --git a/include/net/addrconf.h b/include/net/addrconf.h
index 6def0351bcc3..fb2ac3ca3417 100644
--- a/include/net/addrconf.h
+++ b/include/net/addrconf.h
@@ -254,6 +254,7 @@ struct ipv6_stub {
struct in6_addr *saddr);
void (*udpv6_encap_enable)(void);
+ void (*udpv6_update_offload)(bool enable_gro);
void (*ndisc_send_na)(struct net_device *dev, const struct in6_addr *daddr,
const struct in6_addr *solicited_addr,
bool router, bool solicited, bool override, bool inc_opt);
diff --git a/include/net/udp.h b/include/net/udp.h
index 8482a990b0bb..eff2dfa0571b 100644
--- a/include/net/udp.h
+++ b/include/net/udp.h
@@ -444,8 +444,20 @@ int udpv4_offload_init(void);
void udp_init(void);
void udp_encap_enable(void);
+void udp_gro_in_use_changed(struct sock *sk);
+
#if IS_ENABLED(CONFIG_IPV6)
void udpv6_encap_enable(void);
+void udpv6_update_offload(bool);
#endif
+static inline void udp_update_gro_in_use(struct sock *sk, bool want_gro)
+{
+ if (want_gro == udp_get_gro_in_use(sk))
+ return;
+
+ udp_set_gro_in_use(sk, want_gro);
+ udp_gro_in_use_changed(sk);
+}
+
#endif /* _UDP_H */
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index f4e35b2ff8b8..5ac794230013 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -1438,6 +1438,8 @@ void udp_destruct_sock(struct sock *sk)
}
udp_rmem_release(sk, total, 0, true);
+ udp_update_gro_in_use(sk, 0);
+
inet_sock_destruct(sk);
}
EXPORT_SYMBOL_GPL(udp_destruct_sock);
diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c
index 0c0522b79b43..08b225adf763 100644
--- a/net/ipv4/udp_offload.c
+++ b/net/ipv4/udp_offload.c
@@ -14,6 +14,10 @@
#include <net/udp.h>
#include <net/protocol.h>
+#if IS_ENABLED(CONFIG_IPV6)
+#include <net/addrconf.h>
+#endif
+
static struct sk_buff *__skb_udp_tunnel_segment(struct sk_buff *skb,
netdev_features_t features,
struct sk_buff *(*gso_inner_segment)(struct sk_buff *skb,
@@ -472,7 +476,13 @@ static int udp4_gro_complete(struct sk_buff *skb, int nhoff)
return udp_gro_complete(skb, nhoff, udp4_lib_lookup_skb);
}
-static const struct net_offload udpv4_offload = {
+static const struct net_offload udpv4_no_gro_offload = {
+ .callbacks = {
+ .gso_segment = udp4_ufo_fragment,
+ },
+};
+
+static const struct net_offload udpv4_gro_offload = {
.callbacks = {
.gso_segment = udp4_ufo_fragment,
.gro_receive = udp4_gro_receive,
@@ -480,7 +490,56 @@ static const struct net_offload udpv4_offload = {
},
};
+static atomic_t gro_needed;
+
+static void udp_update_offload(struct sock *sk, bool enable_gro)
+{
+ int ret;
+
+#if IS_ENABLED(CONFIG_IPV6)
+ /* to keep the code simple ignore IPV6_V6ONLY */
+ if (sk->sk_family == PF_INET6)
+ ipv6_stub->udpv6_update_offload(enable_gro);
+#endif
+
+ if (enable_gro)
+ ret = inet_update_offload(&udpv4_no_gro_offload,
+ &udpv4_gro_offload, IPPROTO_UDP);
+ else
+ ret = inet_update_offload(&udpv4_gro_offload,
+ &udpv4_no_gro_offload, IPPROTO_UDP);
+ WARN_ON(ret);
+}
+
+static void udp_gro_enable(struct sock *sk)
+{
+ if (atomic_inc_return(&gro_needed) > 1)
+ return;
+
+ udp_update_offload(sk, true);
+}
+
+static void udp_gro_disable(struct sock *sk)
+{
+ int new_gro_needed = atomic_dec_return(&gro_needed);
+
+ WARN_ON(new_gro_needed < 0);
+ if (new_gro_needed != 0)
+ return;
+
+ udp_update_offload(sk, false);
+}
+
+void udp_gro_in_use_changed(struct sock *sk)
+{
+ if (udp_get_gro_in_use(sk))
+ udp_gro_enable(sk);
+ else
+ udp_gro_disable(sk);
+}
+EXPORT_SYMBOL_GPL(udp_gro_in_use_changed);
+
int __init udpv4_offload_init(void)
{
- return inet_add_offload(&udpv4_offload, IPPROTO_UDP);
+ return inet_add_offload(&udpv4_no_gro_offload, IPPROTO_UDP);
}
diff --git a/net/ipv4/udp_tunnel.c b/net/ipv4/udp_tunnel.c
index 6539ff15e9a3..16457d41ff7f 100644
--- a/net/ipv4/udp_tunnel.c
+++ b/net/ipv4/udp_tunnel.c
@@ -73,6 +73,7 @@ void setup_udp_tunnel_sock(struct net *net, struct socket *sock,
udp_sk(sk)->gro_complete = cfg->gro_complete;
udp_tunnel_encap_enable(sock);
+ udp_update_gro_in_use(sk, udp_want_gro(sk));
}
EXPORT_SYMBOL_GPL(setup_udp_tunnel_sock);
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 77ef8478234f..ecb8aba7b535 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -897,6 +897,7 @@ static const struct ipv6_stub ipv6_stub_impl = {
.fib6_multipath_select = fib6_multipath_select,
.ip6_mtu_from_fib6 = ip6_mtu_from_fib6,
.udpv6_encap_enable = udpv6_encap_enable,
+ .udpv6_update_offload = udpv6_update_offload,
.ndisc_send_na = ndisc_send_na,
.nd_tbl = &nd_tbl,
};
diff --git a/net/ipv6/udp_offload.c b/net/ipv6/udp_offload.c
index 95dee9ca8d22..1df968a3e788 100644
--- a/net/ipv6/udp_offload.c
+++ b/net/ipv6/udp_offload.c
@@ -158,7 +158,13 @@ static int udp6_gro_complete(struct sk_buff *skb, int nhoff)
return udp_gro_complete(skb, nhoff, udp6_lib_lookup_skb);
}
-static const struct net_offload udpv6_offload = {
+static const struct net_offload udpv6_no_gro_offload = {
+ .callbacks = {
+ .gso_segment = udp6_ufo_fragment,
+ },
+};
+
+static const struct net_offload udpv6_gro_offload = {
.callbacks = {
.gso_segment = udp6_ufo_fragment,
.gro_receive = udp6_gro_receive,
@@ -166,12 +172,25 @@ static const struct net_offload udpv6_offload = {
},
};
+void udpv6_update_offload(bool enable_gro)
+{
+ int ret;
+
+ if (enable_gro)
+ ret = inet6_update_offload(&udpv6_no_gro_offload,
+ &udpv6_gro_offload, IPPROTO_UDP);
+ else
+ ret = inet6_update_offload(&udpv6_gro_offload,
+ &udpv6_no_gro_offload, IPPROTO_UDP);
+ WARN_ON(ret);
+}
+
int udpv6_offload_init(void)
{
- return inet6_add_offload(&udpv6_offload, IPPROTO_UDP);
+ return inet6_add_offload(&udpv6_no_gro_offload, IPPROTO_UDP);
}
int udpv6_offload_exit(void)
{
- return inet6_del_offload(&udpv6_offload, IPPROTO_UDP);
+ return inet6_del_offload(&udpv6_no_gro_offload, IPPROTO_UDP);
}
--
2.17.1
^ permalink raw reply related
* [RFC PATCH 1/4] net: add new helper to update an already registered offload
From: Paolo Abeni @ 2018-09-14 15:43 UTC (permalink / raw)
To: netdev; +Cc: David S. Miller, Willem de Bruijn, Steffen Klassert
In-Reply-To: <cover.1536939423.git.pabeni@redhat.com>
This will allow us to enable/disable UDP GRO at runtime in
a later patch.
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
include/net/protocol.h | 4 ++++
net/ipv4/protocol.c | 13 +++++++++----
net/ipv6/protocol.c | 13 +++++++++----
3 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/include/net/protocol.h b/include/net/protocol.h
index 4fc75f7ae23b..aa77e7feffab 100644
--- a/include/net/protocol.h
+++ b/include/net/protocol.h
@@ -104,6 +104,8 @@ extern struct inet6_protocol __rcu *inet6_protos[MAX_INET_PROTOS];
int inet_add_protocol(const struct net_protocol *prot, unsigned char num);
int inet_del_protocol(const struct net_protocol *prot, unsigned char num);
int inet_add_offload(const struct net_offload *prot, unsigned char num);
+int inet_update_offload(const struct net_offload *old_prot,
+ const struct net_offload *new_prot, unsigned char num);
int inet_del_offload(const struct net_offload *prot, unsigned char num);
void inet_register_protosw(struct inet_protosw *p);
void inet_unregister_protosw(struct inet_protosw *p);
@@ -115,6 +117,8 @@ int inet6_register_protosw(struct inet_protosw *p);
void inet6_unregister_protosw(struct inet_protosw *p);
#endif
int inet6_add_offload(const struct net_offload *prot, unsigned char num);
+int inet6_update_offload(const struct net_offload *old_prot,
+ const struct net_offload *new_prot, unsigned char num);
int inet6_del_offload(const struct net_offload *prot, unsigned char num);
#endif /* _PROTOCOL_H */
diff --git a/net/ipv4/protocol.c b/net/ipv4/protocol.c
index 32a691b7ce2c..b60f1686b918 100644
--- a/net/ipv4/protocol.c
+++ b/net/ipv4/protocol.c
@@ -65,12 +65,17 @@ int inet_del_protocol(const struct net_protocol *prot, unsigned char protocol)
}
EXPORT_SYMBOL(inet_del_protocol);
-int inet_del_offload(const struct net_offload *prot, unsigned char protocol)
+int inet_update_offload(const struct net_offload *old_prot,
+ const struct net_offload *new_prot,
+ unsigned char protocol)
{
- int ret;
+ return (cmpxchg((const struct net_offload **)&inet_offloads[protocol],
+ old_prot, new_prot) == old_prot) ? 0 : -1;
+}
- ret = (cmpxchg((const struct net_offload **)&inet_offloads[protocol],
- prot, NULL) == prot) ? 0 : -1;
+int inet_del_offload(const struct net_offload *prot, unsigned char protocol)
+{
+ int ret = inet_update_offload(prot, NULL, protocol);
synchronize_net();
diff --git a/net/ipv6/protocol.c b/net/ipv6/protocol.c
index b5d54d4f995c..9ee6aff1f3fa 100644
--- a/net/ipv6/protocol.c
+++ b/net/ipv6/protocol.c
@@ -60,12 +60,17 @@ int inet6_add_offload(const struct net_offload *prot, unsigned char protocol)
}
EXPORT_SYMBOL(inet6_add_offload);
-int inet6_del_offload(const struct net_offload *prot, unsigned char protocol)
+int inet6_update_offload(const struct net_offload *old_prot,
+ const struct net_offload *new_prot,
+ unsigned char protocol)
{
- int ret;
+ return (cmpxchg((const struct net_offload **)&inet6_offloads[protocol],
+ old_prot, new_prot) == old_prot) ? 0 : -1;
+}
- ret = (cmpxchg((const struct net_offload **)&inet6_offloads[protocol],
- prot, NULL) == prot) ? 0 : -1;
+int inet6_del_offload(const struct net_offload *prot, unsigned char protocol)
+{
+ int ret = inet6_update_offload(prot, NULL, protocol);
synchronize_net();
--
2.17.1
^ permalink raw reply related
* [RFC PATCH 0/4] UDP: implement GRO support for UDP_SEGMENT socket
From: Paolo Abeni @ 2018-09-14 15:43 UTC (permalink / raw)
To: netdev; +Cc: David S. Miller, Willem de Bruijn, Steffen Klassert
This series implements GRO support for UDP sockets, as the RX counterpart
of ommit bec1f6f69736 ("udp: generate gso with UDP_SEGMENT").
The first two patches allow UDP GRO registration on demand, avoiding additional
overhead when no UDP_SEGMENT sockets are created, actually decreasing the GRO
engine costs for the default configuration for UDP packets. They could possibly
live on their own.
The third patch contains the actual UDP GRO implementation, while the 4th patch
allows using the udpgso_bench_rx program under selftest to trigger UDP GRO. A
full self-test is not there yet.
Paolo Abeni (4):
net: add new helper to update an already registered offload
net: enable UDP gro on demand.
udp: implement GRO plain UDP sockets.
selftests: add GRO support, fix port option processing
include/linux/udp.h | 18 +-
include/net/addrconf.h | 1 +
include/net/protocol.h | 4 +
include/net/udp.h | 12 ++
net/ipv4/protocol.c | 13 +-
net/ipv4/udp.c | 3 +
net/ipv4/udp_offload.c | 170 +++++++++++++++---
net/ipv4/udp_tunnel.c | 1 +
net/ipv6/af_inet6.c | 1 +
net/ipv6/protocol.c | 13 +-
net/ipv6/udp_offload.c | 31 +++-
tools/testing/selftests/net/udpgso_bench_rx.c | 18 +-
12 files changed, 244 insertions(+), 41 deletions(-)
--
2.17.1
^ permalink raw reply
* Re: [PATCH net-next] cxgb4: add per rx-queue counter for packet errors
From: David Miller @ 2018-09-14 15:43 UTC (permalink / raw)
To: ganeshgr; +Cc: netdev, nirranjan, indranil, dt, leedom
In-Reply-To: <1536916564-27261-1-git-send-email-ganeshgr@chelsio.com>
From: Ganesh Goudar <ganeshgr@chelsio.com>
Date: Fri, 14 Sep 2018 14:46:04 +0530
> print per rx-queue packet errors in sge_qinfo
>
> Signed-off-by: Casey Leedom <leedom@chelsio.com>
> Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
Applied.
^ permalink raw reply
* Re: [PATCH net-next] cxgb4: Fix endianness issue in t4_fwcache()
From: David Miller @ 2018-09-14 15:43 UTC (permalink / raw)
To: ganeshgr; +Cc: netdev, viro, nirranjan, indranil, dt
In-Reply-To: <1536915987-25933-1-git-send-email-ganeshgr@chelsio.com>
From: Ganesh Goudar <ganeshgr@chelsio.com>
Date: Fri, 14 Sep 2018 14:36:27 +0530
> Do not put host-endian 0 or 1 into big endian feild.
>
> Reported-by: Al Viro <viro@zeniv.linux.org.uk>
> Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
Applied.
^ permalink raw reply
* Re: [PATCH][net-next] net: move definition of pcpu_lstats to header file
From: David Miller @ 2018-09-14 15:32 UTC (permalink / raw)
To: lirongqing; +Cc: netdev
In-Reply-To: <1536912051-2210-1-git-send-email-lirongqing@baidu.com>
From: Li RongQing <lirongqing@baidu.com>
Date: Fri, 14 Sep 2018 16:00:51 +0800
> pcpu_lstats is defined in several files, so unify them as one
> and move to header file
>
> Signed-off-by: Zhang Yu <zhangyu31@baidu.com>
> Signed-off-by: Li RongQing <lirongqing@baidu.com>
This looks fine, applied, thanks.
^ permalink raw reply
* Re: [PATCH net] net: diag: Fix swapped src/dst in udp_dump_one.
From: David Miller @ 2018-09-14 15:30 UTC (permalink / raw)
To: lorenzo; +Cc: netdev, zenczykowski, dsahern, jeffv
In-Reply-To: <20180914062553.42648-1-lorenzo@google.com>
From: Lorenzo Colitti <lorenzo@google.com>
Date: Fri, 14 Sep 2018 15:25:53 +0900
> Since its inception, udp_dump_one had has a bug where userspace
> needs to swap src and dst addresses and ports in order to find
> the socket it wants.
>
> This is because udp_dump_one misuses __udp[46]_lib_lookup by
> passing the source address as the source address argument.
> Unfortunately, those functions are intended to find local sockets
> matching received packets, so the order of the arguments is
> inverted: the argument that ends up being compared with, e.g.,
> sk_daddr is actually saddr, not daddr.
>
> While it's true that this creates a backwards compatibility
> problem, this is clearly a bug since inet_diag_sockid is very
> clear about which struct elements are the source address and port
> and which are the destination address and port. Also, this bug
> does not affect TCP sockets, SOCK_DESTROY of UDP sockets, or
> finding UDP sockets with NLMSG_DUMP.
>
> Fixes: a925aa00a55 ("udp_diag: Implement the get_exact dumping functionality")
> Tested: https://android-review.googlesource.com/c/kernel/tests/+/755889/
> Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
Unfortunately I think we are stuck with how things are now.
Indisputably, your patch breaks userland components that have
workarounds in order to work with existing kernels. People who
wrote such code:
1) Won't get any warnings that things are about to break on them
2) Will have limited options to have their code work on all kernels,
ones that have this change and ones that do not.
Maybe if this got introduced 1 or 2 releases ago we could consider
doing this, but all the way back to v3.3? No way.
I cannot apply this, sorry.
^ permalink raw reply
* Re: [PATCH net-next 08/13] net: sched: rename tcf_block_get{_ext}() and tcf_block_put{_ext}()
From: Jiri Pirko @ 2018-09-14 15:24 UTC (permalink / raw)
To: Vlad Buslov
Cc: Cong Wang, Linux Kernel Network Developers, Jamal Hadi Salim,
David Miller, Stephen Hemminger, Kirill Tkhai, Paul E. McKenney,
Nicolas Dichtel, Leon Romanovsky, Greg KH, mark.rutland,
Florian Westphal, David Ahern, lucien xin, Jakub Kicinski,
Christian Brauner, Jiri Benc
In-Reply-To: <vbfo9d0nz3j.fsf@reg-r-vrt-018-180.mtr.labs.mlnx>
Fri, Sep 14, 2018 at 12:38:08PM CEST, vladbu@mellanox.com wrote:
>
>On Thu 13 Sep 2018 at 17:21, Cong Wang <xiyou.wangcong@gmail.com> wrote:
>> On Wed, Sep 12, 2018 at 1:24 AM Vlad Buslov <vladbu@mellanox.com> wrote:
>>>
>>>
>>> On Fri 07 Sep 2018 at 20:09, Cong Wang <xiyou.wangcong@gmail.com> wrote:
>>> > On Thu, Sep 6, 2018 at 12:59 AM Vlad Buslov <vladbu@mellanox.com> wrote:
>>> >>
>>> >> Functions tcf_block_get{_ext}() and tcf_block_put{_ext}() actually
>>> >> attach/detach block to specific Qdisc besides just taking/putting
>>> >> reference. Rename them according to their purpose.
>>> >
>>> > Where exactly does it attach to?
>>> >
>>> > Each qdisc provides a pointer to a pointer of a block, like
>>> > &cl->block. It is where the result is saved to. It takes a parameter
>>> > of Qdisc* merely for read-only purpose.
>>>
>>> tcf_block_attach_ext() passes qdisc parameter to tcf_block_owner_add()
>>> which saves qdisc to new tcf_block_owner_item and adds the item to
>>> block's owner list. I proposed several naming options for these
>>> functions to Jiri on internal review and he suggested "attach" as better
>>> option.
>>
>> But that is merely item->q = q, this is why I said it is read-only,
>> hard to claim this is attaching.
>>
>>
>>>
>>> >
>>> > So, renaming it to *attach() is even confusing, at least not
>>> > any better. Please find other names or leave them as they are.
>>>
>>> What would you recommend?
>>
>> I don't know, perhaps "acquire"?
>>
>> Or, leaving tcf_block_get() as it is but rename your refcnt
>> increment function to be something like tcf_block_refcnt_get()?
>
>Cong, I'm okay with both options.
>
>Jiri, which naming would you prefer?
Maybe tcf_block_refcnt_get() is better.
^ permalink raw reply
* Re: [PATCH v2 05/17] compat_ioctl: move more drivers to generic_compat_ioctl_ptrarg
From: Darren Hart @ 2018-09-14 20:35 UTC (permalink / raw)
To: Arnd Bergmann
Cc: viro, linux-fsdevel, Greg Kroah-Hartman, David S. Miller, devel,
linux-kernel, qat-linux, linux-crypto, linux-media, dri-devel,
linaro-mm-sig, amd-gfx, linux-input, linux-iio, linux-rdma,
linux-nvdimm, linux-nvme, linux-pci, platform-driver-x86,
linux-remoteproc, sparclinux, linux-scsi, linux-usb, linux-fbdev,
linuxppc-dev, linux-btrfs
In-Reply-To: <20180912151134.436719-1-arnd@arndb.de>
On Wed, Sep 12, 2018 at 05:08:52PM +0200, Arnd Bergmann wrote:
> The .ioctl and .compat_ioctl file operations have the same prototype so
> they can both point to the same function, which works great almost all
> the time when all the commands are compatible.
>
> One exception is the s390 architecture, where a compat pointer is only
> 31 bit wide, and converting it into a 64-bit pointer requires calling
> compat_ptr(). Most drivers here will ever run in s390, but since we now
> have a generic helper for it, it's easy enough to use it consistently.
>
> I double-checked all these drivers to ensure that all ioctl arguments
> are used as pointers or are ignored, but are not interpreted as integer
> values.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
...
> drivers/platform/x86/wmi.c | 2 +-
...
> static void link_event_work(struct work_struct *work)
> diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
> index 04791ea5d97b..e4d0697e07d6 100644
> --- a/drivers/platform/x86/wmi.c
> +++ b/drivers/platform/x86/wmi.c
> @@ -886,7 +886,7 @@ static const struct file_operations wmi_fops = {
> .read = wmi_char_read,
> .open = wmi_char_open,
> .unlocked_ioctl = wmi_ioctl,
> - .compat_ioctl = wmi_ioctl,
> + .compat_ioctl = generic_compat_ioctl_ptrarg,
> };
For platform/drivers/x86:
Acked-by: Darren Hart (VMware) <dvhart@infradead.org>
As for a longer term solution, would it be possible to init fops in such
a way that the compat_ioctl call defaults to generic_compat_ioctl_ptrarg
so we don't have to duplicate this boilerplate for every ioctl fops
structure?
--
Darren Hart
VMware Open Source Technology Center
^ permalink raw reply
* Re: [PATCH net-next 4/7] net: phy: mscc: add support for VSC8574 PHY
From: Florian Fainelli @ 2018-09-14 20:26 UTC (permalink / raw)
To: Quentin Schulz, alexandre.belloni, ralf, paul.burton, jhogan,
robh+dt, mark.rutland, davem, andrew
Cc: allan.nielsen, linux-mips, devicetree, linux-kernel, netdev,
thomas.petazzoni, antoine.tenart
In-Reply-To: <236ef7815c0bec6048e79ef06868719b65c63892.1536916714.git-series.quentin.schulz@bootlin.com>
On 09/14/2018 02:44 AM, Quentin Schulz wrote:
> The VSC8574 PHY is a 4-ports PHY that is 10/100/1000BASE-T, 100BASE-FX,
> 1000BASE-X and triple-speed copper SFP capable, can communicate with
> the MAC via SGMII, QSGMII or 1000BASE-X, supports WOL, downshifting and
> can set the blinking pattern of each of its 4 LEDs, supports SyncE as
> well as HP Auto-MDIX detection.
>
> This adds support for 10/100/1000BASE-T, SGMII/QSGMII link with the MAC,
> WOL, downshifting, HP Auto-MDIX detection and blinking pattern for its 4
> LEDs.
>
> The VSC8574 has also an internal Intel 8051 microcontroller whose
> firmware needs to be patched when the PHY is reset. If the 8051's
> firmware has the expected CRC, its patching can be skipped. The
> microcontroller can be accessed from any port of the PHY, though the CRC
> function can only be done through the PHY that is the base PHY of the
> package (internal address 0) due to a limitation of the firmware.
>
> The GPIO register bank is a set of registers that are common to all PHYs
> in the package. So any modification in any register of this bank affects
> all PHYs of the package.
>
> If the PHYs haven't been reset before booting the Linux kernel and were
> configured to use interrupts for e.g. link status updates, it is
> required to clear the interrupts mask register of all PHYs before being
> able to use interrupts with any PHY. The first PHY of the package that
> will be init will take care of clearing all PHYs interrupts mask
> registers. Thus, we need to keep track of the init sequence in the
> package, if it's already been done or if it's to be done.
>
> Most of the init sequence of a PHY of the package is common to all PHYs
> in the package, thus we use the SMI broadcast feature which enables us
> to propagate a write in one register of one PHY to all PHYs in the
> package.
>
> Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com>
> ---
[snip]
> + reg = __mdiobus_read(bus, phy, MSCC_PHY_TEST_PAGE_8);
> + reg |= 0x8000;
Having a define would be nice here? This looks like a write enable?
> + __mdiobus_write(bus, phy, MSCC_PHY_TEST_PAGE_8, reg);
> +
> + __mdiobus_write(bus, phy, MSCC_EXT_PAGE_ACCESS, MSCC_PHY_PAGE_TR);
> +
> + vsc8584_csr_write(bus, phy, 0x8fae, 0x000401bd);
Just make this an array of address + value pairs and blast it to the
PHY, having them be inlined here is both error prone and does not scale
well at all.
[snip]
> + vsc8584_csr_write(bus, phy, 0x84a8, 0x00000000);
> + vsc8584_csr_write(bus, phy, 0x84aa, 0x00000000);
> + vsc8584_csr_write(bus, phy, 0x84ae, 0x007df7dd);
> + vsc8584_csr_write(bus, phy, 0x84b0, 0x006d95d4);
> + vsc8584_csr_write(bus, phy, 0x84b2, 0x00492410);
Likewise
[snip]
--
Florian
^ permalink raw reply
* Re: [PATCH net-next v3 0/2] net: stmmac: Coalesce and tail addr fixes
From: Jerome Brunet @ 2018-09-14 15:06 UTC (permalink / raw)
To: Jose Abreu, netdev
Cc: Florian Fainelli, Neil Armstrong, Martin Blumenstingl,
David S. Miller, Joao Pinto, Giuseppe Cavallaro, Alexandre Torgue
In-Reply-To: <cover.1536762575.git.joabreu@synopsys.com>
On Thu, 2018-09-13 at 09:02 +0100, Jose Abreu wrote:
> The fix for coalesce timer and a fix in tail address setting that impacts
> XGMAC2 operation.
>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Jerome Brunet <jbrunet@baylibre.com>
> Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> Cc: David S. Miller <davem@davemloft.net>
> Cc: Joao Pinto <jpinto@synopsys.com>
> Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
> Cc: Alexandre Torgue <alexandre.torgue@st.com>
>
> Jose Abreu (2):
> net: stmmac: Rework coalesce timer and fix multi-queue races
> net: stmmac: Fixup the tail addr setting in xmit path
Looks better this time. Stable so far, with even a small throughput improvement
on the Tx path.
so for the a113 s400 board (single queue)
Tested-by: Jerome Brunet <jbrunet@baylibre.com>
>
> drivers/net/ethernet/stmicro/stmmac/common.h | 4 +-
> drivers/net/ethernet/stmicro/stmmac/stmmac.h | 14 +-
> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 238 ++++++++++++----------
> include/linux/stmmac.h | 1 +
> 4 files changed, 149 insertions(+), 108 deletions(-)
>
^ permalink raw reply
* Re: [PATCH] net/mlx4_core: print firmware version during driver loading
From: Andrew Lunn @ 2018-09-14 20:13 UTC (permalink / raw)
To: Qing Huang
Cc: Leon Romanovsky, netdev, linux-rdma, linux-kernel, tariqt, davem
In-Reply-To: <c332f10a-5ad0-53fd-5111-1964443b3092@oracle.com>
> >$ sudo ethtool -i eth0
> >driver: r8169
> >version: 2.3LK-NAPI
> >firmware-version: rtl8168g-2_0.0.1 02/06/13
> >
> > Andrew
> Sure. You can also use ibstat or ibv_devinfo tool if they are installed. But
> it's not very convenient in some cases.
This is the standardised way to do this. It should work for any
Ethernet driver, so long as it fills in the needed information.
Anything else is non-standard, and so inconvenient by definition.
Andrew
^ permalink raw reply
* PROBLEM: r8169 takes long time to get link up on linux-4.19
From: Stefan Kühn @ 2018-09-14 14:24 UTC (permalink / raw)
To: Realtek linux nic maintainers; +Cc: netdev
[-- Attachment #1: Type: text/plain, Size: 60570 bytes --]
Dear Maintainers,
I'm writing this report based on a template of
https://www.kernel.org/doc/html/v4.10/admin-guide/reporting-bugs.html. I
hope you are confident with this.
[1.] One line summary of the problem:
PROBLEM: r8169 takes long time to get link up on linux-4.19
[2.] Full description of the problem/report:
I have a LUKS encrypted system and get the key over network in the early
stage of a system bootup. A "keyscript" from the package "cryptsetup" is
responsible in the initrd. It runs after the kernel initialized its
storage subsystem made the SATA devices ready. I "modprobe" the module
r8169, apply an IP address with "ip" and output the key with "wget" to
stdout.
I noticed the recent development kernel 4.19-rc3 takes a very long time
to bring the ethernet link up. On a "cold" start (turning the system on
after night) I have to wait nearly a minute. A "warm" restart reduces
the delay to thirty seconds.
The -rc1 showed the same behaviour.
After that I discovered no serious problems with the network interface
card. But a SSH connection feels a bit slower. As if the delay (or round
trip time) has increased. So far I have not done deeper measures or made
throughput tests or similar.
At the moment I run the 4.14 longterm series without any trouble. This
one needs three to five seconds to do the job.
[3.] Keywords (i.e., modules, networking, kernel):
r8169, 4.19, ethernet, link, long, delay, bootup, networking
[4.] Kernel information
[4.1.] Kernel version (from /proc/version):
Linux version 4.19.0-rc3 (john@sohn) (gcc version 5.4.0 20160609 (Ubuntu
5.4.0-6ubuntu1~16.04.10)) #1 SMP Wed Sep 12 17:26:29 CEST 2018
[4.2.] Kernel .config file:
Please see mail attachment.
[5.] Most recent kernel version which did not have the bug:
I suppose there is none. 4.14 is okay and unfortunately I do not know
when it has changed its behaviour between these two versions.
[6.] Output of Oops.. message (if applicable) with symbolic
information resolved (see Documentation/admin-guide/oops-
tracing.rst)
There is no kernel oops.
[7.] A small shell script or example program which triggers the
problem (if possible)
I use the distributed "cryptsetup" package and the "keyscript" defined
in "/etc/crypttab" looks like this:
==============================================
#!/bin/sh
modprobe r8169
/sbin/ip link set dev enp3s0 up
/sbin/ip addr add 192.168.0.2/24 broadcast 192.168.0.255 dev enp3s0
/usr/bin/wget -q -O - [key uri]
==============================================
After that the initrd continues its normal operations like mounting the
now decrypted root filesystem.
[8.] Environment
[8.1.] Software (add the output of the ver_linux script here)
$ cat /etc/lsb-release
DISTRIB_ID=neon
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="KDE neon User Edition 5.13"
$ apt-cache policy cryptsetup
cryptsetup:
Installed: 2:1.6.6-5ubuntu2.1
Candidate: 2:1.6.6-5ubuntu2.1
Version table:
*** 2:1.6.6-5ubuntu2.1 500
500 http://de.archive.ubuntu.com/ubuntu xenial-updates/main
amd64 Packages
100 /var/lib/dpkg/status
2:1.6.6-5ubuntu2 500
500 http://de.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
[8.2.] Processor information (from /proc/cpuinfo):
Only one core for brevity.
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 60
model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
stepping : 3
microcode : 0x25
cpu MHz : 1501.694
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good
nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor
ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2
x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm
abm cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow
vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep
bmi2 erms invpcid xsaveopt dtherm ida arat pln pts flush_l1d
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf
bogomips : 6585.05
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
[8.3.] Module information (from /proc/modules):
aesni_intel 200704 2 - Live 0xffffffffc0583000
aes_x86_64 20480 1 aesni_intel, Live 0xffffffffc0570000
amdgpu 2650112 22 - Live 0xffffffffc05e7000
binfmt_misc 16384 1 - Live 0xffffffffc0ae3000
btrfs 1150976 1 - Live 0xffffffffc086f000
button 16384 0 - Live 0xffffffffc0351000
cdrom 45056 1 sr_mod, Live 0xffffffffc0a9d000
chash 16384 1 amdgpu, Live 0xffffffffc0579000
coretemp 16384 0 - Live 0xffffffffc0a82000
crc32c_intel 24576 4 - Live 0xffffffffc0429000
crc32_pclmul 16384 0 - Live 0xffffffffc05d8000
crct10dif_pclmul 16384 0 - Live 0xffffffffc05e2000
cryptd 24576 4 ghash_clmulni_intel,aesni_intel,crypto_simd, Live
0xffffffffc0545000
crypto_simd 16384 1 aesni_intel, Live 0xffffffffc0569000
dm_crypt 45056 1 - Live 0xffffffffc0483000
dm_mod 139264 16 dm_crypt, Live 0xffffffffc0372000
drm 462848 10 amdgpu,gpu_sched,drm_kms_helper,ttm, Live 0xffffffffc03ac000
drm_kms_helper 188416 1 amdgpu, Live 0xffffffffc04f6000
drm_panel_orientation_quirks 16384 1 drm, Live 0xffffffffc03a5000
ehci_hcd 61440 1 ehci_pci, Live 0xffffffffc05c8000
ehci_pci 16384 0 - Live 0xffffffffc053c000
evdev 24576 25 - Live 0xffffffffc0a09000
ext4 475136 3 - Live 0xffffffffc0cb2000
fan 16384 0 - Live 0xffffffffc0365000
fb_sys_fops 16384 1 drm_kms_helper, Live 0xffffffffc034c000
ghash_clmulni_intel 16384 0 - Live 0xffffffffc05b5000
glue_helper 16384 1 aesni_intel, Live 0xffffffffc0537000
gpu_sched 24576 1 amdgpu, Live 0xffffffffc04b0000
hid 126976 3 hid_ezkey,hid_generic,usbhid, Live 0xffffffffc0da7000
hid_ezkey 16384 0 - Live 0xffffffffc0dd2000
hid_generic 16384 0 - Live 0xffffffffc0dda000
hwmon 20480 3 coretemp,nct6775,amdgpu, Live 0xffffffffc0450000
hwmon_vid 16384 1 nct6775, Live 0xffffffffc0360000
i2c_algo_bit 16384 1 amdgpu, Live 0xffffffffc036d000
ip6table_filter 16384 1 - Live 0xffffffffc0d8e000
ip6table_mangle 16384 0 - Live 0xffffffffc0da2000
ip6_tables 28672 3 ip6table_mangle,ip6table_filter, Live 0xffffffffc0d82000
ip6t_REJECT 16384 10 - Live 0xffffffffc0d98000
iptable_filter 16384 2 - Live 0xffffffffc0ae8000
iptable_mangle 16384 0 - Live 0xffffffffc0d7a000
ip_tables 28672 11 iptable_mangle,iptable_filter, Live 0xffffffffc0b9f000
ipt_REJECT 16384 11 - Live 0xffffffffc0d5c000
ipv6 479232 60 ip6table_mangle,nf_reject_ipv6,[permanent], Live
0xffffffffc0989000
jbd2 86016 1 ext4, Live 0xffffffffc0c9c000
joydev 24576 0 - Live 0xffffffffc0dc7000
libcrc32c 16384 3 nf_conntrack,xfs,btrfs, Live 0xffffffffc0430000
libphy 69632 2 r8169, Live 0xffffffffc043e000
macvlan 28672 0 - Live 0xffffffffc0de6000
mbcache 16384 1 ext4, Live 0xffffffffc09ff000
mfd_core 16384 1 amdgpu, Live 0xffffffffc057e000
mousedev 24576 0 - Live 0xffffffffc0ddf000
nct6775 65536 0 - Live 0xffffffffc054c000
nf_conntrack 212992 1 xt_conntrack, Live 0xffffffffc0d27000
nf_defrag_ipv4 16384 1 nf_conntrack, Live 0xffffffffc0b29000
nf_defrag_ipv6 20480 1 nf_conntrack, Live 0xffffffffc0b58000
nf_log_common 16384 2 nf_log_ipv6,nf_log_ipv4, Live 0xffffffffc0d70000
nf_log_ipv4 16384 5 - Live 0xffffffffc0d75000
nf_log_ipv6 16384 5 - Live 0xffffffffc0d9d000
nf_reject_ipv4 16384 1 ipt_REJECT, Live 0xffffffffc0c96000
nf_reject_ipv6 16384 1 ip6t_REJECT, Live 0xffffffffc0d93000
parport 57344 2 parport_pc,ppdev, Live 0xffffffffc0525000
parport_pc 32768 0 - Live 0xffffffffc0435000
pcc_cpufreq 16384 0 - Live 0xffffffffc05dd000
pcspkr 16384 0 - Live 0xffffffffc0561000
ppdev 20480 0 - Live 0xffffffffc046f000
r8169 86016 0 - Live 0xffffffffc0459000
raid6_pq 122880 1 btrfs, Live 0xffffffffc048f000
sd_mod 49152 3 - Live 0xffffffffc0476000
sg 40960 0 - Live 0xffffffffc0a77000
snd 90112 20
snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_seq,snd_seq_device,snd_timer,
Live 0xffffffffc0ab1000
snd_hda_codec 135168 4
snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,
Live 0xffffffffc0b07000
snd_hda_codec_generic 81920 1 snd_hda_codec_realtek, Live 0xffffffffc0b5e000
snd_hda_codec_hdmi 57344 1 - Live 0xffffffffc0b30000
snd_hda_codec_realtek 106496 1 - Live 0xffffffffc0b73000
snd_hda_core 77824 5
snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,
Live 0xffffffffc0b44000
snd_hda_intel 36864 5 - Live 0xffffffffc0a90000
snd_hwdep 16384 1 snd_hda_codec, Live 0xffffffffc0a04000
snd_pcm 102400 4
snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core, Live
0xffffffffc0aed000
snd_seq 73728 0 - Live 0xffffffffc0ac8000
snd_seq_device 16384 1 snd_seq, Live 0xffffffffc0a87000
snd_timer 36864 2 snd_pcm,snd_seq, Live 0xffffffffc05be000
soundcore 16384 1 snd, Live 0xffffffffc04dd000
sr_mod 28672 0 - Live 0xffffffffc0aa9000
syscopyarea 16384 1 drm_kms_helper, Live 0xffffffffc04ef000
sysfillrect 16384 1 drm_kms_helper, Live 0xffffffffc04e8000
sysimgblt 16384 1 drm_kms_helper, Live 0xffffffffc03a0000
thermal 20480 0 - Live 0xffffffffc035a000
ttm 122880 1 amdgpu, Live 0xffffffffc04be000
uas 28672 0 - Live 0xffffffffc0adb000
usb_common 16384 1 usbcore, Live 0xffffffffc04b7000
usbcore 253952 7
usbhid,uas,usb_storage,ehci_pci,ehci_hcd,xhci_pci,xhci_hcd, Live
0xffffffffc0a10000
usbhid 53248 0 - Live 0xffffffffc0e43000
usb_storage 65536 1 uas, Live 0xffffffffc0b8e000
video 45056 0 - Live 0xffffffffc0340000
wmi 28672 0 - Live 0xffffffffc0398000
xfs 856064 1 - Live 0xffffffffc0ba9000
xhci_hcd 159744 1 xhci_pci, Live 0xffffffffc0a4f000
xhci_pci 16384 0 - Live 0xffffffffc04e2000
xor 24576 1 btrfs, Live 0xffffffffc0422000
x_tables 45056 15
ip6table_mangle,ip6t_REJECT,ip6table_filter,ip6_tables,iptable_mangle,xt_LOG,xt_pkttype,xt_tcpudp,ipt_REJECT,xt_comment,xt_owner,xt_multiport,xt_conntrack,iptable_filter,ip_tables,
Live 0xffffffffc0c7b000
xt_comment 16384 11 - Live 0xffffffffc0c91000
xt_conntrack 16384 7 - Live 0xffffffffc0b3f000
xt_LOG 16384 10 - Live 0xffffffffc0d6b000
xt_multiport 16384 6 - Live 0xffffffffc0c87000
xt_owner 16384 2 - Live 0xffffffffc0c8c000
xt_pkttype 16384 4 - Live 0xffffffffc0d66000
xt_tcpudp 16384 37 - Live 0xffffffffc0d61000
[8.4.] Loaded driver and hardware information (/proc/ioports,
/proc/iomem)
$ cat /proc/ioports
0000-0cf7 : PCI Bus 0000:00
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-0060 : keyboard
0064-0064 : keyboard
0070-0077 : rtc0
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
00f0-00f0 : PNP0C04:00
0290-029f : pnp 00:04
0295-0296 : nct6775
0295-0296 : nct6775
0378-037a : parport0
03c0-03df : vesafb
04d0-04d1 : pnp 00:06
0680-069f : pnp 00:01
0cf8-0cff : PCI conf1
0d00-ffff : PCI Bus 0000:00
164e-164f : pnp 00:01
1800-18fe : pnp 00:01
1800-1803 : ACPI PM1a_EVT_BLK
1804-1805 : ACPI PM1a_CNT_BLK
1808-180b : ACPI PM_TMR
1820-182f : ACPI GPE0_BLK
1850-1850 : ACPI PM2_CNT_BLK
1854-1857 : pnp 00:03
1c00-1cfe : pnp 00:01
1d00-1dfe : pnp 00:01
1e00-1efe : pnp 00:01
1f00-1ffe : pnp 00:01
2000-2fff : PCI Bus 0000:02
d000-dfff : PCI Bus 0000:03
d000-d0ff : 0000:03:00.0
e000-efff : PCI Bus 0000:01
e000-e0ff : 0000:01:00.0
f000-f01f : 0000:00:1f.3
f020-f03f : 0000:00:1f.2
f020-f03f : ahci
f040-f043 : 0000:00:1f.2
f040-f043 : ahci
f050-f057 : 0000:00:1f.2
f050-f057 : ahci
f060-f063 : 0000:00:1f.2
f060-f063 : ahci
f070-f077 : 0000:00:1f.2
f070-f077 : ahci
ffff-ffff : pnp 00:01
ffff-ffff : pnp 00:01
ffff-ffff : pnp 00:01
$ cat /proc/iomem
00000000-00000fff : Reserved
00001000-0009d7ff : System RAM
0009d800-0009ffff : Reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000ce7ff : Video ROM
000d0000-000d3fff : PCI Bus 0000:00
000d4000-000d7fff : PCI Bus 0000:00
000d8000-000dbfff : PCI Bus 0000:00
000dc000-000dffff : PCI Bus 0000:00
000e0000-000fffff : Reserved
000e0000-000e3fff : PCI Bus 0000:00
000e4000-000e7fff : PCI Bus 0000:00
000f0000-000fffff : System ROM
00100000-c5768fff : System RAM
c5769000-c576ffff : ACPI Non-volatile Storage
c5770000-c5bc7fff : System RAM
c5bc8000-c5ff9fff : Reserved
c5ffa000-dd689fff : System RAM
dd68a000-dd713fff : Reserved
dd714000-dd72afff : ACPI Tables
dd72b000-ddc64fff : ACPI Non-volatile Storage
ddc65000-deffefff : Reserved
defff000-deffffff : System RAM
df000000-dfffffff : RAM buffer
e0000000-feafffff : PCI Bus 0000:00
e0000000-f01fffff : PCI Bus 0000:01
e0000000-efffffff : 0000:01:00.0
f0000000-f01fffff : 0000:01:00.0
f0300000-f03fffff : PCI Bus 0000:03
f0300000-f0303fff : 0000:03:00.0
f0400000-f05fffff : PCI Bus 0000:02
f0600000-f07fffff : PCI Bus 0000:02
f7d00000-f7dfffff : PCI Bus 0000:03
f7d00000-f7d00fff : 0000:03:00.0
f7d00000-f7d00fff : r8169
f7e00000-f7efffff : PCI Bus 0000:01
f7e00000-f7e3ffff : 0000:01:00.0
f7e60000-f7e63fff : 0000:01:00.1
f7e60000-f7e63fff : ICH HD audio
f7f00000-f7f0ffff : 0000:00:14.0
f7f00000-f7f0ffff : xhci-hcd
f7f10000-f7f13fff : 0000:00:1b.0
f7f10000-f7f13fff : ICH HD audio
f7f15000-f7f150ff : 0000:00:1f.3
f7f16000-f7f167ff : 0000:00:1f.2
f7f16000-f7f167ff : ahci
f7f17000-f7f173ff : 0000:00:1d.0
f7f17000-f7f173ff : ehci_hcd
f7f18000-f7f183ff : 0000:00:1a.0
f7f18000-f7f183ff : ehci_hcd
f7f1a000-f7f1a00f : 0000:00:16.0
f7fdf000-f7fdffff : pnp 00:07
f7fe0000-f7feffff : pnp 00:07
f8000000-fbffffff : PCI MMCONFIG 0000 [bus 00-3f]
f8000000-fbffffff : Reserved
f8000000-fbffffff : pnp 00:07
fec00000-fec00fff : Reserved
fec00000-fec003ff : IOAPIC 0
fed00000-fed03fff : Reserved
fed00000-fed003ff : HPET 0
fed00000-fed003ff : PNP0103:00
fed10000-fed17fff : pnp 00:07
fed18000-fed18fff : pnp 00:07
fed19000-fed19fff : pnp 00:07
fed1c000-fed1ffff : Reserved
fed1c000-fed1ffff : pnp 00:07
fed20000-fed3ffff : pnp 00:07
fed40000-fed44fff : pnp 00:00
fed45000-fed8ffff : pnp 00:07
fed90000-fed93fff : pnp 00:07
fee00000-fee00fff : Local APIC
fee00000-fee00fff : Reserved
ff000000-ffffffff : Reserved
ff000000-ffffffff : INT0800:00
ff000000-ffffffff : pnp 00:07
100000000-41effffff : System RAM
163000000-1638071d0 : Kernel code
1638071d1-163ea9c7f : Kernel data
1643a0000-164dc6fff : Kernel bss
41f000000-41fffffff : RAM buffer
[8.5.] PCI information ('lspci -vvv' as root)
Please see mail attachment.
[8.6.] SCSI information (from /proc/scsi/scsi)
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: Samsung SSD 840 Rev: DB6Q
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: WDC WD10EZEX-00M Rev: 1A01
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: SAMSUNG HD502HJ Rev: 0001
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: SanDisk SDSSDHII Rev: 00RL
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
Vendor: HL-DT-ST Model: DVDRAM GH24NSC0 Rev: LK00
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi6 Channel: 00 Id: 00 Lun: 00
Vendor: Generic Model: STORAGE DEVICE Rev: 1203
Type: Direct-Access ANSI SCSI revision: 06
Host: scsi6 Channel: 00 Id: 00 Lun: 01
Vendor: Generic Model: STORAGE DEVICE Rev: 1203
Type: Direct-Access ANSI SCSI revision: 06
Host: scsi6 Channel: 00 Id: 00 Lun: 02
Vendor: Generic Model: STORAGE DEVICE Rev: 1203
Type: Direct-Access ANSI SCSI revision: 06
Host: scsi6 Channel: 00 Id: 00 Lun: 03
Vendor: Generic Model: STORAGE DEVICE Rev: 1203
Type: Direct-Access ANSI SCSI revision: 06
Host: scsi6 Channel: 00 Id: 00 Lun: 04
Vendor: Generic Model: STORAGE DEVICE Rev: 1203
Type: Direct-Access ANSI SCSI revision: 06
[8.7.] Other information that might be relevant to the problem
(please look in /proc and include all information that you
think to be relevant):
I have attached a "dmesg" to this mail.
This is the content of the initrd. It is set to "MODULES=dep" ("try and
guess which modules to load").
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/GenuineIntel.bin
.
bin
bin/kmod
bin/btrfs
bin/btrfs-zero-log
bin/fsck.btrfs
bin/cpio
bin/dd
bin/dmesg
bin/fstype
bin/halt
bin/ipconfig
bin/losetup
bin/minips
bin/nfsmount
bin/nuke
bin/pivot_root
bin/poweroff
bin/reboot
bin/resume
bin/run-init
bin/plymouth
bin/udevadm
bin/yes
bin/which
bin/wget
bin/wc
bin/unlzop
bin/uniq
bin/uname
bin/umount
bin/tty
bin/true
bin/tr
bin/touch
bin/test
bin/tee
bin/tail
bin/sync
bin/switch_root
bin/stty
bin/static-sh
bin/stat
bin/sort
bin/sleep
bin/sh
bin/setkeycodes
bin/seq
bin/sed
bin/rmdir
bin/rm
bin/reset
bin/readlink
bin/pwd
bin/ps
bin/printf
bin/pidof
bin/openvt
bin/mv
bin/mount
bin/more
bin/modinfo
bin/mktemp
bin/mkswap
bin/mknod
bin/mkfifo
bin/mkdir
bin/lzopcat
bin/lzop
bin/ls
bin/loadkmap
bin/loadfont
bin/ln
bin/kill
bin/ip
bin/ifconfig
bin/hwclock
bin/hostname
bin/gzip
bin/gunzip
bin/grep
bin/fstrim
bin/find
bin/fgrep
bin/fdflush
bin/fbset
bin/false
bin/expr
bin/env
bin/egrep
bin/echo
bin/dumpkmap
bin/du
bin/dnsdomainname
bin/df
bin/devmem
bin/deallocvt
bin/cut
bin/cp
bin/cmp
bin/clear
bin/chvt
bin/chroot
bin/chmod
bin/cat
bin/blockdev
bin/basename
bin/awk
bin/ash
bin/acpid
bin/[[
bin/[
bin/busybox
bin/zcat
bin/run-parts
bin/ntfs-3g
bin/setfont
bin/kbd_mode
bin/loadkeys
bin/date
conf
conf/conf.d
conf/conf.d/resume
conf/conf.d/cryptroot
conf/modules
conf/arch.conf
conf/initramfs.conf
etc
etc/fstab
etc/mtab
etc/modprobe.d
etc/modprobe.d/alsa-base.conf
etc/modprobe.d/blacklist-ath_pci.conf
etc/modprobe.d/blacklist-crypto-accel.conf
etc/modprobe.d/blacklist-firewire.conf
etc/modprobe.d/blacklist-framebuffer.conf
etc/modprobe.d/blacklist-kvm.conf
etc/modprobe.d/blacklist-modem.conf
etc/modprobe.d/blacklist-oss.conf
etc/modprobe.d/blacklist-rare-network.conf
etc/modprobe.d/blacklist-watchdog.conf
etc/modprobe.d/blacklist.conf
etc/modprobe.d/fbdev-blacklist.conf
etc/modprobe.d/intel-microcode-blacklist.conf
etc/modprobe.d/iwlwifi.conf
etc/modprobe.d/mlx4.conf
etc/modprobe.d/vmwgfx-fbdev.conf
etc/e2fsck.conf
etc/os-release
etc/fonts
etc/fonts/conf.d
etc/fonts/conf.d/56-neon-noto.conf
etc/fonts/fonts.conf
etc/plymouth
etc/passwd
etc/nsswitch.conf
etc/udev
etc/udev/udev.conf
etc/dhcp
etc/dhcp/dhclient-enter-hooks.d
etc/dhcp/dhclient-enter-hooks.d/config
etc/dhcp/dhclient.conf
etc/default
etc/default/keyboard
etc/default/console-setup
etc/console-setup
etc/console-setup/cached.kmap.gz
etc/lvm
etc/lvm/lvm.conf
etc/ca.pem
etc/ld.so.conf
etc/ld.so.conf.d
etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf
etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf
etc/ld.so.conf.d/fakeroot-x86_64-linux-gnu.conf
etc/ld.so.conf.d/libc.conf
etc/ld.so.conf.d/x86_64-linux-gnu.conf
etc/ld.so.cache
lib
lib/modules
lib/modules/4.19.0-rc3
lib/modules/4.19.0-rc3/modules.builtin
lib/modules/4.19.0-rc3/modules.order
lib/modules/4.19.0-rc3/kernel
lib/modules/4.19.0-rc3/kernel/drivers
lib/modules/4.19.0-rc3/kernel/drivers/net
lib/modules/4.19.0-rc3/kernel/drivers/net/phy
lib/modules/4.19.0-rc3/kernel/drivers/net/phy/libphy.ko
lib/modules/4.19.0-rc3/kernel/drivers/net/ethernet
lib/modules/4.19.0-rc3/kernel/drivers/net/ethernet/realtek
lib/modules/4.19.0-rc3/kernel/drivers/net/ethernet/realtek/r8169.ko
lib/modules/4.19.0-rc3/kernel/drivers/scsi
lib/modules/4.19.0-rc3/kernel/drivers/scsi/sd_mod.ko
lib/modules/4.19.0-rc3/kernel/drivers/md
lib/modules/4.19.0-rc3/kernel/drivers/md/dm-mod.ko
lib/modules/4.19.0-rc3/kernel/drivers/md/dm-crypt.ko
lib/modules/4.19.0-rc3/kernel/drivers/md/dm-bufio.ko
lib/modules/4.19.0-rc3/kernel/drivers/md/dm-snapshot.ko
lib/modules/4.19.0-rc3/kernel/drivers/char
lib/modules/4.19.0-rc3/kernel/drivers/char/agp
lib/modules/4.19.0-rc3/kernel/drivers/char/agp/intel-gtt.ko
lib/modules/4.19.0-rc3/kernel/drivers/gpu
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/drm_panel_orientation_quirks.ko
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/drm.ko
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/ttm
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/ttm/ttm.ko
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/scheduler
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/scheduler/gpu-sched.ko
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/drm_kms_helper.ko
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/radeon
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/radeon/radeon.ko
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/nouveau
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/nouveau/nouveau.ko
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/i915
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/i915/i915.ko
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/amd
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/amd/lib
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/amd/lib/chash.ko
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/amd/amdgpu
lib/modules/4.19.0-rc3/kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko
lib/modules/4.19.0-rc3/kernel/drivers/video
lib/modules/4.19.0-rc3/kernel/drivers/video/fbdev
lib/modules/4.19.0-rc3/kernel/drivers/video/fbdev/core
lib/modules/4.19.0-rc3/kernel/drivers/video/fbdev/core/fb_sys_fops.ko
lib/modules/4.19.0-rc3/kernel/drivers/video/fbdev/core/sysimgblt.ko
lib/modules/4.19.0-rc3/kernel/drivers/video/fbdev/core/sysfillrect.ko
lib/modules/4.19.0-rc3/kernel/drivers/video/fbdev/core/syscopyarea.ko
lib/modules/4.19.0-rc3/kernel/drivers/i2c
lib/modules/4.19.0-rc3/kernel/drivers/i2c/algos
lib/modules/4.19.0-rc3/kernel/drivers/i2c/algos/i2c-algo-bit.ko
lib/modules/4.19.0-rc3/kernel/drivers/hwmon
lib/modules/4.19.0-rc3/kernel/drivers/hwmon/hwmon.ko
lib/modules/4.19.0-rc3/kernel/drivers/acpi
lib/modules/4.19.0-rc3/kernel/drivers/acpi/video.ko
lib/modules/4.19.0-rc3/kernel/drivers/acpi/button.ko
lib/modules/4.19.0-rc3/kernel/drivers/acpi/fan.ko
lib/modules/4.19.0-rc3/kernel/drivers/acpi/thermal.ko
lib/modules/4.19.0-rc3/kernel/drivers/platform
lib/modules/4.19.0-rc3/kernel/drivers/platform/x86
lib/modules/4.19.0-rc3/kernel/drivers/platform/x86/wmi.ko
lib/modules/4.19.0-rc3/kernel/drivers/mfd
lib/modules/4.19.0-rc3/kernel/drivers/mfd/mfd-core.ko
lib/modules/4.19.0-rc3/kernel/arch
lib/modules/4.19.0-rc3/kernel/arch/x86
lib/modules/4.19.0-rc3/kernel/arch/x86/crypto
lib/modules/4.19.0-rc3/kernel/arch/x86/crypto/crc32c-intel.ko
lib/modules/4.19.0-rc3/kernel/arch/x86/crypto/aes-x86_64.ko
lib/modules/4.19.0-rc3/kernel/arch/x86/crypto/glue_helper.ko
lib/modules/4.19.0-rc3/kernel/arch/x86/crypto/aesni-intel.ko
lib/modules/4.19.0-rc3/kernel/arch/x86/platform
lib/modules/4.19.0-rc3/kernel/arch/x86/platform/intel
lib/modules/4.19.0-rc3/kernel/arch/x86/platform/intel/iosf_mbi.ko
lib/modules/4.19.0-rc3/kernel/lib
lib/modules/4.19.0-rc3/kernel/lib/libcrc32c.ko
lib/modules/4.19.0-rc3/kernel/lib/raid6
lib/modules/4.19.0-rc3/kernel/lib/raid6/raid6_pq.ko
lib/modules/4.19.0-rc3/kernel/crypto
lib/modules/4.19.0-rc3/kernel/crypto/xor.ko
lib/modules/4.19.0-rc3/kernel/crypto/xts.ko
lib/modules/4.19.0-rc3/kernel/crypto/cryptd.ko
lib/modules/4.19.0-rc3/kernel/crypto/crypto_simd.ko
lib/modules/4.19.0-rc3/kernel/fs
lib/modules/4.19.0-rc3/kernel/fs/btrfs
lib/modules/4.19.0-rc3/kernel/fs/btrfs/btrfs.ko
lib/modules/4.19.0-rc3/kernel/fs/fuse
lib/modules/4.19.0-rc3/kernel/fs/fuse/fuse.ko
lib/modules/4.19.0-rc3/modules.dep
lib/modules/4.19.0-rc3/modules.dep.bin
lib/modules/4.19.0-rc3/modules.alias
lib/modules/4.19.0-rc3/modules.alias.bin
lib/modules/4.19.0-rc3/modules.softdep
lib/modules/4.19.0-rc3/modules.symbols
lib/modules/4.19.0-rc3/modules.symbols.bin
lib/modules/4.19.0-rc3/modules.builtin.bin
lib/modules/4.19.0-rc3/modules.devname
lib/firmware
lib/firmware/rtl_nic
lib/firmware/rtl_nic/rtl8107e-2.fw
lib/firmware/rtl_nic/rtl8107e-1.fw
lib/firmware/rtl_nic/rtl8168h-2.fw
lib/firmware/rtl_nic/rtl8168h-1.fw
lib/firmware/rtl_nic/rtl8168g-3.fw
lib/firmware/rtl_nic/rtl8168g-2.fw
lib/firmware/rtl_nic/rtl8106e-2.fw
lib/firmware/rtl_nic/rtl8106e-1.fw
lib/firmware/rtl_nic/rtl8411-2.fw
lib/firmware/rtl_nic/rtl8411-1.fw
lib/firmware/rtl_nic/rtl8402-1.fw
lib/firmware/rtl_nic/rtl8168f-2.fw
lib/firmware/rtl_nic/rtl8168f-1.fw
lib/firmware/rtl_nic/rtl8105e-1.fw
lib/firmware/rtl_nic/rtl8168e-3.fw
lib/firmware/rtl_nic/rtl8168e-2.fw
lib/firmware/rtl_nic/rtl8168e-1.fw
lib/firmware/rtl_nic/rtl8168d-2.fw
lib/firmware/rtl_nic/rtl8168d-1.fw
lib/firmware/radeon
lib/firmware/radeon/R520_cp.bin
lib/firmware/radeon/RS600_cp.bin
lib/firmware/radeon/RS690_cp.bin
lib/firmware/radeon/R420_cp.bin
lib/firmware/radeon/R300_cp.bin
lib/firmware/radeon/R200_cp.bin
lib/firmware/radeon/R100_cp.bin
lib/firmware/radeon/SUMO2_me.bin
lib/firmware/radeon/SUMO2_pfp.bin
lib/firmware/radeon/SUMO_me.bin
lib/firmware/radeon/SUMO_pfp.bin
lib/firmware/radeon/SUMO_rlc.bin
lib/firmware/radeon/PALM_me.bin
lib/firmware/radeon/PALM_pfp.bin
lib/firmware/radeon/CYPRESS_smc.bin
lib/firmware/radeon/CYPRESS_rlc.bin
lib/firmware/radeon/CYPRESS_me.bin
lib/firmware/radeon/CYPRESS_pfp.bin
lib/firmware/radeon/JUNIPER_smc.bin
lib/firmware/radeon/JUNIPER_rlc.bin
lib/firmware/radeon/JUNIPER_me.bin
lib/firmware/radeon/JUNIPER_pfp.bin
lib/firmware/radeon/REDWOOD_smc.bin
lib/firmware/radeon/REDWOOD_rlc.bin
lib/firmware/radeon/REDWOOD_me.bin
lib/firmware/radeon/REDWOOD_pfp.bin
lib/firmware/radeon/CEDAR_smc.bin
lib/firmware/radeon/CEDAR_rlc.bin
lib/firmware/radeon/CEDAR_me.bin
lib/firmware/radeon/CEDAR_pfp.bin
lib/firmware/radeon/R700_rlc.bin
lib/firmware/radeon/R600_rlc.bin
lib/firmware/radeon/RV710_smc.bin
lib/firmware/radeon/RV710_me.bin
lib/firmware/radeon/RV710_pfp.bin
lib/firmware/radeon/RV740_smc.bin
lib/firmware/radeon/RV730_smc.bin
lib/firmware/radeon/RV730_me.bin
lib/firmware/radeon/RV730_pfp.bin
lib/firmware/radeon/RV770_smc.bin
lib/firmware/radeon/RV770_me.bin
lib/firmware/radeon/RV770_pfp.bin
lib/firmware/radeon/RS780_me.bin
lib/firmware/radeon/RS780_pfp.bin
lib/firmware/radeon/RV670_me.bin
lib/firmware/radeon/RV670_pfp.bin
lib/firmware/radeon/RV635_me.bin
lib/firmware/radeon/RV635_pfp.bin
lib/firmware/radeon/RV620_me.bin
lib/firmware/radeon/RV620_pfp.bin
lib/firmware/radeon/RV630_me.bin
lib/firmware/radeon/RV630_pfp.bin
lib/firmware/radeon/RV610_me.bin
lib/firmware/radeon/RV610_pfp.bin
lib/firmware/radeon/R600_me.bin
lib/firmware/radeon/R600_pfp.bin
lib/firmware/radeon/ARUBA_rlc.bin
lib/firmware/radeon/ARUBA_me.bin
lib/firmware/radeon/ARUBA_pfp.bin
lib/firmware/radeon/CAYMAN_smc.bin
lib/firmware/radeon/CAYMAN_rlc.bin
lib/firmware/radeon/CAYMAN_mc.bin
lib/firmware/radeon/CAYMAN_me.bin
lib/firmware/radeon/CAYMAN_pfp.bin
lib/firmware/radeon/CAICOS_smc.bin
lib/firmware/radeon/CAICOS_mc.bin
lib/firmware/radeon/CAICOS_me.bin
lib/firmware/radeon/CAICOS_pfp.bin
lib/firmware/radeon/TURKS_smc.bin
lib/firmware/radeon/TURKS_mc.bin
lib/firmware/radeon/TURKS_me.bin
lib/firmware/radeon/TURKS_pfp.bin
lib/firmware/radeon/BTC_rlc.bin
lib/firmware/radeon/BARTS_smc.bin
lib/firmware/radeon/BARTS_mc.bin
lib/firmware/radeon/BARTS_me.bin
lib/firmware/radeon/BARTS_pfp.bin
lib/firmware/radeon/si58_mc.bin
lib/firmware/radeon/banks_k_2_smc.bin
lib/firmware/radeon/hainan_k_smc.bin
lib/firmware/radeon/hainan_smc.bin
lib/firmware/radeon/hainan_rlc.bin
lib/firmware/radeon/hainan_mc.bin
lib/firmware/radeon/hainan_ce.bin
lib/firmware/radeon/hainan_me.bin
lib/firmware/radeon/hainan_pfp.bin
lib/firmware/radeon/HAINAN_smc.bin
lib/firmware/radeon/HAINAN_rlc.bin
lib/firmware/radeon/HAINAN_mc2.bin
lib/firmware/radeon/HAINAN_mc.bin
lib/firmware/radeon/HAINAN_ce.bin
lib/firmware/radeon/HAINAN_me.bin
lib/firmware/radeon/HAINAN_pfp.bin
lib/firmware/radeon/oland_k_smc.bin
lib/firmware/radeon/oland_smc.bin
lib/firmware/radeon/oland_rlc.bin
lib/firmware/radeon/oland_mc.bin
lib/firmware/radeon/oland_ce.bin
lib/firmware/radeon/oland_me.bin
lib/firmware/radeon/oland_pfp.bin
lib/firmware/radeon/OLAND_smc.bin
lib/firmware/radeon/OLAND_rlc.bin
lib/firmware/radeon/OLAND_mc2.bin
lib/firmware/radeon/OLAND_mc.bin
lib/firmware/radeon/OLAND_ce.bin
lib/firmware/radeon/OLAND_me.bin
lib/firmware/radeon/OLAND_pfp.bin
lib/firmware/radeon/verde_k_smc.bin
lib/firmware/radeon/verde_smc.bin
lib/firmware/radeon/verde_rlc.bin
lib/firmware/radeon/verde_mc.bin
lib/firmware/radeon/verde_ce.bin
lib/firmware/radeon/verde_me.bin
lib/firmware/radeon/verde_pfp.bin
lib/firmware/radeon/VERDE_smc.bin
lib/firmware/radeon/VERDE_rlc.bin
lib/firmware/radeon/VERDE_mc2.bin
lib/firmware/radeon/VERDE_mc.bin
lib/firmware/radeon/VERDE_ce.bin
lib/firmware/radeon/VERDE_me.bin
lib/firmware/radeon/VERDE_pfp.bin
lib/firmware/radeon/pitcairn_k_smc.bin
lib/firmware/radeon/pitcairn_smc.bin
lib/firmware/radeon/pitcairn_rlc.bin
lib/firmware/radeon/pitcairn_mc.bin
lib/firmware/radeon/pitcairn_ce.bin
lib/firmware/radeon/pitcairn_me.bin
lib/firmware/radeon/pitcairn_pfp.bin
lib/firmware/radeon/PITCAIRN_smc.bin
lib/firmware/radeon/PITCAIRN_rlc.bin
lib/firmware/radeon/PITCAIRN_mc2.bin
lib/firmware/radeon/PITCAIRN_mc.bin
lib/firmware/radeon/PITCAIRN_ce.bin
lib/firmware/radeon/PITCAIRN_me.bin
lib/firmware/radeon/PITCAIRN_pfp.bin
lib/firmware/radeon/tahiti_smc.bin
lib/firmware/radeon/tahiti_rlc.bin
lib/firmware/radeon/tahiti_mc.bin
lib/firmware/radeon/tahiti_ce.bin
lib/firmware/radeon/tahiti_me.bin
lib/firmware/radeon/tahiti_pfp.bin
lib/firmware/radeon/TAHITI_smc.bin
lib/firmware/radeon/TAHITI_rlc.bin
lib/firmware/radeon/TAHITI_mc2.bin
lib/firmware/radeon/TAHITI_mc.bin
lib/firmware/radeon/TAHITI_ce.bin
lib/firmware/radeon/TAHITI_me.bin
lib/firmware/radeon/TAHITI_pfp.bin
lib/firmware/radeon/mullins_sdma.bin
lib/firmware/radeon/mullins_rlc.bin
lib/firmware/radeon/mullins_mec.bin
lib/firmware/radeon/mullins_ce.bin
lib/firmware/radeon/mullins_me.bin
lib/firmware/radeon/mullins_pfp.bin
lib/firmware/radeon/MULLINS_sdma.bin
lib/firmware/radeon/MULLINS_rlc.bin
lib/firmware/radeon/MULLINS_mec.bin
lib/firmware/radeon/MULLINS_ce.bin
lib/firmware/radeon/MULLINS_me.bin
lib/firmware/radeon/MULLINS_pfp.bin
lib/firmware/radeon/kabini_sdma.bin
lib/firmware/radeon/kabini_rlc.bin
lib/firmware/radeon/kabini_mec.bin
lib/firmware/radeon/kabini_ce.bin
lib/firmware/radeon/kabini_me.bin
lib/firmware/radeon/kabini_pfp.bin
lib/firmware/radeon/KABINI_sdma.bin
lib/firmware/radeon/KABINI_rlc.bin
lib/firmware/radeon/KABINI_mec.bin
lib/firmware/radeon/KABINI_ce.bin
lib/firmware/radeon/KABINI_me.bin
lib/firmware/radeon/KABINI_pfp.bin
lib/firmware/radeon/kaveri_sdma.bin
lib/firmware/radeon/kaveri_rlc.bin
lib/firmware/radeon/kaveri_mec2.bin
lib/firmware/radeon/kaveri_mec.bin
lib/firmware/radeon/kaveri_ce.bin
lib/firmware/radeon/kaveri_me.bin
lib/firmware/radeon/kaveri_pfp.bin
lib/firmware/radeon/KAVERI_sdma.bin
lib/firmware/radeon/KAVERI_rlc.bin
lib/firmware/radeon/KAVERI_mec.bin
lib/firmware/radeon/KAVERI_ce.bin
lib/firmware/radeon/KAVERI_me.bin
lib/firmware/radeon/KAVERI_pfp.bin
lib/firmware/radeon/hawaii_k_smc.bin
lib/firmware/radeon/hawaii_smc.bin
lib/firmware/radeon/hawaii_sdma.bin
lib/firmware/radeon/hawaii_rlc.bin
lib/firmware/radeon/hawaii_mc.bin
lib/firmware/radeon/hawaii_mec.bin
lib/firmware/radeon/hawaii_ce.bin
lib/firmware/radeon/hawaii_me.bin
lib/firmware/radeon/hawaii_pfp.bin
lib/firmware/radeon/HAWAII_smc.bin
lib/firmware/radeon/HAWAII_sdma.bin
lib/firmware/radeon/HAWAII_rlc.bin
lib/firmware/radeon/HAWAII_mc2.bin
lib/firmware/radeon/HAWAII_mc.bin
lib/firmware/radeon/HAWAII_mec.bin
lib/firmware/radeon/HAWAII_ce.bin
lib/firmware/radeon/HAWAII_me.bin
lib/firmware/radeon/HAWAII_pfp.bin
lib/firmware/radeon/bonaire_k_smc.bin
lib/firmware/radeon/bonaire_smc.bin
lib/firmware/radeon/bonaire_sdma.bin
lib/firmware/radeon/bonaire_rlc.bin
lib/firmware/radeon/bonaire_mc.bin
lib/firmware/radeon/bonaire_mec.bin
lib/firmware/radeon/bonaire_ce.bin
lib/firmware/radeon/bonaire_me.bin
lib/firmware/radeon/bonaire_pfp.bin
lib/firmware/radeon/BONAIRE_smc.bin
lib/firmware/radeon/BONAIRE_sdma.bin
lib/firmware/radeon/BONAIRE_rlc.bin
lib/firmware/radeon/BONAIRE_mc2.bin
lib/firmware/radeon/BONAIRE_mc.bin
lib/firmware/radeon/BONAIRE_mec.bin
lib/firmware/radeon/BONAIRE_ce.bin
lib/firmware/radeon/BONAIRE_me.bin
lib/firmware/radeon/BONAIRE_pfp.bin
lib/firmware/radeon/bonaire_uvd.bin
lib/firmware/radeon/BONAIRE_uvd.bin
lib/firmware/radeon/TAHITI_uvd.bin
lib/firmware/radeon/SUMO_uvd.bin
lib/firmware/radeon/CYPRESS_uvd.bin
lib/firmware/radeon/RV710_uvd.bin
lib/firmware/radeon/RV770_uvd.bin
lib/firmware/radeon/RS780_uvd.bin
lib/firmware/radeon/R600_uvd.bin
lib/firmware/radeon/BONAIRE_vce.bin
lib/firmware/radeon/TAHITI_vce.bin
lib/firmware/nvidia
lib/firmware/nvidia/gp100
lib/firmware/nvidia/gp100/gr
lib/firmware/nvidia/gp100/gr/sw_method_init.bin
lib/firmware/nvidia/gp100/gr/sw_bundle_init.bin
lib/firmware/nvidia/gp100/gr/sw_nonctx.bin
lib/firmware/nvidia/gp100/gr/sw_ctx.bin
lib/firmware/nvidia/gp100/gr/gpccs_sig.bin
lib/firmware/nvidia/gp100/gr/gpccs_data.bin
lib/firmware/nvidia/gp100/gr/gpccs_inst.bin
lib/firmware/nvidia/gp100/gr/gpccs_bl.bin
lib/firmware/nvidia/gp100/gr/fecs_sig.bin
lib/firmware/nvidia/gp100/gr/fecs_data.bin
lib/firmware/nvidia/gp100/gr/fecs_inst.bin
lib/firmware/nvidia/gp100/gr/fecs_bl.bin
lib/firmware/nvidia/gp100/acr
lib/firmware/nvidia/gp100/acr/ucode_unload.bin
lib/firmware/nvidia/gp100/acr/ucode_load.bin
lib/firmware/nvidia/gp100/acr/bl.bin
lib/firmware/nvidia/gm200
lib/firmware/nvidia/gm200/gr
lib/firmware/nvidia/gm200/gr/gpccs_bl.bin
lib/firmware/nvidia/gm200/gr/fecs_bl.bin
lib/firmware/nvidia/gm200/gr/sw_method_init.bin
lib/firmware/nvidia/gm200/gr/sw_bundle_init.bin
lib/firmware/nvidia/gm200/gr/sw_nonctx.bin
lib/firmware/nvidia/gm200/gr/sw_ctx.bin
lib/firmware/nvidia/gm200/gr/gpccs_inst.bin
lib/firmware/nvidia/gm200/gr/fecs_inst.bin
lib/firmware/nvidia/gm200/gr/gpccs_sig.bin
lib/firmware/nvidia/gm200/gr/gpccs_data.bin
lib/firmware/nvidia/gm200/gr/fecs_sig.bin
lib/firmware/nvidia/gm200/gr/fecs_data.bin
lib/firmware/nvidia/gm200/acr
lib/firmware/nvidia/gm200/acr/bl.bin
lib/firmware/nvidia/gm200/acr/ucode_unload.bin
lib/firmware/nvidia/gm200/acr/ucode_load.bin
lib/firmware/nvidia/gm206
lib/firmware/nvidia/gm206/gr
lib/firmware/nvidia/gm206/gr/sw_method_init.bin
lib/firmware/nvidia/gm206/gr/sw_bundle_init.bin
lib/firmware/nvidia/gm206/gr/sw_nonctx.bin
lib/firmware/nvidia/gm206/gr/sw_ctx.bin
lib/firmware/nvidia/gm206/gr/gpccs_sig.bin
lib/firmware/nvidia/gm206/gr/gpccs_data.bin
lib/firmware/nvidia/gm206/gr/gpccs_inst.bin
lib/firmware/nvidia/gm206/gr/gpccs_bl.bin
lib/firmware/nvidia/gm206/gr/fecs_sig.bin
lib/firmware/nvidia/gm206/gr/fecs_data.bin
lib/firmware/nvidia/gm206/gr/fecs_inst.bin
lib/firmware/nvidia/gm206/gr/fecs_bl.bin
lib/firmware/nvidia/gm206/acr
lib/firmware/nvidia/gm206/acr/ucode_unload.bin
lib/firmware/nvidia/gm206/acr/ucode_load.bin
lib/firmware/nvidia/gm206/acr/bl.bin
lib/firmware/nvidia/gm204
lib/firmware/nvidia/gm204/gr
lib/firmware/nvidia/gm204/gr/sw_method_init.bin
lib/firmware/nvidia/gm204/gr/sw_bundle_init.bin
lib/firmware/nvidia/gm204/gr/sw_nonctx.bin
lib/firmware/nvidia/gm204/gr/sw_ctx.bin
lib/firmware/nvidia/gm204/gr/gpccs_sig.bin
lib/firmware/nvidia/gm204/gr/gpccs_data.bin
lib/firmware/nvidia/gm204/gr/gpccs_inst.bin
lib/firmware/nvidia/gm204/gr/gpccs_bl.bin
lib/firmware/nvidia/gm204/gr/fecs_sig.bin
lib/firmware/nvidia/gm204/gr/fecs_data.bin
lib/firmware/nvidia/gm204/gr/fecs_inst.bin
lib/firmware/nvidia/gm204/gr/fecs_bl.bin
lib/firmware/nvidia/gm204/acr
lib/firmware/nvidia/gm204/acr/ucode_unload.bin
lib/firmware/nvidia/gm204/acr/ucode_load.bin
lib/firmware/nvidia/gm204/acr/bl.bin
lib/firmware/nvidia/gp107
lib/firmware/nvidia/gp107/sec2
lib/firmware/nvidia/gp107/sec2/sig.bin
lib/firmware/nvidia/gp107/sec2/image.bin
lib/firmware/nvidia/gp107/sec2/desc.bin
lib/firmware/nvidia/gp107/nvdec
lib/firmware/nvidia/gp107/nvdec/scrubber.bin
lib/firmware/nvidia/gp107/gr
lib/firmware/nvidia/gp107/gr/sw_method_init.bin
lib/firmware/nvidia/gp107/gr/sw_bundle_init.bin
lib/firmware/nvidia/gp107/gr/sw_nonctx.bin
lib/firmware/nvidia/gp107/gr/sw_ctx.bin
lib/firmware/nvidia/gp107/gr/gpccs_sig.bin
lib/firmware/nvidia/gp107/gr/gpccs_data.bin
lib/firmware/nvidia/gp107/gr/gpccs_inst.bin
lib/firmware/nvidia/gp107/gr/gpccs_bl.bin
lib/firmware/nvidia/gp107/gr/fecs_sig.bin
lib/firmware/nvidia/gp107/gr/fecs_data.bin
lib/firmware/nvidia/gp107/gr/fecs_inst.bin
lib/firmware/nvidia/gp107/gr/fecs_bl.bin
lib/firmware/nvidia/gp107/acr
lib/firmware/nvidia/gp107/acr/ucode_unload.bin
lib/firmware/nvidia/gp107/acr/ucode_load.bin
lib/firmware/nvidia/gp107/acr/unload_bl.bin
lib/firmware/nvidia/gp107/acr/bl.bin
lib/firmware/nvidia/gp102
lib/firmware/nvidia/gp102/sec2
lib/firmware/nvidia/gp102/sec2/sig.bin
lib/firmware/nvidia/gp102/sec2/image.bin
lib/firmware/nvidia/gp102/sec2/desc.bin
lib/firmware/nvidia/gp102/nvdec
lib/firmware/nvidia/gp102/nvdec/scrubber.bin
lib/firmware/nvidia/gp102/gr
lib/firmware/nvidia/gp102/gr/sw_method_init.bin
lib/firmware/nvidia/gp102/gr/sw_bundle_init.bin
lib/firmware/nvidia/gp102/gr/sw_nonctx.bin
lib/firmware/nvidia/gp102/gr/sw_ctx.bin
lib/firmware/nvidia/gp102/gr/gpccs_inst.bin
lib/firmware/nvidia/gp102/gr/fecs_inst.bin
lib/firmware/nvidia/gp102/gr/gpccs_sig.bin
lib/firmware/nvidia/gp102/gr/gpccs_data.bin
lib/firmware/nvidia/gp102/gr/gpccs_bl.bin
lib/firmware/nvidia/gp102/gr/fecs_sig.bin
lib/firmware/nvidia/gp102/gr/fecs_data.bin
lib/firmware/nvidia/gp102/gr/fecs_bl.bin
lib/firmware/nvidia/gp102/acr
lib/firmware/nvidia/gp102/acr/ucode_unload.bin
lib/firmware/nvidia/gp102/acr/ucode_load.bin
lib/firmware/nvidia/gp102/acr/unload_bl.bin
lib/firmware/nvidia/gp102/acr/bl.bin
lib/firmware/nvidia/gp106
lib/firmware/nvidia/gp106/sec2
lib/firmware/nvidia/gp106/sec2/sig.bin
lib/firmware/nvidia/gp106/sec2/image.bin
lib/firmware/nvidia/gp106/sec2/desc.bin
lib/firmware/nvidia/gp106/nvdec
lib/firmware/nvidia/gp106/nvdec/scrubber.bin
lib/firmware/nvidia/gp106/gr
lib/firmware/nvidia/gp106/gr/sw_method_init.bin
lib/firmware/nvidia/gp106/gr/sw_bundle_init.bin
lib/firmware/nvidia/gp106/gr/sw_nonctx.bin
lib/firmware/nvidia/gp106/gr/sw_ctx.bin
lib/firmware/nvidia/gp106/gr/gpccs_sig.bin
lib/firmware/nvidia/gp106/gr/gpccs_data.bin
lib/firmware/nvidia/gp106/gr/gpccs_inst.bin
lib/firmware/nvidia/gp106/gr/gpccs_bl.bin
lib/firmware/nvidia/gp106/gr/fecs_sig.bin
lib/firmware/nvidia/gp106/gr/fecs_data.bin
lib/firmware/nvidia/gp106/gr/fecs_inst.bin
lib/firmware/nvidia/gp106/gr/fecs_bl.bin
lib/firmware/nvidia/gp106/acr
lib/firmware/nvidia/gp106/acr/ucode_unload.bin
lib/firmware/nvidia/gp106/acr/ucode_load.bin
lib/firmware/nvidia/gp106/acr/unload_bl.bin
lib/firmware/nvidia/gp106/acr/bl.bin
lib/firmware/nvidia/gp104
lib/firmware/nvidia/gp104/sec2
lib/firmware/nvidia/gp104/sec2/sig.bin
lib/firmware/nvidia/gp104/sec2/image.bin
lib/firmware/nvidia/gp104/sec2/desc.bin
lib/firmware/nvidia/gp104/nvdec
lib/firmware/nvidia/gp104/nvdec/scrubber.bin
lib/firmware/nvidia/gp104/gr
lib/firmware/nvidia/gp104/gr/sw_method_init.bin
lib/firmware/nvidia/gp104/gr/sw_bundle_init.bin
lib/firmware/nvidia/gp104/gr/sw_nonctx.bin
lib/firmware/nvidia/gp104/gr/sw_ctx.bin
lib/firmware/nvidia/gp104/gr/gpccs_sig.bin
lib/firmware/nvidia/gp104/gr/gpccs_data.bin
lib/firmware/nvidia/gp104/gr/gpccs_inst.bin
lib/firmware/nvidia/gp104/gr/gpccs_bl.bin
lib/firmware/nvidia/gp104/gr/fecs_sig.bin
lib/firmware/nvidia/gp104/gr/fecs_data.bin
lib/firmware/nvidia/gp104/gr/fecs_inst.bin
lib/firmware/nvidia/gp104/gr/fecs_bl.bin
lib/firmware/nvidia/gp104/acr
lib/firmware/nvidia/gp104/acr/ucode_unload.bin
lib/firmware/nvidia/gp104/acr/ucode_load.bin
lib/firmware/nvidia/gp104/acr/unload_bl.bin
lib/firmware/nvidia/gp104/acr/bl.bin
lib/firmware/i915
lib/firmware/i915/bxt_dmc_ver1_07.bin
lib/firmware/i915/glk_dmc_ver1_04.bin
lib/firmware/i915/kbl_huc_ver02_00_1810.bin
lib/firmware/i915/bxt_huc_ver01_07_1398.bin
lib/firmware/i915/skl_huc_ver01_07_1398.bin
lib/firmware/amdgpu
lib/firmware/amdgpu/raven_gpu_info.bin
lib/firmware/amdgpu/vega10_gpu_info.bin
lib/firmware/amdgpu/topaz_mc.bin
lib/firmware/amdgpu/polaris12_mc.bin
lib/firmware/amdgpu/polaris10_mc.bin
lib/firmware/amdgpu/polaris11_mc.bin
lib/firmware/amdgpu/tonga_mc.bin
lib/firmware/amdgpu/vega10_asd.bin
lib/firmware/amdgpu/vega10_sos.bin
lib/firmware/amdgpu/raven_asd.bin
lib/firmware/amdgpu/polaris12_rlc.bin
lib/firmware/amdgpu/polaris12_mec2_2.bin
lib/firmware/amdgpu/polaris12_mec2.bin
lib/firmware/amdgpu/polaris12_mec_2.bin
lib/firmware/amdgpu/polaris12_mec.bin
lib/firmware/amdgpu/polaris12_me_2.bin
lib/firmware/amdgpu/polaris12_me.bin
lib/firmware/amdgpu/polaris12_pfp_2.bin
lib/firmware/amdgpu/polaris12_pfp.bin
lib/firmware/amdgpu/polaris12_ce_2.bin
lib/firmware/amdgpu/polaris12_ce.bin
lib/firmware/amdgpu/polaris11_rlc.bin
lib/firmware/amdgpu/polaris11_mec2_2.bin
lib/firmware/amdgpu/polaris11_mec2.bin
lib/firmware/amdgpu/polaris11_mec_2.bin
lib/firmware/amdgpu/polaris11_mec.bin
lib/firmware/amdgpu/polaris11_me_2.bin
lib/firmware/amdgpu/polaris11_me.bin
lib/firmware/amdgpu/polaris11_pfp_2.bin
lib/firmware/amdgpu/polaris11_pfp.bin
lib/firmware/amdgpu/polaris11_ce_2.bin
lib/firmware/amdgpu/polaris11_ce.bin
lib/firmware/amdgpu/polaris10_rlc.bin
lib/firmware/amdgpu/polaris10_mec2_2.bin
lib/firmware/amdgpu/polaris10_mec2.bin
lib/firmware/amdgpu/polaris10_mec_2.bin
lib/firmware/amdgpu/polaris10_mec.bin
lib/firmware/amdgpu/polaris10_me_2.bin
lib/firmware/amdgpu/polaris10_me.bin
lib/firmware/amdgpu/polaris10_pfp_2.bin
lib/firmware/amdgpu/polaris10_pfp.bin
lib/firmware/amdgpu/polaris10_ce_2.bin
lib/firmware/amdgpu/polaris10_ce.bin
lib/firmware/amdgpu/fiji_rlc.bin
lib/firmware/amdgpu/fiji_mec2.bin
lib/firmware/amdgpu/fiji_mec.bin
lib/firmware/amdgpu/fiji_me.bin
lib/firmware/amdgpu/fiji_pfp.bin
lib/firmware/amdgpu/fiji_ce.bin
lib/firmware/amdgpu/topaz_rlc.bin
lib/firmware/amdgpu/topaz_mec.bin
lib/firmware/amdgpu/topaz_me.bin
lib/firmware/amdgpu/topaz_pfp.bin
lib/firmware/amdgpu/topaz_ce.bin
lib/firmware/amdgpu/tonga_rlc.bin
lib/firmware/amdgpu/tonga_mec2.bin
lib/firmware/amdgpu/tonga_mec.bin
lib/firmware/amdgpu/tonga_me.bin
lib/firmware/amdgpu/tonga_pfp.bin
lib/firmware/amdgpu/tonga_ce.bin
lib/firmware/amdgpu/stoney_rlc.bin
lib/firmware/amdgpu/stoney_mec.bin
lib/firmware/amdgpu/stoney_me.bin
lib/firmware/amdgpu/stoney_pfp.bin
lib/firmware/amdgpu/stoney_ce.bin
lib/firmware/amdgpu/carrizo_rlc.bin
lib/firmware/amdgpu/carrizo_mec2.bin
lib/firmware/amdgpu/carrizo_mec.bin
lib/firmware/amdgpu/carrizo_me.bin
lib/firmware/amdgpu/carrizo_pfp.bin
lib/firmware/amdgpu/carrizo_ce.bin
lib/firmware/amdgpu/raven_rlc.bin
lib/firmware/amdgpu/raven_mec2.bin
lib/firmware/amdgpu/raven_mec.bin
lib/firmware/amdgpu/raven_me.bin
lib/firmware/amdgpu/raven_pfp.bin
lib/firmware/amdgpu/raven_ce.bin
lib/firmware/amdgpu/vega10_rlc.bin
lib/firmware/amdgpu/vega10_mec2.bin
lib/firmware/amdgpu/vega10_mec.bin
lib/firmware/amdgpu/vega10_me.bin
lib/firmware/amdgpu/vega10_pfp.bin
lib/firmware/amdgpu/vega10_ce.bin
lib/firmware/amdgpu/topaz_sdma1.bin
lib/firmware/amdgpu/topaz_sdma.bin
lib/firmware/amdgpu/polaris12_sdma1.bin
lib/firmware/amdgpu/polaris12_sdma.bin
lib/firmware/amdgpu/polaris11_sdma1.bin
lib/firmware/amdgpu/polaris11_sdma.bin
lib/firmware/amdgpu/polaris10_sdma1.bin
lib/firmware/amdgpu/polaris10_sdma.bin
lib/firmware/amdgpu/stoney_sdma.bin
lib/firmware/amdgpu/fiji_sdma1.bin
lib/firmware/amdgpu/fiji_sdma.bin
lib/firmware/amdgpu/carrizo_sdma1.bin
lib/firmware/amdgpu/carrizo_sdma.bin
lib/firmware/amdgpu/tonga_sdma1.bin
lib/firmware/amdgpu/tonga_sdma.bin
lib/firmware/amdgpu/raven_sdma.bin
lib/firmware/amdgpu/vega10_sdma1.bin
lib/firmware/amdgpu/vega10_sdma.bin
lib/firmware/amdgpu/vega10_uvd.bin
lib/firmware/amdgpu/polaris12_uvd.bin
lib/firmware/amdgpu/polaris11_uvd.bin
lib/firmware/amdgpu/polaris10_uvd.bin
lib/firmware/amdgpu/stoney_uvd.bin
lib/firmware/amdgpu/fiji_uvd.bin
lib/firmware/amdgpu/carrizo_uvd.bin
lib/firmware/amdgpu/tonga_uvd.bin
lib/firmware/amdgpu/vega10_vce.bin
lib/firmware/amdgpu/polaris12_vce.bin
lib/firmware/amdgpu/polaris11_vce.bin
lib/firmware/amdgpu/polaris10_vce.bin
lib/firmware/amdgpu/stoney_vce.bin
lib/firmware/amdgpu/fiji_vce.bin
lib/firmware/amdgpu/carrizo_vce.bin
lib/firmware/amdgpu/tonga_vce.bin
lib/firmware/amdgpu/raven_vcn.bin
lib/firmware/amdgpu/vega10_acg_smc.bin
lib/firmware/amdgpu/vega10_smc.bin
lib/firmware/amdgpu/polaris12_smc.bin
lib/firmware/amdgpu/polaris11_k_smc.bin
lib/firmware/amdgpu/polaris11_smc_sk.bin
lib/firmware/amdgpu/polaris11_smc.bin
lib/firmware/amdgpu/polaris10_k_smc.bin
lib/firmware/amdgpu/polaris10_smc_sk.bin
lib/firmware/amdgpu/polaris10_smc.bin
lib/firmware/amdgpu/fiji_smc.bin
lib/firmware/amdgpu/tonga_k_smc.bin
lib/firmware/amdgpu/tonga_smc.bin
lib/firmware/amdgpu/topaz_k_smc.bin
lib/firmware/amdgpu/topaz_smc.bin
lib/x86_64-linux-gnu
lib/x86_64-linux-gnu/libudev.so.1
lib/x86_64-linux-gnu/libudev.so.1.6.4
lib/x86_64-linux-gnu/libc.so.6
lib/x86_64-linux-gnu/libc-2.23.so
lib/x86_64-linux-gnu/librt.so.1
lib/x86_64-linux-gnu/librt-2.23.so
lib/x86_64-linux-gnu/libpthread.so.0
lib/x86_64-linux-gnu/libpthread-2.23.so
lib/x86_64-linux-gnu/ld-2.23.so
lib/x86_64-linux-gnu/libuuid.so.1
lib/x86_64-linux-gnu/libuuid.so.1.3.0
lib/x86_64-linux-gnu/libblkid.so.1
lib/x86_64-linux-gnu/libblkid.so.1.1.0
lib/x86_64-linux-gnu/libz.so.1
lib/x86_64-linux-gnu/libz.so.1.2.8
lib/x86_64-linux-gnu/liblzo2.so.2
lib/x86_64-linux-gnu/liblzo2.so.2.0.0
lib/x86_64-linux-gnu/libcryptsetup.so.4
lib/x86_64-linux-gnu/libcryptsetup.so.4.6.0
lib/x86_64-linux-gnu/libpopt.so.0
lib/x86_64-linux-gnu/libpopt.so.0.0.0
lib/x86_64-linux-gnu/libdevmapper.so.1.02.1
lib/x86_64-linux-gnu/libgcrypt.so.20
lib/x86_64-linux-gnu/libgcrypt.so.20.0.5
lib/x86_64-linux-gnu/libselinux.so.1
lib/x86_64-linux-gnu/libm.so.6
lib/x86_64-linux-gnu/libm-2.23.so
lib/x86_64-linux-gnu/libgpg-error.so.0
lib/x86_64-linux-gnu/libgpg-error.so.0.17.0
lib/x86_64-linux-gnu/libpcre.so.3
lib/x86_64-linux-gnu/libpcre.so.3.13.2
lib/x86_64-linux-gnu/libdl.so.2
lib/x86_64-linux-gnu/libdl-2.23.so
lib/x86_64-linux-gnu/libmount.so.1
lib/x86_64-linux-gnu/libmount.so.1.1.0
lib/x86_64-linux-gnu/libply.so.4
lib/x86_64-linux-gnu/libply.so.4.0.0
lib/x86_64-linux-gnu/libply-splash-core.so.4
lib/x86_64-linux-gnu/libply-splash-core.so.4.0.0
lib/x86_64-linux-gnu/libply-splash-graphics.so.4
lib/x86_64-linux-gnu/libply-splash-graphics.so.4.0.0
lib/x86_64-linux-gnu/libpng12.so.0
lib/x86_64-linux-gnu/libpng12.so.0.54.0
lib/x86_64-linux-gnu/libglib-2.0.so.0
lib/x86_64-linux-gnu/libglib-2.0.so.0.4800.2
lib/x86_64-linux-gnu/libexpat.so.1
lib/x86_64-linux-gnu/libexpat.so.1.6.0
lib/x86_64-linux-gnu/libnss_files-2.23.so
lib/x86_64-linux-gnu/libacl.so.1
lib/x86_64-linux-gnu/libacl.so.1.1.0
lib/x86_64-linux-gnu/libkmod.so.2
lib/x86_64-linux-gnu/libkmod.so.2.3.0
lib/x86_64-linux-gnu/libattr.so.1
lib/x86_64-linux-gnu/libattr.so.1.1.0
lib/x86_64-linux-gnu/libdns-export.so.162
lib/x86_64-linux-gnu/libdns-export.so.162.1.3
lib/x86_64-linux-gnu/libisc-export.so.160
lib/x86_64-linux-gnu/libisc-export.so.160.0.0
lib/x86_64-linux-gnu/libntfs-3g.so.861
lib/x86_64-linux-gnu/libntfs-3g.so.861.0.0
lib/x86_64-linux-gnu/libdevmapper-event.so.1.02.1
lib/x86_64-linux-gnu/libreadline.so.5
lib/x86_64-linux-gnu/libreadline.so.5.2
lib/x86_64-linux-gnu/libtinfo.so.5
lib/x86_64-linux-gnu/libtinfo.so.5.9
lib/x86_64-linux-gnu/libaudit.so.1
lib/x86_64-linux-gnu/libaudit.so.1.0.0
lib/x86_64-linux-gnu/libext2fs.so.2
lib/x86_64-linux-gnu/libext2fs.so.2.4
lib/x86_64-linux-gnu/libcom_err.so.2
lib/x86_64-linux-gnu/libcom_err.so.2.1
lib/x86_64-linux-gnu/libe2p.so.2
lib/x86_64-linux-gnu/libe2p.so.2.3
lib/x86_64-linux-gnu/libssl.so.1.0.0
lib/x86_64-linux-gnu/libcrypto.so.1.0.0
lib/x86_64-linux-gnu/libnss_files.so.2
lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
lib/cryptsetup
lib/cryptsetup/scripts
lib/cryptsetup/scripts/.decrypt_root
lib/cryptsetup/askpass
lib/klibc-k3La8MUnuzHQ0_kG8hokcGAC0PA.so
lib/modprobe.d
lib/modprobe.d/aliases.conf
lib/modprobe.d/blacklist_linux-hwe_4.13.0-37-generic.conf
lib/libnss_files-2.23.so
lib/systemd
lib/systemd/systemd-udevd
lib/systemd/network
lib/systemd/network/99-default.link
lib/udev
lib/udev/rules.d
lib/udev/rules.d/50-firmware.rules
lib/udev/rules.d/50-udev-default.rules
lib/udev/rules.d/60-persistent-storage.rules
lib/udev/rules.d/61-persistent-storage-android.rules
lib/udev/rules.d/73-special-net-names.rules
lib/udev/rules.d/73-usb-net-by-mac.rules
lib/udev/rules.d/75-net-description.rules
lib/udev/rules.d/80-net-setup-link.rules
lib/udev/rules.d/80-drivers.rules
lib/udev/rules.d/60-vboxdrv.rules
lib/udev/rules.d/56-lvm.rules
lib/udev/rules.d/69-lvm-metad.rules
lib/udev/rules.d/55-dm.rules
lib/udev/rules.d/60-persistent-storage-dm.rules
lib/udev/ata_id
lib/udev/scsi_id
lib/libnss_files.so.2
run
sbin
sbin/wait-for-root
sbin/cryptsetup
sbin/dmsetup
sbin/fsck
sbin/logsave
sbin/mount.fuse
sbin/modprobe
sbin/rmmod
sbin/plymouthd
sbin/udevadm
sbin/blkid
sbin/dhclient
sbin/dhclient-script
sbin/mount.ntfs-3g
sbin/mount.ntfs
sbin/lvm
sbin/vgchange
sbin/hwclock
sbin/dumpe2fs
sbin/ifconfig
sbin/ip
scripts
scripts/panic
scripts/panic/plymouth
scripts/panic/console_setup
scripts/panic/keymap
scripts/panic/ORDER
scripts/local-bottom
scripts/local-bottom/ntfs_3g
scripts/local-bottom/cryptopensc
scripts/local-bottom/ORDER
scripts/local-top
scripts/local-top/lvm2
scripts/local-top/cryptopensc
scripts/local-top/cryptroot
scripts/local-top/ORDER
scripts/init-premount
scripts/init-premount/lvm2
scripts/init-premount/plymouth
scripts/init-premount/ORDER
scripts/casper-bottom
scripts/casper-bottom/40kde_neon_setup
scripts/casper-bottom/ORDER
scripts/local-block
scripts/local-block/lvm2
scripts/local-block/cryptroot
scripts/local-block/ORDER
scripts/init-top
scripts/init-top/console_setup
scripts/init-top/udev
scripts/init-top/keymap
scripts/init-top/blacklist
scripts/init-top/framebuffer
scripts/init-top/all_generic_ide
scripts/init-top/ORDER
scripts/local-premount
scripts/local-premount/ntfs_3g
scripts/local-premount/btrfs
scripts/local-premount/fixrtc
scripts/local-premount/resume
scripts/local-premount/ORDER
scripts/init-bottom
scripts/init-bottom/lvm2
scripts/init-bottom/plymouth
scripts/init-bottom/udev
scripts/init-bottom/ORDER
scripts/functions
scripts/local
scripts/nfs
init
lib64
lib64/ld-linux-x86-64.so.2
usr
usr/share
usr/share/plymouth
usr/share/plymouth/themes
usr/share/plymouth/themes/default.plymouth
usr/share/plymouth/themes/text.plymouth
usr/share/plymouth/themes/breeze
usr/share/plymouth/themes/breeze/images
usr/share/plymouth/themes/breeze/images/16bit
usr/share/plymouth/themes/breeze/images/16bit/spinner
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner160.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner280.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner120.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner190.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner310.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner80.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner130.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner20.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner70.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner150.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner140.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner290.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner230.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner110.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner240.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner220.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner60.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner200.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner300.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner180.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner350.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner0.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner170.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner90.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner320.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner50.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner10.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner100.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner250.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner40.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner340.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner330.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner260.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner270.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner30.png
usr/share/plymouth/themes/breeze/images/16bit/spinner/spinner210.png
usr/share/plymouth/themes/breeze/images/16bit/plasma.logo.png
usr/share/plymouth/themes/breeze/images/16bit/text-input.png
usr/share/plymouth/themes/breeze/images/16bit/spinner.png
usr/share/plymouth/themes/breeze/images/16bit/neon.logo.png
usr/share/plymouth/themes/breeze/images/16bit/os.logo.png
usr/share/plymouth/themes/breeze/images/16bit/.directory
usr/share/plymouth/themes/breeze/images/spinner
usr/share/plymouth/themes/breeze/images/spinner/spinner160.png
usr/share/plymouth/themes/breeze/images/spinner/spinner280.png
usr/share/plymouth/themes/breeze/images/spinner/spinner120.png
usr/share/plymouth/themes/breeze/images/spinner/spinner190.png
usr/share/plymouth/themes/breeze/images/spinner/spinner310.png
usr/share/plymouth/themes/breeze/images/spinner/spinner80.png
usr/share/plymouth/themes/breeze/images/spinner/spinner130.png
usr/share/plymouth/themes/breeze/images/spinner/spinner20.png
usr/share/plymouth/themes/breeze/images/spinner/spinner70.png
usr/share/plymouth/themes/breeze/images/spinner/spinner150.png
usr/share/plymouth/themes/breeze/images/spinner/spinner140.png
usr/share/plymouth/themes/breeze/images/spinner/spinner290.png
usr/share/plymouth/themes/breeze/images/spinner/spinner230.png
usr/share/plymouth/themes/breeze/images/spinner/spinner110.png
usr/share/plymouth/themes/breeze/images/spinner/spinner240.png
usr/share/plymouth/themes/breeze/images/spinner/spinner220.png
usr/share/plymouth/themes/breeze/images/spinner/spinner60.png
usr/share/plymouth/themes/breeze/images/spinner/spinner200.png
usr/share/plymouth/themes/breeze/images/spinner/spinner300.png
usr/share/plymouth/themes/breeze/images/spinner/spinner180.png
usr/share/plymouth/themes/breeze/images/spinner/spinner350.png
usr/share/plymouth/themes/breeze/images/spinner/spinner0.png
usr/share/plymouth/themes/breeze/images/spinner/spinner170.png
usr/share/plymouth/themes/breeze/images/spinner/spinner90.png
usr/share/plymouth/themes/breeze/images/spinner/spinner320.png
usr/share/plymouth/themes/breeze/images/spinner/spinner50.png
usr/share/plymouth/themes/breeze/images/spinner/spinner10.png
usr/share/plymouth/themes/breeze/images/spinner/spinner100.png
usr/share/plymouth/themes/breeze/images/spinner/spinner250.png
usr/share/plymouth/themes/breeze/images/spinner/spinner40.png
usr/share/plymouth/themes/breeze/images/spinner/spinner340.png
usr/share/plymouth/themes/breeze/images/spinner/spinner330.png
usr/share/plymouth/themes/breeze/images/spinner/spinner260.png
usr/share/plymouth/themes/breeze/images/spinner/spinner270.png
usr/share/plymouth/themes/breeze/images/spinner/spinner30.png
usr/share/plymouth/themes/breeze/images/spinner/spinner210.png
usr/share/plymouth/themes/breeze/images/plasma.logo.png
usr/share/plymouth/themes/breeze/images/text-input.png
usr/share/plymouth/themes/breeze/images/spinner.png
usr/share/plymouth/themes/breeze/images/neon.logo.png
usr/share/plymouth/themes/breeze/images/os.logo.png
usr/share/plymouth/themes/breeze/nextbg.png
usr/share/plymouth/themes/breeze/breeze.script~
usr/share/plymouth/themes/breeze/breeze.script.orig
usr/share/plymouth/themes/breeze/breeze.grub
usr/share/plymouth/themes/breeze/breeze.plymouth
usr/share/plymouth/themes/breeze/breeze.script
usr/share/plymouth/themes/breeze-text
usr/share/plymouth/themes/breeze-text/breeze-text.plymouth
usr/share/plymouth/themes/details
usr/share/plymouth/themes/details/details.plymouth
usr/share/fonts
usr/share/fonts/truetype
usr/share/fonts/truetype/noto
usr/share/fonts/truetype/noto/NotoSans-Regular.ttf
usr/share/fonts/truetype/noto/NotoSerif-Regular.ttf
usr/lib
usr/lib/x86_64-linux-gnu
usr/lib/x86_64-linux-gnu/plymouth
usr/lib/x86_64-linux-gnu/plymouth/script.so
usr/lib/x86_64-linux-gnu/plymouth/details.so
usr/lib/x86_64-linux-gnu/plymouth/label.so
usr/lib/x86_64-linux-gnu/plymouth/breeze-text.so
usr/lib/x86_64-linux-gnu/plymouth/renderers
usr/lib/x86_64-linux-gnu/plymouth/renderers/frame-buffer.so
usr/lib/x86_64-linux-gnu/plymouth/renderers/drm.so
usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0.3800.1
usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
usr/lib/x86_64-linux-gnu/libpango-1.0.so.0.3800.1
usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2
usr/lib/x86_64-linux-gnu/libcairo.so.2
usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
usr/lib/x86_64-linux-gnu/libfontconfig.so.1
usr/lib/x86_64-linux-gnu/libfontconfig.so.1.9.0
usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0.3800.1
usr/lib/x86_64-linux-gnu/libfreetype.so.6
usr/lib/x86_64-linux-gnu/libfreetype.so.6.12.1
usr/lib/x86_64-linux-gnu/libthai.so.0
usr/lib/x86_64-linux-gnu/libthai.so.0.2.4
usr/lib/x86_64-linux-gnu/libffi.so.6
usr/lib/x86_64-linux-gnu/libffi.so.6.0.4
usr/lib/x86_64-linux-gnu/libpixman-1.so.0
usr/lib/x86_64-linux-gnu/libpixman-1.so.0.33.6
usr/lib/x86_64-linux-gnu/libxcb-shm.so.0
usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
usr/lib/x86_64-linux-gnu/libxcb-render.so.0
usr/lib/x86_64-linux-gnu/libxcb-render.so.0.0.0
usr/lib/x86_64-linux-gnu/libxcb.so.1
usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
usr/lib/x86_64-linux-gnu/libXrender.so.1
usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
usr/lib/x86_64-linux-gnu/libX11.so.6
usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
usr/lib/x86_64-linux-gnu/libXext.so.6
usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
usr/lib/x86_64-linux-gnu/libharfbuzz.so.0
usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10400.6
usr/lib/x86_64-linux-gnu/libdatrie.so.1
usr/lib/x86_64-linux-gnu/libdatrie.so.1.3.3
usr/lib/x86_64-linux-gnu/libXau.so.6
usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
usr/lib/x86_64-linux-gnu/libXdmcp.so.6
usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
usr/lib/x86_64-linux-gnu/libgraphite2.so.3
usr/lib/x86_64-linux-gnu/libgraphite2.so.3.0.1
usr/lib/x86_64-linux-gnu/libdrm.so.2
usr/lib/x86_64-linux-gnu/libdrm.so.2.4.0
usr/lib/x86_64-linux-gnu/libidn.so.11
usr/lib/x86_64-linux-gnu/libidn.so.11.6.15
usr/bin
usr/bin/wget
var
var/cache
var/cache/fontconfig
var/cache/ldconfig
var/cache/ldconfig/aux-cache
var/lib
var/lib/dhcp
[X.] Other notes, patches, fixes, workarounds:
Maybe there is a reference to
https://bugzilla.kernel.org/show_bug.cgi?id=199623
My 4.14 kernel also "down" the link first (in my case on early booting),
before put it up again after a few seconds. So it can get the encryption
key. But, as I said, this takes only about three to five seconds on the
older kernel version.
I read in a kernel note that "ASPM" has been enabled by default on this
device during the 4.19 merge window. Hence I disabled it in the
BIOS/firmware for testing and suprisingly 4.19 booted up fast. But this
was a oneshot. I have not been able to reproduce this again. Even with
"aspm=off aspm=disable" in the kernel command line. Maybe it was just a
coincidence and had another unknown reason. So I enabled ASPM back again.
I have also tried "modprobe r8169 debug=16" in the "keyscript" but it
did not output any additional information.
I could compile kernels from 4.15 to 4.18 to do further testing, if you
like. If it needs there to do "deeper" debugging, I will need some
assistance.
Thank you for your time.
--
Best Regards
Stefan Kühn
[-- Attachment #2: kernel-config.txt --]
[-- Type: text/plain, Size: 108887 bytes --]
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.19.0-rc3 Kernel Configuration
#
#
# Compiler: gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609
#
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=50400
CONFIG_CLANG_VERSION=0
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_BUILD_SALT=""
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
CONFIG_KERNEL_LZO=y
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_CROSS_MEMORY_ATTACH=y
# CONFIG_USELIB is not set
CONFIG_AUDIT=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y
#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_MIGRATION=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
# CONFIG_GENERIC_IRQ_DEBUGFS is not set
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y
#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
# CONFIG_CPU_ISOLATION is not set
#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
# CONFIG_RCU_EXPERT is not set
CONFIG_SRCU=y
CONFIG_TREE_SRCU=y
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_NEED_SEGCBLIST=y
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=19
CONFIG_LOG_CPU_MAX_BUF_SHIFT=13
CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
CONFIG_MEMCG=y
# CONFIG_MEMCG_SWAP is not set
CONFIG_MEMCG_KMEM=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_CGROUP_PIDS=y
# CONFIG_CGROUP_RDMA is not set
CONFIG_CGROUP_FREEZER=y
# CONFIG_CGROUP_HUGETLB is not set
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
# CONFIG_CGROUP_PERF is not set
# CONFIG_CGROUP_BPF is not set
# CONFIG_CGROUP_DEBUG is not set
CONFIG_SOCK_CGROUP_DATA=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_SCHED_AUTOGROUP=y
# CONFIG_SYSFS_DEPRECATED is not set
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_RD_LZ4=y
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BPF=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
CONFIG_MULTIUSER=y
CONFIG_SGETMASK_SYSCALL=y
CONFIG_SYSFS_SYSCALL=y
CONFIG_FHANDLE=y
CONFIG_POSIX_TIMERS=y
CONFIG_PRINTK=y
CONFIG_PRINTK_NMI=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_FUTEX_PI=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_ADVISE_SYSCALLS=y
CONFIG_MEMBARRIER=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
CONFIG_KALLSYMS_BASE_RELATIVE=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT_ALWAYS_ON=y
# CONFIG_USERFAULTFD is not set
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_RSEQ=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLAB_MERGE_DEFAULT is not set
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLUB_CPU_PARTIAL=y
CONFIG_SYSTEM_DATA_VERIFICATION=y
# CONFIG_PROFILING is not set
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_MMU=y
CONFIG_ARCH_MMAP_RND_BITS_MIN=28
CONFIG_ARCH_MMAP_RND_BITS_MAX=32
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_FILTER_PGPROT=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ZONE_DMA32=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_HAVE_INTEL_TXT=y
CONFIG_X86_64_SMP=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_PGTABLE_LEVELS=4
CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
#
# Processor type and features
#
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
# CONFIG_X86_X2APIC is not set
CONFIG_X86_MPPARSE=y
# CONFIG_GOLDFISH is not set
CONFIG_RETPOLINE=y
# CONFIG_INTEL_RDT is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
# CONFIG_X86_INTEL_LPSS is not set
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
CONFIG_IOSF_MBI=m
# CONFIG_IOSF_MBI_DEBUG is not set
CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_HYPERVISOR_GUEST is not set
CONFIG_NO_BOOTMEM=y
# CONFIG_MK8 is not set
# CONFIG_MPSC is not set
CONFIG_MCORE2=y
# CONFIG_MATOM is not set
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_P6_NOP=y
CONFIG_X86_TSC=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=64
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
# CONFIG_GART_IOMMU is not set
# CONFIG_CALGARY_IOMMU is not set
# CONFIG_MAXSMP is not set
CONFIG_NR_CPUS_RANGE_BEGIN=2
CONFIG_NR_CPUS_RANGE_END=512
CONFIG_NR_CPUS_DEFAULT=64
CONFIG_NR_CPUS=128
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_MC_PRIO=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
# CONFIG_X86_MCE is not set
#
# Performance monitoring
#
CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_PERF_EVENTS_INTEL_RAPL=y
CONFIG_PERF_EVENTS_INTEL_CSTATE=y
# CONFIG_PERF_EVENTS_AMD_POWER is not set
CONFIG_X86_16BIT=y
CONFIG_X86_ESPFIX64=y
CONFIG_X86_VSYSCALL_EMULATION=y
# CONFIG_I8K is not set
CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
# CONFIG_MICROCODE_AMD is not set
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
# CONFIG_X86_5LEVEL is not set
CONFIG_X86_DIRECT_GBPAGES=y
CONFIG_ARCH_HAS_MEM_ENCRYPT=y
# CONFIG_AMD_MEM_ENCRYPT is not set
# CONFIG_NUMA is not set
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
# CONFIG_X86_PMEM_LEGACY is not set
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_X86_RESERVE_LOW=64
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_ARCH_RANDOM=y
CONFIG_X86_SMAP=y
CONFIG_X86_INTEL_UMIP=y
# CONFIG_X86_INTEL_MPX is not set
# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set
# CONFIG_EFI is not set
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_SCHED_HRTICK=y
# CONFIG_KEXEC is not set
# CONFIG_KEXEC_FILE is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x1000000
CONFIG_RELOCATABLE=y
CONFIG_RANDOMIZE_BASE=y
CONFIG_X86_NEED_RELOCS=y
CONFIG_PHYSICAL_ALIGN=0x1000000
CONFIG_DYNAMIC_MEMORY_LAYOUT=y
CONFIG_RANDOMIZE_MEMORY=y
CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0x0
CONFIG_HOTPLUG_CPU=y
# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
# CONFIG_COMPAT_VDSO is not set
# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
CONFIG_LEGACY_VSYSCALL_NONE=y
# CONFIG_CMDLINE_BOOL is not set
CONFIG_MODIFY_LDT_SYSCALL=y
CONFIG_HAVE_LIVEPATCH=y
CONFIG_ARCH_HAS_ADD_PAGES=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_ARCH_ENABLE_THP_MIGRATION=y
#
# Power management and ACPI options
#
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
# CONFIG_HIBERNATION is not set
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_AUTOSLEEP=y
CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=100
CONFIG_PM_WAKELOCKS_GC=y
CONFIG_PM=y
CONFIG_PM_DEBUG=y
CONFIG_PM_ADVANCED_DEBUG=y
# CONFIG_PM_TEST_SUSPEND is not set
CONFIG_PM_SLEEP_DEBUG=y
# CONFIG_PM_TRACE_RTC is not set
CONFIG_PM_CLK=y
CONFIG_PM_GENERIC_DOMAINS=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
CONFIG_ARCH_SUPPORTS_ACPI=y
CONFIG_ACPI=y
CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
# CONFIG_ACPI_DEBUGGER is not set
# CONFIG_ACPI_SPCR_TABLE is not set
CONFIG_ACPI_LPIT=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS_POWER is not set
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_EC_DEBUGFS=m
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=m
# CONFIG_ACPI_TAD is not set
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_CPU_FREQ_PSS=y
CONFIG_ACPI_PROCESSOR_CSTATE=y
CONFIG_ACPI_PROCESSOR_IDLE=y
CONFIG_ACPI_CPPC_LIB=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
CONFIG_ACPI_THERMAL=m
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_TABLE_UPGRADE is not set
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_PCI_SLOT=y
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_HOTPLUG_IOAPIC=y
# CONFIG_ACPI_SBS is not set
CONFIG_ACPI_HED=y
# CONFIG_ACPI_CUSTOM_METHOD is not set
# CONFIG_ACPI_NFIT is not set
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
# CONFIG_ACPI_APEI_EINJ is not set
CONFIG_ACPI_APEI_ERST_DEBUG=m
# CONFIG_DPTF_POWER is not set
CONFIG_PMIC_OPREGION=y
# CONFIG_ACPI_CONFIGFS is not set
CONFIG_X86_PM_TIMER=y
# CONFIG_SFI is not set
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
CONFIG_CPU_FREQ_GOV_COMMON=y
CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set
#
# CPU frequency scaling drivers
#
CONFIG_X86_INTEL_PSTATE=y
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_ACPI_CPUFREQ_CPB=y
# CONFIG_X86_POWERNOW_K8 is not set
# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_P4_CLOCKMOD is not set
#
# shared options
#
#
# CPU Idle
#
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
CONFIG_INTEL_IDLE=y
#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
CONFIG_MMCONF_FAM10H=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
# CONFIG_PCIEAER_INJECT is not set
# CONFIG_PCIE_ECRC is not set
CONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
# CONFIG_PCIE_DPC is not set
# CONFIG_PCIE_PTM is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_QUIRKS=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
CONFIG_PCI_STUB=y
# CONFIG_PCI_PF_STUB is not set
CONFIG_PCI_ATS=y
CONFIG_PCI_LOCKLESS_CONFIG=y
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
CONFIG_PCI_LABEL=y
# CONFIG_HOTPLUG_PCI is not set
#
# PCI controller drivers
#
#
# Cadence PCIe controllers support
#
# CONFIG_VMD is not set
#
# DesignWare PCI Core Support
#
# CONFIG_PCIE_DW_PLAT_HOST is not set
#
# PCI Endpoint
#
# CONFIG_PCI_ENDPOINT is not set
#
# PCI switch controller drivers
#
# CONFIG_PCI_SW_SWITCHTEC is not set
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
# CONFIG_PCCARD is not set
# CONFIG_RAPIDIO is not set
# CONFIG_X86_SYSFB is not set
#
# Binary Emulations
#
CONFIG_IA32_EMULATION=y
# CONFIG_IA32_AOUT is not set
# CONFIG_X86_X32 is not set
CONFIG_COMPAT_32=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_X86_DEV_DMA_OPS=y
CONFIG_HAVE_GENERIC_GUP=y
#
# Firmware Drivers
#
# CONFIG_EDD is not set
CONFIG_FIRMWARE_MEMMAP=y
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
# CONFIG_DMIID is not set
# CONFIG_DMI_SYSFS is not set
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
# CONFIG_ISCSI_IBFT_FIND is not set
# CONFIG_FW_CFG_SYSFS is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_UEFI_CPER=y
CONFIG_UEFI_CPER_X86=y
#
# Tegra firmware driver
#
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_HAVE_KVM_MSI=y
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_COMPAT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_KVM_INTEL=y
# CONFIG_KVM_AMD is not set
CONFIG_VHOST_NET=m
CONFIG_VHOST=m
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
#
# General architecture-dependent options
#
CONFIG_HOTPLUG_SMT=y
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
# CONFIG_KPROBES is not set
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
CONFIG_HAVE_NMI=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_RSEQ=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_STACKPROTECTOR=y
CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
CONFIG_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR_STRONG=y
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
CONFIG_HAVE_ARCH_HUGE_VMAP=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_HAVE_EXIT_THREAD=y
CONFIG_ARCH_MMAP_RND_BITS=28
CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
CONFIG_HAVE_COPY_THREAD_TLS=y
CONFIG_HAVE_STACK_VALIDATION=y
CONFIG_HAVE_RELIABLE_STACKTRACE=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_COMPAT_OLD_SIGACTION=y
CONFIG_COMPAT_32BIT_TIME=y
CONFIG_HAVE_ARCH_VMAP_STACK=y
CONFIG_VMAP_STACK=y
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
CONFIG_ARCH_HAS_REFCOUNT=y
# CONFIG_REFCOUNT_FULL is not set
CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
CONFIG_PLUGIN_HOSTCC="g++"
CONFIG_HAVE_GCC_PLUGINS=y
CONFIG_GCC_PLUGINS=y
# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
CONFIG_GCC_PLUGIN_STRUCTLEAK=y
CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set
CONFIG_GCC_PLUGIN_RANDSTRUCT=y
CONFIG_GCC_PLUGIN_RANDSTRUCT_PERFORMANCE=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
CONFIG_BLK_SCSI_REQUEST=y
CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
# CONFIG_BLK_DEV_ZONED is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_THROTTLING_LOW is not set
# CONFIG_BLK_CMDLINE_PARSER is not set
# CONFIG_BLK_WBT is not set
# CONFIG_BLK_CGROUP_IOLATENCY is not set
CONFIG_BLK_DEBUG_FS=y
# CONFIG_BLK_SED_OPAL is not set
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_AIX_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_LDM_PARTITION=y
# CONFIG_LDM_DEBUG is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
# CONFIG_CMDLINE_PARTITION is not set
CONFIG_BLOCK_COMPAT=y
CONFIG_BLK_MQ_PCI=y
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_CFQ_GROUP_IOSCHED=y
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_MQ_IOSCHED_DEADLINE=y
# CONFIG_MQ_IOSCHED_KYBER is not set
CONFIG_IOSCHED_BFQ=y
CONFIG_BFQ_GROUP_IOSCHED=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_ASN1=y
CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_RWSEM_SPIN_ON_OWNER=y
CONFIG_LOCK_SPIN_ON_OWNER=y
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
CONFIG_QUEUED_SPINLOCKS=y
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_QUEUED_RWLOCKS=y
CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
CONFIG_FREEZER=y
#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ELFCORE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_SCRIPT=y
CONFIG_BINFMT_MISC=m
CONFIG_COREDUMP=y
#
# Memory Management options
#
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_COMPACTION=y
CONFIG_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_MMU_NOTIFIER=y
CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_ARCH_WANTS_THP_SWAP=y
CONFIG_THP_SWAP=y
CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
CONFIG_CLEANCACHE=y
CONFIG_FRONTSWAP=y
# CONFIG_CMA is not set
# CONFIG_ZSWAP is not set
CONFIG_ZPOOL=y
CONFIG_ZBUD=y
# CONFIG_Z3FOLD is not set
CONFIG_ZSMALLOC=y
# CONFIG_PGTABLE_MAPPING is not set
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
# CONFIG_IDLE_PAGE_TRACKING is not set
CONFIG_ARCH_HAS_ZONE_DEVICE=y
CONFIG_FRAME_VECTOR=y
# CONFIG_PERCPU_STATS is not set
# CONFIG_GUP_BENCHMARK is not set
CONFIG_ARCH_HAS_PTE_SPECIAL=y
CONFIG_NET=y
CONFIG_NET_INGRESS=y
CONFIG_NET_EGRESS=y
#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_UNIX_DIAG=y
# CONFIG_TLS is not set
CONFIG_XFRM=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_ALGO=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_INTERFACE is not set
# CONFIG_XFRM_SUB_POLICY is not set
CONFIG_XFRM_MIGRATE=y
# CONFIG_XFRM_STATISTICS is not set
CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=y
CONFIG_NET_KEY_MIGRATE=y
# CONFIG_XDP_SOCKETS is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_ROUTE_CLASSID=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE_DEMUX is not set
CONFIG_NET_IP_TUNNEL=m
CONFIG_SYN_COOKIES=y
# CONFIG_NET_FOU is not set
# CONFIG_NET_FOU_IP_TUNNELS is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
CONFIG_INET_TUNNEL=m
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=m
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_ESP_OFFLOAD=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_MIP6=m
CONFIG_IPV6_ILA=m
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
CONFIG_IPV6_VTI=m
CONFIG_IPV6_SIT=m
CONFIG_IPV6_SIT_6RD=y
CONFIG_IPV6_NDISC_NODETYPE=y
CONFIG_IPV6_TUNNEL=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
# CONFIG_IPV6_MROUTE is not set
# CONFIG_IPV6_SEG6_LWTUNNEL is not set
# CONFIG_IPV6_SEG6_HMAC is not set
# CONFIG_NETLABEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NET_PTP_CLASSIFY=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y
#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_INGRESS=y
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_FAMILY_ARP=y
CONFIG_NETFILTER_NETLINK_ACCT=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NETFILTER_NETLINK_OSF=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_LOG_COMMON=m
# CONFIG_NF_LOG_NETDEV is not set
CONFIG_NETFILTER_CONNCOUNT=m
CONFIG_NF_CONNTRACK_MARK=y
# CONFIG_NF_CONNTRACK_ZONES is not set
CONFIG_NF_CONNTRACK_PROCFS=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CONNTRACK_LABELS=y
CONFIG_NF_CT_PROTO_DCCP=y
CONFIG_NF_CT_PROTO_GRE=m
CONFIG_NF_CT_PROTO_SCTP=y
CONFIG_NF_CT_PROTO_UDPLITE=y
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_SNMP=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NF_CT_NETLINK_TIMEOUT=m
CONFIG_NF_CT_NETLINK_HELPER=m
CONFIG_NETFILTER_NETLINK_GLUE_CT=y
CONFIG_NF_NAT=m
CONFIG_NF_NAT_NEEDED=y
CONFIG_NF_NAT_PROTO_DCCP=y
CONFIG_NF_NAT_PROTO_UDPLITE=y
CONFIG_NF_NAT_PROTO_SCTP=y
CONFIG_NF_NAT_AMANDA=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_SIP=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_NAT_REDIRECT=y
CONFIG_NETFILTER_SYNPROXY=m
CONFIG_NF_TABLES=m
CONFIG_NF_TABLES_SET=m
CONFIG_NF_TABLES_INET=y
CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
CONFIG_NFT_TUNNEL=m
CONFIG_NFT_OBJREF=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_REJECT_INET=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB=m
CONFIG_NFT_FIB_INET=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
CONFIG_NF_DUP_NETDEV=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
CONFIG_NETFILTER_XTABLES=m
#
# Xtables combined modules
#
CONFIG_NETFILTER_XT_MARK=m
CONFIG_NETFILTER_XT_CONNMARK=m
#
# Xtables targets
#
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_HMARK=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_NAT=m
CONFIG_NETFILTER_XT_TARGET_NETMAP=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
CONFIG_NETFILTER_XT_TARGET_RATEEST=m
CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
#
# Xtables matches
#
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
CONFIG_NETFILTER_XT_MATCH_BPF=m
CONFIG_NETFILTER_XT_MATCH_CGROUP=m
CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ECN=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_HL=m
CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_L2TP=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_NFACCT=m
CONFIG_NETFILTER_XT_MATCH_OSF=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_RECENT=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_SOCKET=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_TIME=m
CONFIG_NETFILTER_XT_MATCH_U32=m
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set
#
# IP: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_SOCKET_IPV4=m
CONFIG_NF_TPROXY_IPV4=m
CONFIG_NF_TABLES_IPV4=y
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_NF_REJECT_IPV4=m
CONFIG_NF_NAT_IPV4=m
CONFIG_NFT_CHAIN_NAT_IPV4=m
CONFIG_NF_NAT_MASQUERADE_IPV4=y
CONFIG_NFT_MASQ_IPV4=m
CONFIG_NFT_REDIR_IPV4=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_SYNPROXY=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_SECURITY=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration
#
CONFIG_NF_SOCKET_IPV6=m
CONFIG_NF_TPROXY_IPV6=m
CONFIG_NF_TABLES_IPV6=y
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
CONFIG_NFT_CHAIN_NAT_IPV6=m
CONFIG_NFT_MASQ_IPV6=m
CONFIG_NFT_REDIR_IPV6=m
CONFIG_NFT_REJECT_IPV6=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m
CONFIG_NF_NAT_IPV6=m
CONFIG_NF_NAT_MASQUERADE_IPV6=y
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_TARGET_SYNPROXY=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
CONFIG_NF_DEFRAG_IPV6=m
# CONFIG_BPFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
# CONFIG_BRIDGE is not set
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_PHONET is not set
# CONFIG_6LOWPAN is not set
# CONFIG_IEEE802154 is not set
CONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFB=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
CONFIG_NET_SCH_SKBPRIO=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_QFQ=m
CONFIG_NET_SCH_CODEL=m
CONFIG_NET_SCH_FQ_CODEL=m
CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
# CONFIG_NET_SCH_DEFAULT is not set
#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
CONFIG_NET_CLS_FLOWER=m
CONFIG_NET_CLS_MATCHALL=m
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_NBYTE=m
CONFIG_NET_EMATCH_U32=m
CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_EMATCH_IPT=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_SAMPLE=m
CONFIG_NET_ACT_IPT=m
CONFIG_NET_ACT_NAT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m
CONFIG_NET_ACT_SKBEDIT=m
CONFIG_NET_ACT_CSUM=m
CONFIG_NET_ACT_VLAN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_SKBMOD=m
CONFIG_NET_ACT_IFE=m
CONFIG_NET_ACT_TUNNEL_KEY=m
CONFIG_NET_IFE_SKBMARK=m
CONFIG_NET_IFE_SKBPRIO=m
CONFIG_NET_IFE_SKBTCINDEX=m
CONFIG_NET_CLS_IND=y
CONFIG_NET_SCH_FIFO=y
# CONFIG_DCB is not set
CONFIG_DNS_RESOLVER=m
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
# CONFIG_VSOCKETS is not set
# CONFIG_NETLINK_DIAG is not set
# CONFIG_MPLS is not set
# CONFIG_NET_NSH is not set
# CONFIG_HSR is not set
# CONFIG_NET_SWITCHDEV is not set
# CONFIG_NET_L3_MASTER_DEV is not set
# CONFIG_NET_NCSI is not set
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_BPF_JIT=y
# CONFIG_BPF_STREAM_PARSER is not set
CONFIG_NET_FLOW_LIMIT=y
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_AF_KCM is not set
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_CFG80211=m
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
CONFIG_CFG80211_DEFAULT_PS=y
# CONFIG_CFG80211_DEBUGFS is not set
CONFIG_CFG80211_CRDA_SUPPORT=y
# CONFIG_CFG80211_WEXT is not set
CONFIG_MAC80211=m
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
# CONFIG_MAC80211_MESH is not set
# CONFIG_MAC80211_DEBUGFS is not set
# CONFIG_MAC80211_MESSAGE_TRACING is not set
# CONFIG_MAC80211_DEBUG_MENU is not set
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set
CONFIG_PSAMPLE=m
CONFIG_NET_IFE=m
CONFIG_LWTUNNEL=y
# CONFIG_LWTUNNEL_BPF is not set
CONFIG_DST_CACHE=y
CONFIG_GRO_CELLS=y
CONFIG_NET_DEVLINK=m
CONFIG_MAY_USE_DEVLINK=m
# CONFIG_FAILOVER is not set
CONFIG_HAVE_EBPF_JIT=y
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH=""
CONFIG_DEVTMPFS=y
# CONFIG_DEVTMPFS_MOUNT is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Firmware loader
#
CONFIG_FW_LOADER=y
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_FW_LOADER_USER_HELPER is not set
CONFIG_ALLOW_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_GENERIC_CPU_VULNERABILITIES=y
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=y
CONFIG_DMA_SHARED_BUFFER=y
# CONFIG_DMA_FENCE_TRACE is not set
#
# Bus devices
#
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
# CONFIG_GNSS is not set
# CONFIG_MTD is not set
# CONFIG_OF is not set
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
# CONFIG_PARPORT_AX88796 is not set
CONFIG_PARPORT_1284=y
CONFIG_PNP=y
# CONFIG_PNP_DEBUG_MESSAGES is not set
#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_NULL_BLK is not set
# CONFIG_BLK_DEV_FD is not set
CONFIG_CDROM=m
# CONFIG_PARIDE is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
CONFIG_ZRAM=y
# CONFIG_ZRAM_WRITEBACK is not set
# CONFIG_ZRAM_MEMORY_TRACKING is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_DRBD is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SKD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_BLK_DEV_RSXX is not set
#
# NVME Support
#
# CONFIG_BLK_DEV_NVME is not set
# CONFIG_NVME_FC is not set
# CONFIG_NVME_TARGET is not set
#
# Misc devices
#
# CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_APDS9802ALS is not set
# CONFIG_ISL29003 is not set
# CONFIG_ISL29020 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_SENSORS_BH1770 is not set
# CONFIG_SENSORS_APDS990X is not set
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
# CONFIG_USB_SWITCH_FSA9480 is not set
# CONFIG_SRAM is not set
# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_C2PORT is not set
#
# EEPROM support
#
# CONFIG_EEPROM_AT24 is not set
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_EEPROM_IDT_89HPESX is not set
# CONFIG_CB710_CORE is not set
#
# Texas Instruments shared transport line discipline
#
# CONFIG_SENSORS_LIS3_I2C is not set
# CONFIG_ALTERA_STAPL is not set
# CONFIG_INTEL_MEI is not set
# CONFIG_INTEL_MEI_ME is not set
# CONFIG_INTEL_MEI_TXE is not set
# CONFIG_VMWARE_VMCI is not set
#
# Intel MIC & related support
#
#
# Intel MIC Bus Driver
#
# CONFIG_INTEL_MIC_BUS is not set
#
# SCIF Bus Driver
#
# CONFIG_SCIF_BUS is not set
#
# VOP Bus Driver
#
# CONFIG_VOP_BUS is not set
#
# Intel MIC Host Driver
#
#
# Intel MIC Card Driver
#
#
# SCIF Driver
#
#
# Intel MIC Coprocessor State Management (COSM) Drivers
#
#
# VOP Driver
#
# CONFIG_GENWQE is not set
# CONFIG_ECHO is not set
# CONFIG_MISC_RTSX_PCI is not set
# CONFIG_MISC_RTSX_USB is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
#
# SCSI device support
#
CONFIG_SCSI_MOD=y
CONFIG_RAID_ATTRS=m
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_MQ_DEFAULT=y
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
CONFIG_CHR_DEV_SCH=m
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
CONFIG_SCSI_SCAN_ASYNC=y
#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
# CONFIG_SCSI_LOWLEVEL is not set
# CONFIG_SCSI_DH is not set
CONFIG_SCSI_OSD_INITIATOR=m
CONFIG_SCSI_OSD_ULD=m
CONFIG_SCSI_OSD_DPRINT_SENSE=0
# CONFIG_SCSI_OSD_DEBUG is not set
CONFIG_ATA=y
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_ACPI=y
CONFIG_SATA_ZPODD=y
CONFIG_SATA_PMP=y
#
# Controllers with non-SFF native interface
#
CONFIG_SATA_AHCI=y
CONFIG_SATA_MOBILE_LPM_POLICY=0
CONFIG_SATA_AHCI_PLATFORM=y
# CONFIG_SATA_INIC162X is not set
# CONFIG_SATA_ACARD_AHCI is not set
# CONFIG_SATA_SIL24 is not set
CONFIG_ATA_SFF=y
#
# SFF controllers with custom DMA interface
#
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_SX4 is not set
CONFIG_ATA_BMDMA=y
#
# SATA SFF controllers with BMDMA
#
CONFIG_ATA_PIIX=y
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_SVW is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
#
# PATA SFF controllers with BMDMA
#
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_ATP867X is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87415 is not set
CONFIG_PATA_OLDPIIX=y
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RDC is not set
# CONFIG_PATA_SCH is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_TOSHIBA is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
#
# PIO-only SFF controllers
#
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_RZ1000 is not set
#
# Generic fallback / legacy drivers
#
CONFIG_PATA_ACPI=m
# CONFIG_ATA_GENERIC is not set
# CONFIG_PATA_LEGACY is not set
CONFIG_MD=y
# CONFIG_BLK_DEV_MD is not set
# CONFIG_BCACHE is not set
CONFIG_BLK_DEV_DM_BUILTIN=y
CONFIG_BLK_DEV_DM=m
CONFIG_DM_MQ_DEFAULT=y
# CONFIG_DM_DEBUG is not set
CONFIG_DM_BUFIO=m
# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
# CONFIG_DM_UNSTRIPED is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
# CONFIG_DM_THIN_PROVISIONING is not set
# CONFIG_DM_CACHE is not set
CONFIG_DM_WRITECACHE=m
# CONFIG_DM_ERA is not set
# CONFIG_DM_MIRROR is not set
# CONFIG_DM_RAID is not set
CONFIG_DM_ZERO=m
# CONFIG_DM_MULTIPATH is not set
# CONFIG_DM_DELAY is not set
CONFIG_DM_UEVENT=y
# CONFIG_DM_FLAKEY is not set
# CONFIG_DM_VERITY is not set
# CONFIG_DM_SWITCH is not set
# CONFIG_DM_LOG_WRITES is not set
# CONFIG_DM_INTEGRITY is not set
# CONFIG_TARGET_CORE is not set
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_FIREWIRE_NOSY is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
CONFIG_NET_CORE=y
# CONFIG_BONDING is not set
# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
# CONFIG_NET_FC is not set
# CONFIG_IFB is not set
# CONFIG_NET_TEAM is not set
CONFIG_MACVLAN=m
# CONFIG_MACVTAP is not set
# CONFIG_IPVLAN is not set
# CONFIG_VXLAN is not set
# CONFIG_MACSEC is not set
# CONFIG_NETCONSOLE is not set
CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_VETH is not set
# CONFIG_NLMON is not set
# CONFIG_ARCNET is not set
#
# CAIF transport drivers
#
#
# Distributed Switch Architecture drivers
#
CONFIG_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_ADAPTEC is not set
# CONFIG_NET_VENDOR_AGERE is not set
# CONFIG_NET_VENDOR_ALACRITECH is not set
# CONFIG_NET_VENDOR_ALTEON is not set
# CONFIG_ALTERA_TSE is not set
# CONFIG_NET_VENDOR_AMAZON is not set
# CONFIG_NET_VENDOR_AMD is not set
# CONFIG_NET_VENDOR_AQUANTIA is not set
# CONFIG_NET_VENDOR_ARC is not set
# CONFIG_NET_VENDOR_ATHEROS is not set
# CONFIG_NET_VENDOR_AURORA is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_BROCADE is not set
# CONFIG_NET_VENDOR_CADENCE is not set
# CONFIG_NET_VENDOR_CAVIUM is not set
# CONFIG_NET_VENDOR_CHELSIO is not set
# CONFIG_NET_VENDOR_CISCO is not set
# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_CX_ECAT is not set
# CONFIG_DNET is not set
# CONFIG_NET_VENDOR_DEC is not set
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
# CONFIG_NET_VENDOR_HP is not set
# CONFIG_NET_VENDOR_HUAWEI is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_JME is not set
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
# CONFIG_NET_VENDOR_MYRI is not set
# CONFIG_FEALNX is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NETERION is not set
# CONFIG_NET_VENDOR_NETRONOME is not set
# CONFIG_NET_VENDOR_NI is not set
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
# CONFIG_ETHOC is not set
# CONFIG_NET_VENDOR_PACKET_ENGINES is not set
# CONFIG_NET_VENDOR_QLOGIC is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
# CONFIG_NET_VENDOR_RDC is not set
CONFIG_NET_VENDOR_REALTEK=y
# CONFIG_ATP is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
CONFIG_R8169=m
# CONFIG_NET_VENDOR_RENESAS is not set
# CONFIG_NET_VENDOR_ROCKER is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
# CONFIG_NET_VENDOR_SILAN is not set
# CONFIG_NET_VENDOR_SIS is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN is not set
# CONFIG_NET_VENDOR_SYNOPSYS is not set
# CONFIG_NET_VENDOR_TEHUTI is not set
# CONFIG_NET_VENDOR_TI is not set
# CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_NET_SB1000 is not set
CONFIG_MDIO_DEVICE=m
CONFIG_MDIO_BUS=m
# CONFIG_MDIO_BCM_UNIMAC is not set
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_CAVIUM=m
# CONFIG_MDIO_MSCC_MIIM is not set
CONFIG_MDIO_THUNDER=m
CONFIG_PHYLIB=m
#
# MII PHY device drivers
#
# CONFIG_AMD_PHY is not set
# CONFIG_AQUANTIA_PHY is not set
# CONFIG_ASIX_PHY is not set
# CONFIG_AT803X_PHY is not set
# CONFIG_BCM7XXX_PHY is not set
# CONFIG_BCM87XX_PHY is not set
# CONFIG_BROADCOM_PHY is not set
# CONFIG_CICADA_PHY is not set
# CONFIG_CORTINA_PHY is not set
# CONFIG_DAVICOM_PHY is not set
# CONFIG_DP83822_PHY is not set
# CONFIG_DP83TC811_PHY is not set
# CONFIG_DP83848_PHY is not set
# CONFIG_DP83867_PHY is not set
# CONFIG_FIXED_PHY is not set
# CONFIG_ICPLUS_PHY is not set
CONFIG_INTEL_XWAY_PHY=m
# CONFIG_LSI_ET1011C_PHY is not set
# CONFIG_LXT_PHY is not set
# CONFIG_MARVELL_PHY is not set
# CONFIG_MARVELL_10G_PHY is not set
# CONFIG_MICREL_PHY is not set
# CONFIG_MICROCHIP_PHY is not set
# CONFIG_MICROCHIP_T1_PHY is not set
# CONFIG_MICROSEMI_PHY is not set
# CONFIG_NATIONAL_PHY is not set
# CONFIG_QSEMI_PHY is not set
CONFIG_REALTEK_PHY=m
# CONFIG_RENESAS_PHY is not set
# CONFIG_ROCKCHIP_PHY is not set
# CONFIG_SMSC_PHY is not set
# CONFIG_STE10XP is not set
# CONFIG_TERANETICS_PHY is not set
# CONFIG_VITESSE_PHY is not set
# CONFIG_XILINX_GMII2RGMII is not set
# CONFIG_PLIP is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
#
# Host-side USB support is needed for USB Network Adapter support
#
# CONFIG_USB_NET_DRIVERS is not set
CONFIG_WLAN=y
# CONFIG_WLAN_VENDOR_ADMTEK is not set
# CONFIG_WLAN_VENDOR_ATH is not set
# CONFIG_WLAN_VENDOR_ATMEL is not set
# CONFIG_WLAN_VENDOR_BROADCOM is not set
# CONFIG_WLAN_VENDOR_CISCO is not set
# CONFIG_WLAN_VENDOR_INTEL is not set
# CONFIG_WLAN_VENDOR_INTERSIL is not set
# CONFIG_WLAN_VENDOR_MARVELL is not set
# CONFIG_WLAN_VENDOR_MEDIATEK is not set
CONFIG_WLAN_VENDOR_RALINK=y
CONFIG_RT2X00=m
# CONFIG_RT2400PCI is not set
# CONFIG_RT2500PCI is not set
# CONFIG_RT61PCI is not set
# CONFIG_RT2800PCI is not set
# CONFIG_RT2500USB is not set
# CONFIG_RT73USB is not set
CONFIG_RT2800USB=m
# CONFIG_RT2800USB_RT33XX is not set
# CONFIG_RT2800USB_RT35XX is not set
# CONFIG_RT2800USB_RT3573 is not set
# CONFIG_RT2800USB_RT53XX is not set
# CONFIG_RT2800USB_RT55XX is not set
# CONFIG_RT2800USB_UNKNOWN is not set
CONFIG_RT2800_LIB=m
CONFIG_RT2X00_LIB_USB=m
CONFIG_RT2X00_LIB=m
CONFIG_RT2X00_LIB_FIRMWARE=y
CONFIG_RT2X00_LIB_CRYPTO=y
# CONFIG_RT2X00_DEBUG is not set
# CONFIG_WLAN_VENDOR_REALTEK is not set
# CONFIG_WLAN_VENDOR_RSI is not set
# CONFIG_WLAN_VENDOR_ST is not set
# CONFIG_WLAN_VENDOR_TI is not set
# CONFIG_WLAN_VENDOR_ZYDAS is not set
# CONFIG_WLAN_VENDOR_QUANTENNA is not set
# CONFIG_MAC80211_HWSIM is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
# CONFIG_WAN is not set
# CONFIG_VMXNET3 is not set
# CONFIG_FUJITSU_ES is not set
# CONFIG_NETDEVSIM is not set
# CONFIG_NET_FAILOVER is not set
# CONFIG_ISDN is not set
# CONFIG_NVM is not set
#
# Input device support
#
CONFIG_INPUT=y
CONFIG_INPUT_FF_MEMLESS=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_SPARSEKMAP=m
CONFIG_INPUT_MATRIXKMAP=m
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=m
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADP5588 is not set
# CONFIG_KEYBOARD_ADP5589 is not set
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_DLINK_DIR685 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_LM8333 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_MCS is not set
# CONFIG_KEYBOARD_MPR121 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_BYD=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
CONFIG_MOUSE_PS2_CYPRESS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_ELANTECH=y
CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
CONFIG_MOUSE_PS2_SENTELIC=y
CONFIG_MOUSE_PS2_TOUCHKIT=y
CONFIG_MOUSE_PS2_FOCALTECH=y
CONFIG_MOUSE_PS2_SMBUS=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
# CONFIG_MOUSE_CYAPA is not set
# CONFIG_MOUSE_ELAN_I2C is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not set
CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
CONFIG_JOYSTICK_GRIP_MP=m
CONFIG_JOYSTICK_GUILLEMOT=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_IFORCE_232=y
CONFIG_JOYSTICK_WARRIOR=m
CONFIG_JOYSTICK_MAGELLAN=m
CONFIG_JOYSTICK_SPACEORB=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_STINGER=m
CONFIG_JOYSTICK_TWIDJOY=m
CONFIG_JOYSTICK_ZHENHUA=m
CONFIG_JOYSTICK_DB9=m
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_TURBOGRAFX=m
CONFIG_JOYSTICK_AS5011=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_WALKERA0701=m
CONFIG_JOYSTICK_PXRC=m
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
# CONFIG_INPUT_AD714X is not set
# CONFIG_INPUT_BMA150 is not set
# CONFIG_INPUT_E3X0_BUTTON is not set
CONFIG_INPUT_PCSPKR=m
# CONFIG_INPUT_MMA8450 is not set
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_KXTJ9 is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
# CONFIG_INPUT_CM109 is not set
# CONFIG_INPUT_UINPUT is not set
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_ADXL34X is not set
# CONFIG_INPUT_CMA3000 is not set
# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set
# CONFIG_INPUT_DRV2665_HAPTICS is not set
# CONFIG_INPUT_DRV2667_HAPTICS is not set
# CONFIG_RMI4_CORE is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_SERIO_ARC_PS2 is not set
# CONFIG_USERIO is not set
CONFIG_GAMEPORT=m
# CONFIG_GAMEPORT_NS558 is not set
# CONFIG_GAMEPORT_L4 is not set
# CONFIG_GAMEPORT_EMU10K1 is not set
# CONFIG_GAMEPORT_FM801 is not set
#
# Character devices
#
CONFIG_TTY=y
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set
CONFIG_DEVMEM=y
# CONFIG_DEVKMEM is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
# CONFIG_SERIAL_UARTLITE is not set
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_SC16IS7XX is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_DEV_BUS is not set
# CONFIG_PRINTER is not set
CONFIG_PPDEV=m
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_VIA=m
# CONFIG_NVRAM is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_MWAVE is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
CONFIG_HPET_MMAP_DEFAULT=y
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
# CONFIG_DEVPORT is not set
# CONFIG_XILLYBUS is not set
# CONFIG_RANDOM_TRUST_CPU is not set
#
# I2C support
#
CONFIG_I2C=y
# CONFIG_ACPI_I2C_OPREGION is not set
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_MUX=y
#
# Multiplexer I2C Chip support
#
# CONFIG_I2C_MUX_LTC4306 is not set
CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_REG=m
# CONFIG_I2C_MUX_MLXCPLD is not set
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=m
CONFIG_I2C_ALGOBIT=m
#
# I2C Hardware Bus support
#
#
# PC SMBus host controller drivers
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_I801=m
CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
#
# ACPI drivers
#
CONFIG_I2C_SCMI=m
#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
# CONFIG_I2C_DESIGNWARE_PCI is not set
# CONFIG_I2C_EMEV2 is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_XILINX is not set
#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_DIOLAN_U2C is not set
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set
#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_MLXCPLD is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_SLAVE is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_SPI is not set
# CONFIG_SPMI is not set
# CONFIG_HSI is not set
CONFIG_PPS=m
# CONFIG_PPS_DEBUG is not set
#
# PPS clients support
#
CONFIG_PPS_CLIENT_KTIMER=m
CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m
CONFIG_PPS_CLIENT_GPIO=m
#
# PPS generators support
#
#
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=m
#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#
# CONFIG_PINCTRL is not set
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
# CONFIG_POWER_AVS is not set
# CONFIG_POWER_RESET is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_TEST_POWER is not set
# CONFIG_CHARGER_ADP5061 is not set
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_SBS is not set
# CONFIG_CHARGER_SBS is not set
# CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
CONFIG_HWMON=m
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set
#
# Native drivers
#
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7410 is not set
# CONFIG_SENSORS_ADT7411 is not set
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_ASC7621 is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_K10TEMP is not set
# CONFIG_SENSORS_FAM15H_POWER is not set
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ASPEED is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_DELL_SMM is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_G760A is not set
# CONFIG_SENSORS_G762 is not set
# CONFIG_SENSORS_HIH6130 is not set
# CONFIG_SENSORS_I5500 is not set
CONFIG_SENSORS_CORETEMP=m
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_JC42 is not set
# CONFIG_SENSORS_POWR1220 is not set
# CONFIG_SENSORS_LINEAGE is not set
# CONFIG_SENSORS_LTC2945 is not set
# CONFIG_SENSORS_LTC2990 is not set
# CONFIG_SENSORS_LTC4151 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4222 is not set
# CONFIG_SENSORS_LTC4245 is not set
# CONFIG_SENSORS_LTC4260 is not set
# CONFIG_SENSORS_LTC4261 is not set
# CONFIG_SENSORS_MAX16065 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX1668 is not set
# CONFIG_SENSORS_MAX197 is not set
# CONFIG_SENSORS_MAX6621 is not set
# CONFIG_SENSORS_MAX6639 is not set
# CONFIG_SENSORS_MAX6642 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_MAX6697 is not set
# CONFIG_SENSORS_MAX31790 is not set
# CONFIG_SENSORS_MCP3021 is not set
# CONFIG_SENSORS_TC654 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM73 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LM95234 is not set
# CONFIG_SENSORS_LM95241 is not set
# CONFIG_SENSORS_LM95245 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_NTC_THERMISTOR is not set
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
CONFIG_SENSORS_NCT7904=m
CONFIG_SENSORS_NPCM7XX=m
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_PMBUS is not set
# CONFIG_SENSORS_SHT21 is not set
# CONFIG_SENSORS_SHT3x is not set
# CONFIG_SENSORS_SHTC1 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_EMC1403 is not set
# CONFIG_SENSORS_EMC2103 is not set
# CONFIG_SENSORS_EMC6W201 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_STTS751 is not set
# CONFIG_SENSORS_SMM665 is not set
# CONFIG_SENSORS_ADC128D818 is not set
# CONFIG_SENSORS_ADS1015 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_AMC6821 is not set
# CONFIG_SENSORS_INA209 is not set
# CONFIG_SENSORS_INA2XX is not set
# CONFIG_SENSORS_INA3221 is not set
# CONFIG_SENSORS_TC74 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
# CONFIG_SENSORS_TMP103 is not set
# CONFIG_SENSORS_TMP108 is not set
# CONFIG_SENSORS_TMP401 is not set
# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VIA_CPUTEMP is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83773G is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83795 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_XGENE is not set
#
# ACPI drivers
#
# CONFIG_SENSORS_ACPI_POWER is not set
# CONFIG_SENSORS_ATK0110 is not set
CONFIG_THERMAL=y
CONFIG_THERMAL_STATISTICS=y
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_WRITABLE_TRIPS is not set
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
CONFIG_THERMAL_GOV_STEP_WISE=y
# CONFIG_THERMAL_GOV_BANG_BANG is not set
# CONFIG_THERMAL_GOV_USER_SPACE is not set
# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_INTEL_POWERCLAMP is not set
# CONFIG_INTEL_SOC_DTS_THERMAL is not set
#
# ACPI INT340X thermal drivers
#
# CONFIG_INT340X_THERMAL is not set
CONFIG_INTEL_PCH_THERMAL=m
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y
# CONFIG_SSB is not set
CONFIG_BCMA_POSSIBLE=y
# CONFIG_BCMA is not set
#
# Multifunction device drivers
#
CONFIG_MFD_CORE=m
# CONFIG_MFD_AS3711 is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_BCM590XX is not set
# CONFIG_MFD_BD9571MWV is not set
# CONFIG_MFD_AXP20X_I2C is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_MADERA is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_DA9062 is not set
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
# CONFIG_LPC_ICH is not set
CONFIG_LPC_SCH=m
# CONFIG_INTEL_SOC_PMIC_CHTWC is not set
CONFIG_MFD_INTEL_LPSS=m
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_MAX14577 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX77843 is not set
# CONFIG_MFD_MAX8907 is not set
# CONFIG_MFD_MAX8925 is not set
# CONFIG_MFD_MAX8997 is not set
# CONFIG_MFD_MAX8998 is not set
# CONFIG_MFD_MT6397 is not set
# CONFIG_MFD_MENF21BMC is not set
# CONFIG_MFD_VIPERBOARD is not set
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RT5033 is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_SKY81452 is not set
# CONFIG_MFD_SMSC is not set
# CONFIG_ABX500_CORE is not set
# CONFIG_MFD_SYSCON is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
# CONFIG_MFD_LP3943 is not set
# CONFIG_MFD_LP8788 is not set
# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_TPS6105X is not set
# CONFIG_TPS6507X is not set
# CONFIG_MFD_TPS65086 is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TPS68470 is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TPS6586X is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS80031 is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
# CONFIG_MFD_WL1273_CORE is not set
# CONFIG_MFD_LM3533 is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X_I2C is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
# CONFIG_REGULATOR is not set
# CONFIG_RC_CORE is not set
CONFIG_MEDIA_SUPPORT=m
#
# Multimedia core support
#
CONFIG_MEDIA_CAMERA_SUPPORT=y
# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
# CONFIG_MEDIA_RADIO_SUPPORT is not set
# CONFIG_MEDIA_SDR_SUPPORT is not set
# CONFIG_MEDIA_CEC_SUPPORT is not set
# CONFIG_MEDIA_CONTROLLER is not set
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2=m
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
#
# Media drivers
#
CONFIG_MEDIA_USB_SUPPORT=y
#
# Webcam devices
#
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
CONFIG_USB_GSPCA=m
CONFIG_USB_M5602=m
CONFIG_USB_STV06XX=m
CONFIG_USB_GL860=m
CONFIG_USB_GSPCA_BENQ=m
CONFIG_USB_GSPCA_CONEX=m
CONFIG_USB_GSPCA_CPIA1=m
CONFIG_USB_GSPCA_DTCS033=m
CONFIG_USB_GSPCA_ETOMS=m
CONFIG_USB_GSPCA_FINEPIX=m
CONFIG_USB_GSPCA_JEILINJ=m
CONFIG_USB_GSPCA_JL2005BCD=m
CONFIG_USB_GSPCA_KINECT=m
CONFIG_USB_GSPCA_KONICA=m
CONFIG_USB_GSPCA_MARS=m
CONFIG_USB_GSPCA_MR97310A=m
CONFIG_USB_GSPCA_NW80X=m
CONFIG_USB_GSPCA_OV519=m
CONFIG_USB_GSPCA_OV534=m
CONFIG_USB_GSPCA_OV534_9=m
CONFIG_USB_GSPCA_PAC207=m
CONFIG_USB_GSPCA_PAC7302=m
CONFIG_USB_GSPCA_PAC7311=m
CONFIG_USB_GSPCA_SE401=m
CONFIG_USB_GSPCA_SN9C2028=m
CONFIG_USB_GSPCA_SN9C20X=m
CONFIG_USB_GSPCA_SONIXB=m
CONFIG_USB_GSPCA_SONIXJ=m
CONFIG_USB_GSPCA_SPCA500=m
CONFIG_USB_GSPCA_SPCA501=m
CONFIG_USB_GSPCA_SPCA505=m
CONFIG_USB_GSPCA_SPCA506=m
CONFIG_USB_GSPCA_SPCA508=m
CONFIG_USB_GSPCA_SPCA561=m
CONFIG_USB_GSPCA_SPCA1528=m
CONFIG_USB_GSPCA_SQ905=m
CONFIG_USB_GSPCA_SQ905C=m
CONFIG_USB_GSPCA_SQ930X=m
CONFIG_USB_GSPCA_STK014=m
CONFIG_USB_GSPCA_STK1135=m
CONFIG_USB_GSPCA_STV0680=m
CONFIG_USB_GSPCA_SUNPLUS=m
CONFIG_USB_GSPCA_T613=m
CONFIG_USB_GSPCA_TOPRO=m
CONFIG_USB_GSPCA_TOUPTEK=m
CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
CONFIG_USB_GSPCA_XIRLINK_CIT=m
CONFIG_USB_GSPCA_ZC3XX=m
CONFIG_USB_PWC=m
# CONFIG_USB_PWC_DEBUG is not set
CONFIG_USB_PWC_INPUT_EVDEV=y
# CONFIG_VIDEO_CPIA2 is not set
# CONFIG_USB_ZR364XX is not set
# CONFIG_USB_STKWEBCAM is not set
# CONFIG_USB_S2255 is not set
# CONFIG_VIDEO_USBTV is not set
#
# Webcam, TV (analog/digital) USB devices
#
# CONFIG_VIDEO_EM28XX is not set
# CONFIG_MEDIA_PCI_SUPPORT is not set
# CONFIG_V4L_PLATFORM_DRIVERS is not set
# CONFIG_V4L_MEM2MEM_DRIVERS is not set
# CONFIG_V4L_TEST_DRIVERS is not set
#
# Supported MMC/SDIO adapters
#
# CONFIG_CYPRESS_FIRMWARE is not set
CONFIG_VIDEOBUF2_CORE=m
CONFIG_VIDEOBUF2_V4L2=m
CONFIG_VIDEOBUF2_MEMOPS=m
CONFIG_VIDEOBUF2_VMALLOC=m
#
# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
#
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
#
# Audio decoders, processors and mixers
#
#
# RDS decoders
#
#
# Video decoders
#
#
# Video and audio decoders
#
#
# Video encoders
#
#
# Camera sensor devices
#
#
# Flash devices
#
#
# Video improvement chips
#
#
# Audio/Video compression chips
#
#
# SDR tuner chips
#
#
# Miscellaneous helper chips
#
#
# Sensors used on soc_camera driver
#
#
# Tools to develop new frontends
#
#
# Graphics support
#
# CONFIG_AGP is not set
CONFIG_INTEL_GTT=m
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
# CONFIG_VGA_SWITCHEROO is not set
CONFIG_DRM=m
CONFIG_DRM_MIPI_DSI=y
# CONFIG_DRM_DP_AUX_CHARDEV is not set
# CONFIG_DRM_DEBUG_SELFTEST is not set
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
# CONFIG_DRM_DP_CEC is not set
CONFIG_DRM_TTM=m
CONFIG_DRM_VM=y
CONFIG_DRM_SCHED=m
#
# I2C encoder or helper chips
#
# CONFIG_DRM_I2C_CH7006 is not set
# CONFIG_DRM_I2C_SIL164 is not set
# CONFIG_DRM_I2C_NXP_TDA998X is not set
# CONFIG_DRM_I2C_NXP_TDA9950 is not set
CONFIG_DRM_RADEON=m
# CONFIG_DRM_RADEON_USERPTR is not set
CONFIG_DRM_AMDGPU=m
# CONFIG_DRM_AMDGPU_SI is not set
# CONFIG_DRM_AMDGPU_CIK is not set
# CONFIG_DRM_AMDGPU_USERPTR is not set
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
#
# ACP (Audio CoProcessor) Configuration
#
CONFIG_DRM_AMD_ACP=y
#
# Display Engine Configuration
#
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMD_DC_DCN1_0=y
# CONFIG_DEBUG_KERNEL_DC is not set
#
# AMD Library routines
#
CONFIG_CHASH=m
# CONFIG_CHASH_STATS is not set
# CONFIG_CHASH_SELFTEST is not set
CONFIG_DRM_NOUVEAU=m
CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_NOUVEAU_DEBUG_MMU is not set
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_I915=m
# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
# CONFIG_DRM_I915_CAPTURE_ERROR is not set
CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_I915_GVT is not set
# CONFIG_DRM_VGEM is not set
# CONFIG_DRM_VKMS is not set
# CONFIG_DRM_VMWGFX is not set
# CONFIG_DRM_GMA500 is not set
# CONFIG_DRM_UDL is not set
# CONFIG_DRM_AST is not set
# CONFIG_DRM_MGAG200 is not set
# CONFIG_DRM_CIRRUS_QEMU is not set
# CONFIG_DRM_QXL is not set
# CONFIG_DRM_BOCHS is not set
CONFIG_DRM_PANEL=y
#
# Display Panels
#
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
CONFIG_DRM_BRIDGE=y
CONFIG_DRM_PANEL_BRIDGE=y
#
# Display Interface Bridges
#
# CONFIG_DRM_ANALOGIX_ANX78XX is not set
# CONFIG_HSA_AMD is not set
# CONFIG_DRM_HISI_HIBMC is not set
# CONFIG_DRM_TINYDRM is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_CMDLINE=y
CONFIG_FB_NOTIFY=y
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_SYS_FILLRECT=m
CONFIG_FB_SYS_COPYAREA=m
CONFIG_FB_SYS_IMAGEBLIT=m
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYS_FOPS=m
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_UVESA is not set
CONFIG_FB_VESA=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I740 is not set
# CONFIG_FB_LE80578 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_SMSCUFX is not set
# CONFIG_FB_UDL is not set
# CONFIG_FB_IBM_GXT4500 is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
# CONFIG_FB_SIMPLE is not set
# CONFIG_FB_SM712 is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
# CONFIG_LCD_CLASS_DEVICE is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_APPLE is not set
# CONFIG_BACKLIGHT_PM8941_WLED is not set
# CONFIG_BACKLIGHT_SAHARA is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LM3639 is not set
# CONFIG_BACKLIGHT_LV5207LP is not set
# CONFIG_BACKLIGHT_BD6107 is not set
# CONFIG_BACKLIGHT_ARCXCNN is not set
CONFIG_HDMI=y
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_DUMMY_CONSOLE_COLUMNS=80
CONFIG_DUMMY_CONSOLE_ROWS=25
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
# CONFIG_LOGO is not set
CONFIG_SOUND=m
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_SEQ_DEVICE=m
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
# CONFIG_SND_OSSEMUL is not set
CONFIG_SND_PCM_TIMER=y
CONFIG_SND_HRTIMER=m
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_MAX_CARDS=32
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_PROC_FS=y
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DRIVERS=y
# CONFIG_SND_PCSP is not set
CONFIG_SND_DUMMY=m
CONFIG_SND_ALOOP=m
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_MTS64 is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
# CONFIG_SND_PORTMAN2X4 is not set
CONFIG_SND_PCI=y
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ASIHPI is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AW2 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_OXYGEN is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CTXFI is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_INDIGOIOX is not set
# CONFIG_SND_INDIGODJX is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_LOLA is not set
# CONFIG_SND_LX6464ES is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SE6X is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VIRTUOSO is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
#
# HD-Audio
#
CONFIG_SND_HDA=m
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=1
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=m
# CONFIG_SND_HDA_CODEC_ANALOG is not set
# CONFIG_SND_HDA_CODEC_SIGMATEL is not set
# CONFIG_SND_HDA_CODEC_VIA is not set
CONFIG_SND_HDA_CODEC_HDMI=m
# CONFIG_SND_HDA_CODEC_CIRRUS is not set
# CONFIG_SND_HDA_CODEC_CONEXANT is not set
# CONFIG_SND_HDA_CODEC_CA0110 is not set
# CONFIG_SND_HDA_CODEC_CA0132 is not set
# CONFIG_SND_HDA_CODEC_CMEDIA is not set
# CONFIG_SND_HDA_CODEC_SI3054 is not set
CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=30
CONFIG_SND_HDA_CORE=m
CONFIG_SND_HDA_COMPONENT=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_PREALLOC_SIZE=64
# CONFIG_SND_USB is not set
# CONFIG_SND_SOC is not set
# CONFIG_SND_X86 is not set
#
# HID support
#
CONFIG_HID=m
CONFIG_HID_BATTERY_STRENGTH=y
CONFIG_HIDRAW=y
CONFIG_UHID=m
CONFIG_HID_GENERIC=m
#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
CONFIG_HID_ACCUTOUCH=m
# CONFIG_HID_ACRUX is not set
CONFIG_HID_APPLE=m
# CONFIG_HID_APPLEIR is not set
# CONFIG_HID_AUREAL is not set
CONFIG_HID_BELKIN=m
# CONFIG_HID_BETOP_FF is not set
CONFIG_HID_CHERRY=m
CONFIG_HID_CHICONY=m
# CONFIG_HID_COUGAR is not set
# CONFIG_HID_PRODIKEYS is not set
# CONFIG_HID_CMEDIA is not set
CONFIG_HID_CYPRESS=m
# CONFIG_HID_DRAGONRISE is not set
# CONFIG_HID_EMS_FF is not set
# CONFIG_HID_ELECOM is not set
# CONFIG_HID_ELO is not set
CONFIG_HID_EZKEY=m
# CONFIG_HID_GEMBIRD is not set
# CONFIG_HID_GFRM is not set
# CONFIG_HID_HOLTEK is not set
# CONFIG_HID_KEYTOUCH is not set
# CONFIG_HID_KYE is not set
# CONFIG_HID_UCLOGIC is not set
# CONFIG_HID_WALTOP is not set
# CONFIG_HID_GYRATION is not set
# CONFIG_HID_ICADE is not set
# CONFIG_HID_ITE is not set
# CONFIG_HID_JABRA is not set
# CONFIG_HID_TWINHAN is not set
CONFIG_HID_KENSINGTON=m
# CONFIG_HID_LCPOWER is not set
# CONFIG_HID_LENOVO is not set
CONFIG_HID_LOGITECH=m
CONFIG_HID_LOGITECH_DJ=m
CONFIG_HID_LOGITECH_HIDPP=m
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
CONFIG_LOGIWHEELS_FF=y
# CONFIG_HID_MAGICMOUSE is not set
# CONFIG_HID_MAYFLASH is not set
# CONFIG_HID_REDRAGON is not set
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
# CONFIG_HID_MULTITOUCH is not set
CONFIG_HID_NTI=m
# CONFIG_HID_NTRIG is not set
# CONFIG_HID_ORTEK is not set
# CONFIG_HID_PANTHERLORD is not set
# CONFIG_HID_PENMOUNT is not set
# CONFIG_HID_PETALYNX is not set
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_PLANTRONICS is not set
# CONFIG_HID_PRIMAX is not set
# CONFIG_HID_RETRODE is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_SAITEK is not set
# CONFIG_HID_SAMSUNG is not set
# CONFIG_HID_SPEEDLINK is not set
# CONFIG_HID_STEAM is not set
# CONFIG_HID_STEELSERIES is not set
# CONFIG_HID_SUNPLUS is not set
# CONFIG_HID_RMI is not set
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
# CONFIG_HID_TOPSEED is not set
# CONFIG_HID_THRUSTMASTER is not set
# CONFIG_HID_UDRAW_PS3 is not set
# CONFIG_HID_WACOM is not set
# CONFIG_HID_XINMO is not set
# CONFIG_HID_ZEROPLUS is not set
# CONFIG_HID_ZYDACRON is not set
# CONFIG_HID_SENSOR_HUB is not set
# CONFIG_HID_ALPS is not set
#
# USB HID support
#
CONFIG_USB_HID=m
CONFIG_HID_PID=y
CONFIG_USB_HIDDEV=y
#
# I2C HID support
#
CONFIG_I2C_HID=m
#
# Intel ISH HID support
#
# CONFIG_INTEL_ISH_HID is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=m
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=m
CONFIG_USB_PCI=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
#
# Miscellaneous USB options
#
CONFIG_USB_DEFAULT_PERSIST=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_OTG=y
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
# CONFIG_USB_OTG_FSM is not set
CONFIG_USB_MON=m
# CONFIG_USB_WUSB_CBAF is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_XHCI_HCD=m
# CONFIG_USB_XHCI_DBGCAP is not set
CONFIG_USB_XHCI_PCI=m
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_EHCI_PCI=m
# CONFIG_USB_EHCI_HCD_PLATFORM is not set
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_FOTG210_HCD is not set
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_PCI=m
# CONFIG_USB_OHCI_HCD_PLATFORM is not set
# CONFIG_USB_UHCI_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HCD_TEST_MODE is not set
#
# USB Device Class drivers
#
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
CONFIG_USB_WDM=m
CONFIG_USB_TMC=m
#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
#
#
# also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_REALTEK is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
CONFIG_USB_UAS=m
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USBIP_CORE is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_DWC3 is not set
# CONFIG_USB_DWC2 is not set
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_ISP1760 is not set
#
# USB port drivers
#
# CONFIG_USB_USS720 is not set
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_EHSET_TEST_FIXTURE is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_YUREX is not set
# CONFIG_USB_EZUSB_FX2 is not set
# CONFIG_USB_HUB_USB251XB is not set
# CONFIG_USB_HSIC_USB3503 is not set
# CONFIG_USB_HSIC_USB4604 is not set
# CONFIG_USB_LINK_LAYER_TEST is not set
# CONFIG_USB_CHAOSKEY is not set
#
# USB Physical Layer drivers
#
# CONFIG_NOP_USB_XCEIV is not set
# CONFIG_USB_ISP1301 is not set
# CONFIG_USB_GADGET is not set
# CONFIG_TYPEC is not set
# CONFIG_USB_ULPI_BUS is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
CONFIG_EDAC_ATOMIC_SCRUB=y
CONFIG_EDAC_SUPPORT=y
# CONFIG_EDAC is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_MC146818_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
# CONFIG_RTC_NVMEM is not set
#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set
#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_ABB5ZES3 is not set
# CONFIG_RTC_DRV_ABX80X is not set
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_ISL12022 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF8523 is not set
# CONFIG_RTC_DRV_PCF85063 is not set
# CONFIG_RTC_DRV_PCF85363 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_BQ32K is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8010 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set
# CONFIG_RTC_DRV_RV8803 is not set
#
# SPI RTC drivers
#
CONFIG_RTC_I2C_AND_SPI=y
#
# SPI and I2C RTC drivers
#
# CONFIG_RTC_DRV_DS3232 is not set
# CONFIG_RTC_DRV_PCF2127 is not set
# CONFIG_RTC_DRV_RV3029C2 is not set
#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1685_FAMILY is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_DS2404 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_MSM6242 is not set
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set
#
# on-CPU RTC drivers
#
# CONFIG_RTC_DRV_FTRTC010 is not set
#
# HID Sensor RTC drivers
#
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
# CONFIG_DMADEVICES is not set
#
# DMABUF options
#
CONFIG_SYNC_FILE=y
# CONFIG_SW_SYNC is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_PANEL is not set
# CONFIG_UIO is not set
# CONFIG_VFIO is not set
CONFIG_IRQ_BYPASS_MANAGER=y
# CONFIG_VIRT_DRIVERS is not set
# CONFIG_VIRTIO_MENU is not set
#
# Microsoft Hyper-V guest support
#
# CONFIG_STAGING is not set
CONFIG_X86_PLATFORM_DEVICES=y
# CONFIG_ACER_WMI is not set
# CONFIG_ACER_WIRELESS is not set
# CONFIG_ACERHDF is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_DELL_SMBIOS is not set
# CONFIG_DELL_WMI_AIO is not set
# CONFIG_DELL_SMO8800 is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_FUJITSU_TABLET is not set
# CONFIG_GPD_POCKET_FAN is not set
# CONFIG_HP_ACCEL is not set
# CONFIG_HP_WIRELESS is not set
# CONFIG_HP_WMI is not set
# CONFIG_PANASONIC_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_INTEL_MENLOW is not set
# CONFIG_ASUS_WIRELESS is not set
CONFIG_ACPI_WMI=m
# CONFIG_WMI_BMOF is not set
# CONFIG_INTEL_WMI_THUNDERBOLT is not set
# CONFIG_MSI_WMI is not set
# CONFIG_PEAQ_WMI is not set
# CONFIG_TOPSTAR_LAPTOP is not set
# CONFIG_TOSHIBA_BT_RFKILL is not set
# CONFIG_TOSHIBA_HAPS is not set
# CONFIG_TOSHIBA_WMI is not set
# CONFIG_ACPI_CMPC is not set
# CONFIG_INTEL_HID_EVENT is not set
# CONFIG_INTEL_VBTN is not set
# CONFIG_INTEL_IPS is not set
# CONFIG_INTEL_PMC_CORE is not set
# CONFIG_IBM_RTL is not set
# CONFIG_SAMSUNG_LAPTOP is not set
CONFIG_MXM_WMI=m
# CONFIG_SAMSUNG_Q10 is not set
# CONFIG_APPLE_GMUX is not set
# CONFIG_INTEL_RST is not set
# CONFIG_INTEL_SMARTCONNECT is not set
# CONFIG_PVPANIC is not set
# CONFIG_INTEL_PMC_IPC is not set
# CONFIG_SURFACE_PRO3_BUTTON is not set
# CONFIG_INTEL_PUNIT_IPC is not set
# CONFIG_MLX_PLATFORM is not set
# CONFIG_INTEL_TURBO_MAX_3 is not set
# CONFIG_I2C_MULTI_INSTANTIATE is not set
CONFIG_PMC_ATOM=y
# CONFIG_CHROME_PLATFORMS is not set
# CONFIG_MELLANOX_PLATFORM is not set
CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
#
# Common Clock Framework
#
# CONFIG_COMMON_CLK_MAX9485 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI544 is not set
# CONFIG_COMMON_CLK_CDCE706 is not set
# CONFIG_COMMON_CLK_CS2000_CP is not set
# CONFIG_HWSPINLOCK is not set
#
# Clock Source drivers
#
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
CONFIG_MAILBOX=y
CONFIG_PCC=y
# CONFIG_ALTERA_MBOX is not set
CONFIG_IOMMU_API=y
CONFIG_IOMMU_SUPPORT=y
#
# Generic IOMMU Pagetable Support
#
# CONFIG_IOMMU_DEBUGFS is not set
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_IOVA=y
# CONFIG_AMD_IOMMU is not set
CONFIG_DMAR_TABLE=y
CONFIG_INTEL_IOMMU=y
CONFIG_INTEL_IOMMU_SVM=y
CONFIG_INTEL_IOMMU_DEFAULT_ON=y
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_IRQ_REMAP=y
#
# Remoteproc drivers
#
# CONFIG_REMOTEPROC is not set
#
# Rpmsg drivers
#
# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
# CONFIG_RPMSG_VIRTIO is not set
# CONFIG_SOUNDWIRE is not set
#
# SOC (System On Chip) specific Drivers
#
#
# Amlogic SoC drivers
#
#
# Broadcom SoC drivers
#
#
# NXP/Freescale QorIQ SoC drivers
#
#
# i.MX SoC drivers
#
#
# Qualcomm SoC drivers
#
# CONFIG_SOC_TI is not set
#
# Xilinx SoC drivers
#
# CONFIG_XILINX_VCU is not set
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_NTB is not set
# CONFIG_VME_BUS is not set
# CONFIG_PWM is not set
#
# IRQ chip support
#
CONFIG_ARM_GIC_MAX_NR=1
# CONFIG_IPACK_BUS is not set
# CONFIG_RESET_CONTROLLER is not set
# CONFIG_FMC is not set
#
# PHY Subsystem
#
CONFIG_GENERIC_PHY=y
CONFIG_BCM_KONA_USB2_PHY=m
CONFIG_PHY_PXA_28NM_HSIC=y
CONFIG_PHY_PXA_28NM_USB2=y
# CONFIG_POWERCAP is not set
# CONFIG_MCB is not set
#
# Performance monitor support
#
CONFIG_RAS=y
# CONFIG_THUNDERBOLT is not set
#
# Android
#
# CONFIG_ANDROID is not set
# CONFIG_LIBNVDIMM is not set
# CONFIG_DAX is not set
# CONFIG_NVMEM is not set
#
# HW tracing support
#
# CONFIG_STM is not set
# CONFIG_INTEL_TH is not set
# CONFIG_FPGA is not set
# CONFIG_UNISYS_VISORBUS is not set
# CONFIG_SIOX is not set
# CONFIG_SLIMBUS is not set
#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_FS_IOMAP=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=m
CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_ENCRYPTION is not set
# CONFIG_EXT4_DEBUG is not set
CONFIG_JBD2=m
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=m
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_ONLINE_SCRUB is not set
# CONFIG_XFS_WARN is not set
# CONFIG_XFS_DEBUG is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
# CONFIG_BTRFS_DEBUG is not set
# CONFIG_BTRFS_ASSERT is not set
# CONFIG_BTRFS_FS_REF_VERIFY is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_F2FS_FS is not set
# CONFIG_FS_DAX is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
# CONFIG_EXPORTFS_BLOCK_OPS is not set
CONFIG_FILE_LOCKING=y
# CONFIG_MANDATORY_FILE_LOCKING is not set
# CONFIG_FS_ENCRYPTION is not set
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_FANOTIFY=y
# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTA_NETLINK_INTERFACE is not set
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y
# CONFIG_AUTOFS4_FS is not set
# CONFIG_AUTOFS_FS is not set
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
# CONFIG_OVERLAY_FS is not set
#
# Caches
#
CONFIG_FSCACHE=m
CONFIG_FSCACHE_STATS=y
CONFIG_FSCACHE_HISTOGRAM=y
# CONFIG_FSCACHE_DEBUG is not set
# CONFIG_FSCACHE_OBJECT_LIST is not set
CONFIG_CACHEFILES=m
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_HISTOGRAM is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=m
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_FAT_DEFAULT_UTF8 is not set
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_PROC_KCORE is not set
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
# CONFIG_PROC_CHILDREN is not set
CONFIG_KERNFS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_XATTR=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_MEMFD_CREATE=y
CONFIG_CONFIGFS_FS=y
CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ORANGEFS_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_ECRYPT_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_CACHE=y
# CONFIG_SQUASHFS_FILE_DIRECT is not set
# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
CONFIG_SQUASHFS_DECOMP_MULTI=y
# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_PSTORE=y
CONFIG_PSTORE_DEFLATE_COMPRESS=y
CONFIG_PSTORE_LZO_COMPRESS=y
CONFIG_PSTORE_LZ4_COMPRESS=y
# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
# CONFIG_PSTORE_842_COMPRESS is not set
CONFIG_PSTORE_ZSTD_COMPRESS=y
CONFIG_PSTORE_COMPRESS=y
# CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT is not set
CONFIG_PSTORE_LZO_COMPRESS_DEFAULT=y
# CONFIG_PSTORE_LZ4_COMPRESS_DEFAULT is not set
# CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT is not set
CONFIG_PSTORE_COMPRESS_DEFAULT="lzo"
# CONFIG_PSTORE_CONSOLE is not set
# CONFIG_PSTORE_PMSG is not set
CONFIG_PSTORE_RAM=y
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_EXOFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
# CONFIG_NFS_V2 is not set
# CONFIG_NFS_V3 is not set
CONFIG_NFS_V4=m
# CONFIG_NFS_SWAP is not set
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=m
CONFIG_PNFS_BLOCK=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_SECURITY_LABEL=y
CONFIG_NFS_FSCACHE=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
# CONFIG_NFSD is not set
CONFIG_GRACE_PERIOD=m
CONFIG_LOCKD=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_SUNRPC_BACKCHANNEL=y
# CONFIG_SUNRPC_DEBUG is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_857=m
CONFIG_NLS_CODEPAGE_860=m
CONFIG_NLS_CODEPAGE_861=m
CONFIG_NLS_CODEPAGE_862=m
CONFIG_NLS_CODEPAGE_863=m
CONFIG_NLS_CODEPAGE_864=m
CONFIG_NLS_CODEPAGE_865=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_869=m
CONFIG_NLS_CODEPAGE_936=m
CONFIG_NLS_CODEPAGE_950=m
CONFIG_NLS_CODEPAGE_932=m
CONFIG_NLS_CODEPAGE_949=m
CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_6=m
CONFIG_NLS_ISO8859_7=m
CONFIG_NLS_ISO8859_9=m
CONFIG_NLS_ISO8859_13=m
CONFIG_NLS_ISO8859_14=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_CELTIC=m
CONFIG_NLS_MAC_CENTEURO=m
CONFIG_NLS_MAC_CROATIAN=m
CONFIG_NLS_MAC_CYRILLIC=m
CONFIG_NLS_MAC_GAELIC=m
CONFIG_NLS_MAC_GREEK=m
CONFIG_NLS_MAC_ICELAND=m
CONFIG_NLS_MAC_INUIT=m
CONFIG_NLS_MAC_ROMANIAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
#
# Security options
#
CONFIG_KEYS=y
CONFIG_KEYS_COMPAT=y
# CONFIG_PERSISTENT_KEYRINGS is not set
# CONFIG_BIG_KEYS is not set
# CONFIG_ENCRYPTED_KEYS is not set
# CONFIG_KEY_DH_OPERATIONS is not set
CONFIG_SECURITY_DMESG_RESTRICT=y
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y
CONFIG_PAGE_TABLE_ISOLATION=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
CONFIG_SECURITY_PATH=y
# CONFIG_INTEL_TXT is not set
CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_FORTIFY_SOURCE=y
# CONFIG_STATIC_USERMODEHELPER is not set
# CONFIG_SECURITY_SELINUX is not set
# CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
CONFIG_SECURITY_APPARMOR=y
CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
CONFIG_SECURITY_APPARMOR_HASH=y
CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
# CONFIG_SECURITY_APPARMOR_DEBUG is not set
# CONFIG_SECURITY_LOADPIN is not set
# CONFIG_SECURITY_YAMA is not set
# CONFIG_INTEGRITY is not set
CONFIG_DEFAULT_SECURITY_APPARMOR=y
# CONFIG_DEFAULT_SECURITY_DAC is not set
CONFIG_DEFAULT_SECURITY="apparmor"
CONFIG_XOR_BLOCKS=m
CONFIG_CRYPTO=y
#
# Crypto core or helper
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RNG_DEFAULT=m
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_AKCIPHER=y
CONFIG_CRYPTO_KPP2=y
CONFIG_CRYPTO_KPP=m
CONFIG_CRYPTO_ACOMP2=y
CONFIG_CRYPTO_RSA=y
CONFIG_CRYPTO_DH=m
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_NULL2=y
CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_WORKQUEUE=y
CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_MCRYPTD=m
CONFIG_CRYPTO_AUTHENC=m
# CONFIG_CRYPTO_TEST is not set
CONFIG_CRYPTO_SIMD=m
CONFIG_CRYPTO_GLUE_HELPER_X86=m
#
# Authenticated Encryption with Associated Data
#
CONFIG_CRYPTO_CCM=m
CONFIG_CRYPTO_GCM=m
CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2=m
CONFIG_CRYPTO_AEGIS256_AESNI_SSE2=m
CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_MORUS640_GLUE=m
CONFIG_CRYPTO_MORUS640_SSE2=m
CONFIG_CRYPTO_MORUS1280=m
CONFIG_CRYPTO_MORUS1280_GLUE=m
CONFIG_CRYPTO_MORUS1280_SSE2=m
CONFIG_CRYPTO_MORUS1280_AVX2=m
CONFIG_CRYPTO_SEQIV=m
CONFIG_CRYPTO_ECHAINIV=m
#
# Block modes
#
CONFIG_CRYPTO_CBC=m
# CONFIG_CRYPTO_CFB is not set
CONFIG_CRYPTO_CTR=m
# CONFIG_CRYPTO_CTS is not set
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_LRW=m
# CONFIG_CRYPTO_PCBC is not set
CONFIG_CRYPTO_XTS=m
# CONFIG_CRYPTO_KEYWRAP is not set
#
# Hash modes
#
CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_HMAC=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_VMAC=m
#
# Digest
#
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32C_INTEL=m
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
CONFIG_CRYPTO_GHASH=m
CONFIG_CRYPTO_POLY1305=m
CONFIG_CRYPTO_POLY1305_X86_64=m
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_RMD128=m
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA1_SSSE3=m
CONFIG_CRYPTO_SHA256_SSSE3=m
CONFIG_CRYPTO_SHA512_SSSE3=m
# CONFIG_CRYPTO_SHA1_MB is not set
# CONFIG_CRYPTO_SHA256_MB is not set
# CONFIG_CRYPTO_SHA512_MB is not set
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
#
# Ciphers
#
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_AES_TI=m
CONFIG_CRYPTO_AES_X86_64=m
CONFIG_CRYPTO_AES_NI_INTEL=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARC4=m
# CONFIG_CRYPTO_BLOWFISH is not set
CONFIG_CRYPTO_BLOWFISH_COMMON=m
CONFIG_CRYPTO_BLOWFISH_X86_64=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAMELLIA_X86_64=m
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
CONFIG_CRYPTO_CAST_COMMON=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST5_AVX_X86_64=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_CAST6_AVX_X86_64=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DES3_EDE_X86_64=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_CHACHA20=m
CONFIG_CRYPTO_CHACHA20_X86_64=m
# CONFIG_CRYPTO_SEED is not set
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
# CONFIG_CRYPTO_SM4 is not set
# CONFIG_CRYPTO_SPECK is not set
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_X86_64=m
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
#
# Compression
#
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_842 is not set
CONFIG_CRYPTO_LZ4=y
CONFIG_CRYPTO_LZ4HC=m
CONFIG_CRYPTO_ZSTD=y
#
# Random Number Generation
#
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_CRYPTO_DRBG_MENU=m
CONFIG_CRYPTO_DRBG_HMAC=y
# CONFIG_CRYPTO_DRBG_HASH is not set
# CONFIG_CRYPTO_DRBG_CTR is not set
CONFIG_CRYPTO_DRBG=m
CONFIG_CRYPTO_JITTERENTROPY=m
CONFIG_CRYPTO_USER_API=m
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
CONFIG_CRYPTO_HASH_INFO=y
# CONFIG_CRYPTO_HW is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
CONFIG_X509_CERTIFICATE_PARSER=y
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
#
# Certificates for signature checking
#
CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_SYSTEM_TRUSTED_KEYS=""
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
#
# Library routines
#
CONFIG_RAID6_PQ=m
CONFIG_BITREVERSE=y
CONFIG_RATIONAL=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_NET_UTILS=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=y
CONFIG_CRC_T10DIF=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
CONFIG_CRC64=m
# CONFIG_CRC4 is not set
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_CRC8=m
CONFIG_XXHASH=y
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_LZ4_COMPRESS=y
CONFIG_LZ4HC_COMPRESS=m
CONFIG_LZ4_DECOMPRESS=y
CONFIG_ZSTD_COMPRESS=y
CONFIG_ZSTD_DECOMPRESS=y
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
CONFIG_XZ_DEC_IA64=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_DECOMPRESS_LZ4=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=y
CONFIG_REED_SOLOMON_ENC8=y
CONFIG_REED_SOLOMON_DEC8=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_INTERVAL_TREE=y
CONFIG_RADIX_TREE_MULTIORDER=y
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_DMA_DIRECT_OPS=y
CONFIG_SWIOTLB=y
CONFIG_SGL_ALLOC=y
CONFIG_CHECK_SIGNATURE=y
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
# CONFIG_GLOB_SELFTEST is not set
CONFIG_NLATTR=y
CONFIG_CLZ_TAB=y
CONFIG_CORDIC=m
CONFIG_DDR=y
# CONFIG_IRQ_POLL is not set
CONFIG_MPILIB=y
CONFIG_OID_REGISTRY=y
CONFIG_FONT_SUPPORT=y
CONFIG_FONTS=y
# CONFIG_FONT_8x8 is not set
CONFIG_FONT_8x16=y
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
# CONFIG_FONT_MINI_4x6 is not set
# CONFIG_FONT_6x10 is not set
# CONFIG_FONT_10x18 is not set
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
CONFIG_FONT_AUTOSELECT=y
CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_SG_CHAIN=y
CONFIG_ARCH_HAS_PMEM_API=y
CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
CONFIG_SBITMAP=y
# CONFIG_STRING_SELFTEST is not set
#
# Kernel hacking
#
#
# printk and dmesg options
#
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_CONSOLE_LOGLEVEL_QUIET=4
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DYNAMIC_DEBUG is not set
#
# Compile-time checks and compiler options
#
# CONFIG_DEBUG_INFO is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=2048
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_READABLE_ASM is not set
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_STACK_VALIDATION=y
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
# CONFIG_MAGIC_SYSRQ_SERIAL is not set
CONFIG_DEBUG_KERNEL=y
#
# Memory Debugging
#
# CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_PAGE_POISONING=y
CONFIG_PAGE_POISONING_NO_SANITY=y
# CONFIG_PAGE_POISONING_ZERO is not set
# CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_VM is not set
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
# CONFIG_DEBUG_VIRTUAL is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
CONFIG_HAVE_ARCH_KASAN=y
# CONFIG_KASAN is not set
CONFIG_ARCH_HAS_KCOV=y
# CONFIG_KCOV is not set
# CONFIG_DEBUG_SHIRQ is not set
#
# Debug Lockups and Hangs
#
CONFIG_LOCKUP_DETECTOR=y
CONFIG_SOFTLOCKUP_DETECTOR=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
CONFIG_HARDLOCKUP_DETECTOR_PERF=y
CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
CONFIG_HARDLOCKUP_DETECTOR=y
# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
# CONFIG_WQ_WATCHDOG is not set
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_PANIC_TIMEOUT=0
CONFIG_SCHED_DEBUG=y
CONFIG_SCHED_INFO=y
CONFIG_SCHEDSTATS=y
# CONFIG_SCHED_STACK_END_CHECK is not set
# CONFIG_DEBUG_TIMEKEEPING is not set
#
# Lock Debugging (spinlocks, mutexes, etc...)
#
CONFIG_LOCK_DEBUGGING_SUPPORT=y
# CONFIG_PROVE_LOCKING is not set
CONFIG_LOCK_STAT=y
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
# CONFIG_DEBUG_RWSEMS is not set
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_LOCKDEP=y
# CONFIG_DEBUG_LOCKDEP is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not set
CONFIG_STACKTRACE=y
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_PI_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not set
#
# RCU Debugging
#
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_TRACE=y
# CONFIG_RCU_EQS_DEBUG is not set
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACE_CLOCK=y
CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_RUNTIME_TESTING_MENU is not set
# CONFIG_MEMTEST is not set
# CONFIG_BUG_ON_DATA_CORRUPTION is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
CONFIG_STRICT_DEVMEM=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_X86_VERBOSE_BOOTUP is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_EARLY_PRINTK_USB_XDBC is not set
# CONFIG_X86_PTDUMP is not set
# CONFIG_DEBUG_WX is not set
CONFIG_DOUBLEFAULT=y
# CONFIG_DEBUG_TLBFLUSH is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_DEBUG_BOOT_PARAMS is not set
# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set
# CONFIG_DEBUG_ENTRY is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
# CONFIG_X86_DEBUG_FPU is not set
# CONFIG_PUNIT_ATOM_DEBUG is not set
CONFIG_UNWINDER_ORC=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
[-- Attachment #3: lspci.txt --]
[-- Type: text/plain, Size: 27384 bytes --]
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
Subsystem: ASUSTeK Computer Inc. 4th Gen Core Processor DRAM Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information: Len=0c <?>
Kernel driver in use: hsw_uncore
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 24
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 0000e000-0000efff
Memory behind bridge: f7e00000-f7efffff
Prefetchable memory behind bridge: 00000000e0000000-00000000f01fffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA- VGA+ MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [88] Subsystem: ASUSTeK Computer Inc. Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller
Capabilities: [80] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee04004 Data: 4021
Capabilities: [a0] Express (v2) Root Port (Slot+), MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0
ExtTag- RBE+
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 256 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
LnkCap: Port #2, Speed 8GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <256ns, L1 <8us
ClockPM- Surprise- LLActRep- BwNot+ ASPMOptComp+
LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 8GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt+ ABWMgmt+
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
Slot #1, PowerLimit 75.000W; Interlock- NoCompl+
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
Changed: MRL- PresDet- LinkState-
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+, OBFF Via WAKE# ARIFwd-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Via WAKE# ARIFwd-
LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+, EqualizationPhase1+
EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
Status: NegoPending- InProgress-
Capabilities: [140 v1] Root Complex Link
Desc: PortNumber=02 ComponentID=01 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=01 AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed19000
Capabilities: [d94 v1] #19
Kernel driver in use: pcieport
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05) (prog-if 30 [XHCI])
Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family USB xHCI
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 30
Region 0: Memory at f7f00000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [70] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+
Address: 00000000fee08004 Data: 4025
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family MEI Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 11
Region 0: Memory at f7f1a000 (64-bit, non-prefetchable) [size=16]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [8c] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05) (prog-if 20 [EHCI])
Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family USB EHCI
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 20
Region 0: Memory at f7f18000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D3 NoSoftRst- PME-Enable+ DSel=0 DScale=0 PME-
Capabilities: [58] Debug port: BAR=1 offset=00a0
Capabilities: [98] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: ehci-pci
Kernel modules: ehci_pci
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset High Definition Audio Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 31
Region 0: Memory at f7f10000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D3 NoSoftRst- PME-Enable+ DSel=0 DScale=0 PME-
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee02004 Data: 4024
Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag- RBE-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=2 ArbSelect=Fixed TC/VC=04
Status: NegoPending- InProgress-
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 25
Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
I/O behind bridge: 00002000-00002fff
Memory behind bridge: f0400000-f05fffff
Prefetchable memory behind bridge: 00000000f0600000-00000000f07fffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag- RBE+
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
LnkCap: Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp-
LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train+ SlotClk+ DLActive- BWMgmt- ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
Slot #0, PowerLimit 0.000W; Interlock- NoCompl+
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
Changed: MRL- PresDet- LinkState-
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Via WAKE# ARIFwd-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee08004 Data: 4021
Capabilities: [90] Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family PCI Express Root Port
Capabilities: [a0] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: pcieport
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin C routed to IRQ 26
Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
I/O behind bridge: 0000d000-0000dfff
Memory behind bridge: f7d00000-f7dfffff
Prefetchable memory behind bridge: 00000000f0300000-00000000f03fffff
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag- RBE+
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
LnkCap: Port #3, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <512ns, L1 <16us
ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp-
LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
Slot #2, PowerLimit 10.000W; Interlock- NoCompl+
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
Changed: MRL- PresDet- LinkState-
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
DevCap2: Completion Timeout: Range ABC, TimeoutDis+, LTR+, OBFF Not Supported ARIFwd-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee01004 Data: 4021
Capabilities: [90] Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family PCI Express Root Port
Capabilities: [a0] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: pcieport
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05) (prog-if 20 [EHCI])
Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family USB EHCI
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 23
Region 0: Memory at f7f17000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D3 NoSoftRst- PME-Enable+ DSel=0 DScale=0 PME-
Capabilities: [58] Debug port: BAR=1 offset=00a0
Capabilities: [98] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: ehci-pci
Kernel modules: ehci_pci
00:1f.0 ISA bridge: Intel Corporation B85 Express LPC Controller (rev 05)
Subsystem: ASUSTeK Computer Inc. B85 Express LPC Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information: Len=0c <?>
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05) (prog-if 01 [AHCI 1.0])
Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin B routed to IRQ 27
Region 0: I/O ports at f070 [size=8]
Region 1: I/O ports at f060 [size=4]
Region 2: I/O ports at f050 [size=8]
Region 3: I/O ports at f040 [size=4]
Region 4: I/O ports at f020 [size=32]
Region 5: Memory at f7f16000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee04004 Data: 4023
Capabilities: [70] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004
Kernel driver in use: ahci
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
Subsystem: ASUSTeK Computer Inc. 8 Series/C220 Series Chipset Family SMBus Controller
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin C routed to IRQ 14
Region 0: Memory at f7f15000 (64-bit, non-prefetchable) [size=256]
Region 4: I/O ports at f000 [size=32]
Kernel modules: i2c_i801
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 67df (rev cf) (prog-if 00 [VGA controller])
Subsystem: PC Partner Limited / Sapphire Technology Device e347
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 29
Region 0: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 2: Memory at f0000000 (64-bit, prefetchable) [size=2M]
Region 4: I/O ports at e000 [size=256]
Region 5: Memory at f7e00000 (32-bit, non-prefetchable) [size=256K]
Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [48] Vendor Specific Information: Len=08 <?>
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop+
MaxPayload 256 bytes, MaxReadReq 512 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
LnkCap: Port #0, Speed 8GT/s, Width x16, ASPM L1, Exit Latency L0s <64ns, L1 <1us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 8GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+, OBFF Not Supported
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled
LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+, EqualizationPhase1+
EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee04004 Data: 4025
Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Capabilities: [150 v2] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
Capabilities: [200 v1] #15
Capabilities: [270 v1] #19
Capabilities: [2b0 v1] Address Translation Service (ATS)
ATSCap: Invalidate Queue Depth: 00
ATSCtl: Enable-, Smallest Translation Unit: 00
Capabilities: [2c0 v1] #13
Capabilities: [2d0 v1] #1b
Capabilities: [320 v1] Latency Tolerance Reporting
Max snoop latency: 71680ns
Max no snoop latency: 71680ns
Capabilities: [328 v1] Alternative Routing-ID Interpretation (ARI)
ARICap: MFVC- ACS-, Next Function: 1
ARICtl: MFVC- ACS-, Function Group: 0
Capabilities: [370 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=0us PortTPowerOnTime=170us
Kernel driver in use: amdgpu
Kernel modules: amdgpu
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device aaf0
Subsystem: PC Partner Limited / Sapphire Technology Device aaf0
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin B routed to IRQ 32
Region 0: Memory at f7e60000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [48] Vendor Specific Information: Len=08 <?>
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop+
MaxPayload 256 bytes, MaxReadReq 512 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
LnkCap: Port #0, Speed 8GT/s, Width x16, ASPM L1, Exit Latency L0s <64ns, L1 <1us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 8GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+, OBFF Not Supported
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee04004 Data: 4024
Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Capabilities: [150 v2] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
Capabilities: [328 v1] Alternative Routing-ID Interpretation (ARI)
ARICap: MFVC- ACS-, Next Function: 0
ARICtl: MFVC- ACS-, Function Group: 0
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
Subsystem: ASUSTeK Computer Inc. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 28
Region 0: I/O ports at d000 [size=256]
Region 2: Memory at f7d00000 (64-bit, non-prefetchable) [size=4K]
Region 4: Memory at f0300000 (64-bit, prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee08004 Data: 4022
Capabilities: [70] Express (v2) Endpoint, MSI 01
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 4096 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR+, OBFF Via message/WAKE#
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
Vector table: BAR=4 offset=00000000
PBA: BAR=4 offset=00000800
Capabilities: [d0] Vital Product Data
pcilib: sysfs_read_vpd: read failed: Input/output error
Not readable
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr+ BadTLP+ BadDLLP+ Rollover- Timeout+ NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
Capabilities: [140 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [160 v1] Device Serial Number 01-00-00-00-68-4c-e0-00
Capabilities: [170 v1] Latency Tolerance Reporting
Max snoop latency: 71680ns
Max no snoop latency: 71680ns
Kernel driver in use: r8169
Kernel modules: r8169
[-- Attachment #4: dmesg.txt --]
[-- Type: text/plain, Size: 62294 bytes --]
[ 0.000000] microcode: microcode updated early to revision 0x25, date = 2018-04-02
[ 0.000000] Linux version 4.19.0-rc3 (john@sohn) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)) #1 SMP Wed Sep 12 17:26:29 CEST 2018
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.19.0-rc3 root=/dev/mapper/sohn_vg-sohnRoot ro rootflags=subvol=@ quiet splash vt.handoff=7
[ 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-0x00000000c5768fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000c5769000-0x00000000c576ffff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000c5770000-0x00000000c5bc7fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000c5bc8000-0x00000000c5ff9fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000c5ffa000-0x00000000dd689fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000dd68a000-0x00000000dd713fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000dd714000-0x00000000dd72afff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x00000000dd72b000-0x00000000ddc64fff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000ddc65000-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-0x000000041effffff] usable
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] SMBIOS 2.7 present.
[ 0.000000] DMI: ASUS All Series/B85M-G, BIOS 2501 07/22/2015
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.000000] tsc: Detected 3292.525 MHz processor
[ 0.001318] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.001323] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.001329] last_pfn = 0x41f000 max_arch_pfn = 0x400000000
[ 0.001332] MTRR default type: uncachable
[ 0.001333] MTRR fixed ranges enabled:
[ 0.001335] 00000-9FFFF write-back
[ 0.001336] A0000-BFFFF uncachable
[ 0.001337] C0000-CFFFF write-protect
[ 0.001338] D0000-E7FFF uncachable
[ 0.001339] E8000-FFFFF write-protect
[ 0.001340] MTRR variable ranges enabled:
[ 0.001341] 0 base 0000000000 mask 7C00000000 write-back
[ 0.001342] 1 base 0400000000 mask 7FF0000000 write-back
[ 0.001343] 2 base 0410000000 mask 7FF8000000 write-back
[ 0.001344] 3 base 0418000000 mask 7FFC000000 write-back
[ 0.001345] 4 base 041C000000 mask 7FFE000000 write-back
[ 0.001346] 5 base 041E000000 mask 7FFF000000 write-back
[ 0.001347] 6 base 00E0000000 mask 7FE0000000 uncachable
[ 0.001348] 7 disabled
[ 0.001349] 8 disabled
[ 0.001350] 9 disabled
[ 0.002040] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT
[ 0.002526] e820: update [mem 0xe0000000-0xffffffff] usable ==> reserved
[ 0.002533] last_pfn = 0xdf000 max_arch_pfn = 0x400000000
[ 0.007650] found SMP MP-table at [mem 0x000fd760-0x000fd76f] mapped at [(____ptrval____)]
[ 0.007661] Base memory trampoline at [(____ptrval____)] 97000 size 24576
[ 0.007664] Using GB pages for direct mapping
[ 0.007666] BRK [0x164dc8000, 0x164dc8fff] PGTABLE
[ 0.007668] BRK [0x164dc9000, 0x164dc9fff] PGTABLE
[ 0.007669] BRK [0x164dca000, 0x164dcafff] PGTABLE
[ 0.007702] BRK [0x164dcb000, 0x164dcbfff] PGTABLE
[ 0.007704] BRK [0x164dcc000, 0x164dccfff] PGTABLE
[ 0.007947] BRK [0x164dcd000, 0x164dcdfff] PGTABLE
[ 0.007989] BRK [0x164dce000, 0x164dcefff] PGTABLE
[ 0.008102] BRK [0x164dcf000, 0x164dcffff] PGTABLE
[ 0.008144] BRK [0x164dd0000, 0x164dd0fff] PGTABLE
[ 0.008235] BRK [0x164dd1000, 0x164dd1fff] PGTABLE
[ 0.008287] BRK [0x164dd2000, 0x164dd2fff] PGTABLE
[ 0.008347] RAMDISK: [mem 0x36054000-0x37021fff]
[ 0.008351] ACPI: Early table checksum verification disabled
[ 0.010021] ACPI: RSDP 0x00000000000F0490 000024 (v02 ALASKA)
[ 0.010026] ACPI: XSDT 0x00000000DD718080 000074 (v01 ALASKA A M I 01072009 AMI 00010013)
[ 0.010031] ACPI: FACP 0x00000000DD725668 00010C (v05 ALASKA A M I 01072009 AMI 00010013)
[ 0.010036] ACPI: DSDT 0x00000000DD718188 00D4D9 (v02 ALASKA A M I 00000031 INTL 20091112)
[ 0.010040] ACPI: FACS 0x00000000DDC63080 000040
[ 0.010043] ACPI: APIC 0x00000000DD725778 000072 (v03 ALASKA A M I 01072009 AMI 00010013)
[ 0.010046] ACPI: FPDT 0x00000000DD7257F0 000044 (v01 ALASKA A M I 01072009 AMI 00010013)
[ 0.010050] ACPI: LPIT 0x00000000DD725838 00005C (v01 ALASKA A M I 00000000 AMI. 00000005)
[ 0.010053] ACPI: SSDT 0x00000000DD725898 000539 (v01 PmRef Cpu0Ist 00003000 INTL 20091112)
[ 0.010057] ACPI: SSDT 0x00000000DD725DD8 000AD8 (v01 PmRef CpuPm 00003000 INTL 20091112)
[ 0.010060] ACPI: MCFG 0x00000000DD7268B0 00003C (v01 ALASKA A M I 01072009 MSFT 00000097)
[ 0.010064] ACPI: HPET 0x00000000DD7268F0 000038 (v01 ALASKA A M I 01072009 AMI. 00000005)
[ 0.010067] ACPI: SSDT 0x00000000DD726928 00036D (v01 SataRe SataTabl 00001000 INTL 20091112)
[ 0.010070] ACPI: SSDT 0x00000000DD726C98 0034E1 (v01 SaSsdt SaSsdt 00003000 INTL 20091112)
[ 0.010077] ACPI: Local APIC address 0xfee00000
[ 0.010104] Zone ranges:
[ 0.010105] DMA [mem 0x0000000000001000-0x0000000000ffffff]
[ 0.010107] DMA32 [mem 0x0000000001000000-0x00000000ffffffff]
[ 0.010109] Normal [mem 0x0000000100000000-0x000000041effffff]
[ 0.010111] Movable zone start for each node
[ 0.010112] Early memory node ranges
[ 0.010113] node 0: [mem 0x0000000000001000-0x000000000009cfff]
[ 0.010114] node 0: [mem 0x0000000000100000-0x00000000c5768fff]
[ 0.010115] node 0: [mem 0x00000000c5770000-0x00000000c5bc7fff]
[ 0.010116] node 0: [mem 0x00000000c5ffa000-0x00000000dd689fff]
[ 0.010117] node 0: [mem 0x00000000defff000-0x00000000deffffff]
[ 0.010118] node 0: [mem 0x0000000100000000-0x000000041effffff]
[ 0.010239] Reserved but unavailable: 11794 pages
[ 0.010240] Initmem setup node 0 [mem 0x0000000000001000-0x000000041effffff]
[ 0.010242] On node 0 totalpages: 4178414
[ 0.010244] DMA zone: 64 pages used for memmap
[ 0.010244] DMA zone: 21 pages reserved
[ 0.010246] DMA zone: 3996 pages, LIFO batch:0
[ 0.010295] DMA32 zone: 14090 pages used for memmap
[ 0.010296] DMA32 zone: 901714 pages, LIFO batch:63
[ 0.021149] Normal zone: 51136 pages used for memmap
[ 0.021151] Normal zone: 3272704 pages, LIFO batch:63
[ 0.059081] ACPI: PM-Timer IO Port: 0x1808
[ 0.059084] ACPI: Local APIC address 0xfee00000
[ 0.059088] ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
[ 0.059100] IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
[ 0.059101] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.059103] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.059104] ACPI: IRQ0 used by override.
[ 0.059106] ACPI: IRQ9 used by override.
[ 0.059108] Using ACPI (MADT) for SMP configuration information
[ 0.059109] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[ 0.059113] smpboot: Allowing 4 CPUs, 0 hotplug CPUs
[ 0.059130] [mem 0xdf000000-0xf7ffffff] available for PCI devices
[ 0.059132] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
[ 0.102769] random: get_random_bytes called from start_kernel+0x8b/0x4a5 with crng_init=0
[ 0.102774] setup_percpu: NR_CPUS:128 nr_cpumask_bits:128 nr_cpu_ids:4 nr_node_ids:1
[ 0.103767] percpu: Embedded 491 pages/cpu @(____ptrval____) s1972888 r8192 d30056 u2097152
[ 0.103772] pcpu-alloc: s1972888 r8192 d30056 u2097152 alloc=1*2097152
[ 0.103774] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[ 0.103798] Built 1 zonelists, mobility grouping on. Total pages: 4113103
[ 0.103803] Kernel command line: BOOT_IMAGE=/vmlinuz-4.19.0-rc3 root=/dev/mapper/sohn_vg-sohnRoot ro rootflags=subvol=@ quiet splash vt.handoff=7
[ 0.104519] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes)
[ 0.104856] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[ 0.142684] Memory: 16306236K/16713656K available (8220K kernel code, 679K rwdata, 2368K rodata, 2700K init, 10396K bss, 407420K reserved, 0K cma-reserved)
[ 0.142765] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.142774] Kernel/User page tables isolation: enabled
[ 0.152313] rcu: Hierarchical RCU implementation.
[ 0.152314] rcu: RCU event tracing is enabled.
[ 0.152315] rcu: RCU restricting CPUs from NR_CPUS=128 to nr_cpu_ids=4.
[ 0.152316] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[ 0.152332] NR_IRQS: 8448, nr_irqs: 456, preallocated irqs: 16
[ 0.152547] Console: colour dummy device 80x25
[ 0.152789] console [tty0] enabled
[ 0.152790] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[ 0.152791] ... MAX_LOCKDEP_SUBCLASSES: 8
[ 0.152791] ... MAX_LOCK_DEPTH: 48
[ 0.152792] ... MAX_LOCKDEP_KEYS: 8191
[ 0.152793] ... CLASSHASH_SIZE: 4096
[ 0.152794] ... MAX_LOCKDEP_ENTRIES: 32768
[ 0.152795] ... MAX_LOCKDEP_CHAINS: 65536
[ 0.152796] ... CHAINHASH_SIZE: 32768
[ 0.152797] memory used by lock dependency info: 7871 kB
[ 0.152798] per task-struct memory footprint: 2688 bytes
[ 0.152802] ACPI: Core revision 20180810
[ 0.152983] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484882848 ns
[ 0.152995] hpet clockevent registered
[ 0.153001] APIC: Switch to symmetric I/O mode setup
[ 0.153367] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.158000] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x2f75b6ddc5b, max_idle_ns: 440795231898 ns
[ 0.158010] Calibrating delay loop (skipped), value calculated using timer frequency.. 6585.05 BogoMIPS (lpj=3292525)
[ 0.158013] pid_max: default: 32768 minimum: 301
[ 0.158045] Security Framework initialized
[ 0.158062] AppArmor: AppArmor initialized
[ 0.158097] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes)
[ 0.158123] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes)
[ 0.158373] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[ 0.158374] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[ 0.158377] process: using mwait in idle threads
[ 0.158380] Last level iTLB entries: 4KB 1024, 2MB 1024, 4MB 1024
[ 0.158381] Last level dTLB entries: 4KB 1024, 2MB 1024, 4MB 1024, 1GB 4
[ 0.158383] Spectre V2 : Mitigation: Full generic retpoline
[ 0.158384] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch
[ 0.158385] Spectre V2 : Spectre v2 mitigation: Enabling Indirect Branch Prediction Barrier
[ 0.158386] Spectre V2 : Enabling Restricted Speculation for firmware calls
[ 0.158388] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl and seccomp
[ 0.162311] Freeing SMP alternatives memory: 24K
[ 0.163094] TSC deadline timer enabled
[ 0.163097] smpboot: CPU0: Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz (family: 0x6, model: 0x3c, stepping: 0x3)
[ 0.163253] Performance Events: PEBS fmt2+, Haswell events, 16-deep LBR, full-width counters, Intel PMU driver.
[ 0.163297] ... version: 3
[ 0.163298] ... bit width: 48
[ 0.163299] ... generic registers: 8
[ 0.163300] ... value mask: 0000ffffffffffff
[ 0.163301] ... max period: 00007fffffffffff
[ 0.163302] ... fixed-purpose events: 3
[ 0.163304] ... event mask: 00000007000000ff
[ 0.163358] rcu: Hierarchical SRCU implementation.
[ 0.163718] NMI watchdog: Enabled. Permanently consumes one hw-PMU counter.
[ 0.163789] smp: Bringing up secondary CPUs ...
[ 0.163914] x86: Booting SMP configuration:
[ 0.163916] .... node #0, CPUs: #1 #2 #3
[ 0.168463] smp: Brought up 1 node, 4 CPUs
[ 0.168463] smpboot: Max logical packages: 1
[ 0.168463] smpboot: Total of 4 processors activated (26340.20 BogoMIPS)
[ 0.169374] devtmpfs: initialized
[ 0.169750] PM: Registering ACPI NVS region [mem 0xc5769000-0xc576ffff] (28672 bytes)
[ 0.169750] PM: Registering ACPI NVS region [mem 0xdd72b000-0xddc64fff] (5480448 bytes)
[ 0.170049] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[ 0.170053] futex hash table entries: 1024 (order: 5, 131072 bytes)
[ 0.170353] NET: Registered protocol family 16
[ 0.170503] audit: initializing netlink subsys (disabled)
[ 0.170529] audit: type=2000 audit(1536923987.017:1): state=initialized audit_enabled=0 res=1
[ 0.170529] cpuidle: using governor ladder
[ 0.170529] cpuidle: using governor menu
[ 0.170529] ACPI: bus type PCI registered
[ 0.170529] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xf8000000-0xfbffffff] (base 0xf8000000)
[ 0.170529] PCI: MMCONFIG at [mem 0xf8000000-0xfbffffff] reserved in E820
[ 0.170529] pmd_set_huge: Cannot satisfy [mem 0xf8000000-0xf8200000] with a huge-page mapping due to MTRR override.
[ 0.170529] PCI: Using configuration type 1 for base access
[ 0.170543] core: PMU erratum BJ122, BV98, HSD29 workaround disabled, HT off
[ 0.173074] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.173135] fbcon: Taking over console
[ 0.173135] ACPI: Added _OSI(Module Device)
[ 0.173135] ACPI: Added _OSI(Processor Device)
[ 0.173135] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.173135] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.173135] ACPI: Added _OSI(Linux-Dell-Video)
[ 0.173135] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[ 0.184751] ACPI: 5 ACPI AML tables successfully acquired and loaded
[ 0.193667] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 0.194644] ACPI: Dynamic OEM Table Load:
[ 0.194653] ACPI: SSDT 0xFFFFA30A0C0B1000 0003D3 (v01 PmRef Cpu0Cst 00003001 INTL 20091112)
[ 0.195172] ACPI: Dynamic OEM Table Load:
[ 0.195180] ACPI: SSDT 0xFFFFA30A0C06B000 0005AA (v01 PmRef ApIst 00003000 INTL 20091112)
[ 0.195758] ACPI: Dynamic OEM Table Load:
[ 0.195765] ACPI: SSDT 0xFFFFA30A0C0AE600 000119 (v01 PmRef ApCst 00003000 INTL 20091112)
[ 0.197639] ACPI: Interpreter enabled
[ 0.197668] ACPI: (supports S0 S3 S5)
[ 0.197672] ACPI: Using IOAPIC for interrupt routing
[ 0.197705] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 0.198301] ACPI: Enabled 9 GPEs in block 00 to 3F
[ 0.213436] ACPI: Power Resource [FN00] (off)
[ 0.213583] ACPI: Power Resource [FN01] (off)
[ 0.213716] ACPI: Power Resource [FN02] (off)
[ 0.213849] ACPI: Power Resource [FN03] (off)
[ 0.213981] ACPI: Power Resource [FN04] (off)
[ 0.215840] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3e])
[ 0.215844] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[ 0.216415] acpi PNP0A08:00: _OSC: OS now controls [PME AER PCIeCapability LTR]
[ 0.216862] PCI host bridge to bus 0000:00
[ 0.216865] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window]
[ 0.216867] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window]
[ 0.216868] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
[ 0.216870] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff window]
[ 0.216872] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff window]
[ 0.216874] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff window]
[ 0.216875] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff window]
[ 0.216877] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff window]
[ 0.216879] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff window]
[ 0.216880] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xfeafffff window]
[ 0.216882] pci_bus 0000:00: root bus resource [bus 00-3e]
[ 0.216895] pci 0000:00:00.0: [8086:0c00] type 00 class 0x060000
[ 0.217047] pci 0000:00:01.0: [8086:0c01] type 01 class 0x060400
[ 0.217091] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[ 0.217319] pci 0000:00:14.0: [8086:8c31] type 00 class 0x0c0330
[ 0.217339] pci 0000:00:14.0: reg 0x10: [mem 0xf7f00000-0xf7f0ffff 64bit]
[ 0.217399] pci 0000:00:14.0: PME# supported from D3hot D3cold
[ 0.217525] pci 0000:00:16.0: [8086:8c3a] type 00 class 0x078000
[ 0.217546] pci 0000:00:16.0: reg 0x10: [mem 0xf7f1a000-0xf7f1a00f 64bit]
[ 0.217608] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[ 0.217735] pci 0000:00:1a.0: [8086:8c2d] type 00 class 0x0c0320
[ 0.217756] pci 0000:00:1a.0: reg 0x10: [mem 0xf7f18000-0xf7f183ff]
[ 0.217838] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[ 0.217967] pci 0000:00:1b.0: [8086:8c20] type 00 class 0x040300
[ 0.217987] pci 0000:00:1b.0: reg 0x10: [mem 0xf7f10000-0xf7f13fff 64bit]
[ 0.218056] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[ 0.218182] pci 0000:00:1c.0: [8086:8c10] type 01 class 0x060400
[ 0.218255] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 0.218445] pci 0000:00:1c.2: [8086:8c14] type 01 class 0x060400
[ 0.218518] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[ 0.218711] pci 0000:00:1d.0: [8086:8c26] type 00 class 0x0c0320
[ 0.218733] pci 0000:00:1d.0: reg 0x10: [mem 0xf7f17000-0xf7f173ff]
[ 0.218815] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[ 0.218946] pci 0000:00:1f.0: [8086:8c50] type 00 class 0x060100
[ 0.219163] pci 0000:00:1f.2: [8086:8c02] type 00 class 0x010601
[ 0.219179] pci 0000:00:1f.2: reg 0x10: [io 0xf070-0xf077]
[ 0.219186] pci 0000:00:1f.2: reg 0x14: [io 0xf060-0xf063]
[ 0.219193] pci 0000:00:1f.2: reg 0x18: [io 0xf050-0xf057]
[ 0.219200] pci 0000:00:1f.2: reg 0x1c: [io 0xf040-0xf043]
[ 0.219207] pci 0000:00:1f.2: reg 0x20: [io 0xf020-0xf03f]
[ 0.219214] pci 0000:00:1f.2: reg 0x24: [mem 0xf7f16000-0xf7f167ff]
[ 0.219249] pci 0000:00:1f.2: PME# supported from D3hot
[ 0.219369] pci 0000:00:1f.3: [8086:8c22] type 00 class 0x0c0500
[ 0.219386] pci 0000:00:1f.3: reg 0x10: [mem 0xf7f15000-0xf7f150ff 64bit]
[ 0.219405] pci 0000:00:1f.3: reg 0x20: [io 0xf000-0xf01f]
[ 0.219580] pci 0000:01:00.0: [1002:67df] type 00 class 0x030000
[ 0.219601] pci 0000:01:00.0: reg 0x10: [mem 0xe0000000-0xefffffff 64bit pref]
[ 0.219610] pci 0000:01:00.0: reg 0x18: [mem 0xf0000000-0xf01fffff 64bit pref]
[ 0.219616] pci 0000:01:00.0: reg 0x20: [io 0xe000-0xe0ff]
[ 0.219623] pci 0000:01:00.0: reg 0x24: [mem 0xf7e00000-0xf7e3ffff]
[ 0.219629] pci 0000:01:00.0: reg 0x30: [mem 0xf7e40000-0xf7e5ffff pref]
[ 0.219683] pci 0000:01:00.0: supports D1 D2
[ 0.219685] pci 0000:01:00.0: PME# supported from D1 D2 D3hot D3cold
[ 0.219778] pci 0000:01:00.1: [1002:aaf0] type 00 class 0x040300
[ 0.219796] pci 0000:01:00.1: reg 0x10: [mem 0xf7e60000-0xf7e63fff 64bit]
[ 0.219863] pci 0000:01:00.1: supports D1 D2
[ 0.219961] pci 0000:00:01.0: PCI bridge to [bus 01]
[ 0.219963] pci 0000:00:01.0: bridge window [io 0xe000-0xefff]
[ 0.219966] pci 0000:00:01.0: bridge window [mem 0xf7e00000-0xf7efffff]
[ 0.219969] pci 0000:00:01.0: bridge window [mem 0xe0000000-0xf01fffff 64bit pref]
[ 0.220022] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 0.220094] pci 0000:03:00.0: [10ec:8168] type 00 class 0x020000
[ 0.220124] pci 0000:03:00.0: reg 0x10: [io 0xd000-0xd0ff]
[ 0.220153] pci 0000:03:00.0: reg 0x18: [mem 0xf7d00000-0xf7d00fff 64bit]
[ 0.220171] pci 0000:03:00.0: reg 0x20: [mem 0xf0300000-0xf0303fff 64bit pref]
[ 0.220275] pci 0000:03:00.0: supports D1 D2
[ 0.220277] pci 0000:03:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.220419] pci 0000:00:1c.2: PCI bridge to [bus 03]
[ 0.220422] pci 0000:00:1c.2: bridge window [io 0xd000-0xdfff]
[ 0.220425] pci 0000:00:1c.2: bridge window [mem 0xf7d00000-0xf7dfffff]
[ 0.220430] pci 0000:00:1c.2: bridge window [mem 0xf0300000-0xf03fffff 64bit pref]
[ 0.220444] pci_bus 0000:00: on NUMA node 0
[ 0.221549] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11 12 14 15)
[ 0.221628] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *10 11 12 14 15)
[ 0.221704] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 10 11 12 *14 15)
[ 0.221782] ACPI: PCI Interrupt Link [LNKD] (IRQs *3 4 5 6 7 10 11 12 14 15)
[ 0.221858] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 *7 10 11 12 14 15)
[ 0.221934] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 10 11 12 14 *15)
[ 0.222011] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 *4 5 6 7 10 11 12 14 15)
[ 0.222088] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 *6 7 10 11 12 14 15)
[ 0.222665] pci 0000:01:00.0: vgaarb: setting as boot VGA device
[ 0.222665] pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[ 0.222665] pci 0000:01:00.0: vgaarb: bridge control possible
[ 0.222665] vgaarb: loaded
[ 0.222665] SCSI subsystem initialized
[ 0.222665] libata version 3.00 loaded.
[ 0.222665] PCI: Using ACPI for IRQ routing
[ 0.224284] PCI: pci_cache_line_size set to 64 bytes
[ 0.224321] e820: reserve RAM buffer [mem 0x0009d800-0x0009ffff]
[ 0.224323] e820: reserve RAM buffer [mem 0xc5769000-0xc7ffffff]
[ 0.224325] e820: reserve RAM buffer [mem 0xc5bc8000-0xc7ffffff]
[ 0.224326] e820: reserve RAM buffer [mem 0xdd68a000-0xdfffffff]
[ 0.224328] e820: reserve RAM buffer [mem 0xdf000000-0xdfffffff]
[ 0.224330] e820: reserve RAM buffer [mem 0x41f000000-0x41fffffff]
[ 0.224528] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[ 0.224538] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[ 0.226023] clocksource: Switched to clocksource tsc-early
[ 0.226344] AppArmor: AppArmor Filesystem Enabled
[ 0.226359] pnp: PnP ACPI init
[ 0.226465] system 00:00: [mem 0xfed40000-0xfed44fff] has been reserved
[ 0.226482] system 00:00: Plug and Play ACPI device, IDs PNP0c01 (active)
[ 0.226700] system 00:01: [io 0x0680-0x069f] has been reserved
[ 0.226703] system 00:01: [io 0xffff] has been reserved
[ 0.226705] system 00:01: [io 0xffff] has been reserved
[ 0.226707] system 00:01: [io 0xffff] has been reserved
[ 0.226709] system 00:01: [io 0x1c00-0x1cfe] has been reserved
[ 0.226711] system 00:01: [io 0x1d00-0x1dfe] has been reserved
[ 0.226713] system 00:01: [io 0x1e00-0x1efe] has been reserved
[ 0.226715] system 00:01: [io 0x1f00-0x1ffe] has been reserved
[ 0.226719] system 00:01: [io 0x1800-0x18fe] has been reserved
[ 0.226721] system 00:01: [io 0x164e-0x164f] has been reserved
[ 0.226726] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.226760] pnp 00:02: Plug and Play ACPI device, IDs PNP0b00 (active)
[ 0.226830] system 00:03: [io 0x1854-0x1857] has been reserved
[ 0.226835] system 00:03: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[ 0.226944] system 00:04: [io 0x0290-0x029f] has been reserved
[ 0.226950] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.227282] pnp 00:05: [dma 0 disabled]
[ 0.227412] pnp 00:05: Plug and Play ACPI device, IDs PNP0400 (active)
[ 0.227481] system 00:06: [io 0x04d0-0x04d1] has been reserved
[ 0.227486] system 00:06: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.228189] system 00:07: [mem 0xfed1c000-0xfed1ffff] has been reserved
[ 0.228192] system 00:07: [mem 0xfed10000-0xfed17fff] has been reserved
[ 0.228194] system 00:07: [mem 0xfed18000-0xfed18fff] has been reserved
[ 0.228196] system 00:07: [mem 0xfed19000-0xfed19fff] has been reserved
[ 0.228198] system 00:07: [mem 0xf8000000-0xfbffffff] has been reserved
[ 0.228201] system 00:07: [mem 0xfed20000-0xfed3ffff] has been reserved
[ 0.228203] system 00:07: [mem 0xfed90000-0xfed93fff] has been reserved
[ 0.228205] system 00:07: [mem 0xfed45000-0xfed8ffff] has been reserved
[ 0.228207] system 00:07: [mem 0xff000000-0xffffffff] has been reserved
[ 0.228210] system 00:07: [mem 0xfee00000-0xfeefffff] could not be reserved
[ 0.228212] system 00:07: [mem 0xf7fdf000-0xf7fdffff] has been reserved
[ 0.228214] system 00:07: [mem 0xf7fe0000-0xf7feffff] has been reserved
[ 0.228220] system 00:07: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.228548] pnp: PnP ACPI: found 8 devices
[ 0.235440] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[ 0.235454] pci 0000:00:1c.0: bridge window [io 0x1000-0x0fff] to [bus 02] add_size 1000
[ 0.235456] pci 0000:00:1c.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 02] add_size 200000 add_align 100000
[ 0.235458] pci 0000:00:1c.0: bridge window [mem 0x00100000-0x000fffff] to [bus 02] add_size 200000 add_align 100000
[ 0.235471] pci 0000:00:1c.0: BAR 14: assigned [mem 0xf0400000-0xf05fffff]
[ 0.235478] pci 0000:00:1c.0: BAR 15: assigned [mem 0xf0600000-0xf07fffff 64bit pref]
[ 0.235481] pci 0000:00:1c.0: BAR 13: assigned [io 0x2000-0x2fff]
[ 0.235484] pci 0000:00:01.0: PCI bridge to [bus 01]
[ 0.235486] pci 0000:00:01.0: bridge window [io 0xe000-0xefff]
[ 0.235489] pci 0000:00:01.0: bridge window [mem 0xf7e00000-0xf7efffff]
[ 0.235491] pci 0000:00:01.0: bridge window [mem 0xe0000000-0xf01fffff 64bit pref]
[ 0.235495] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 0.235497] pci 0000:00:1c.0: bridge window [io 0x2000-0x2fff]
[ 0.235502] pci 0000:00:1c.0: bridge window [mem 0xf0400000-0xf05fffff]
[ 0.235505] pci 0000:00:1c.0: bridge window [mem 0xf0600000-0xf07fffff 64bit pref]
[ 0.235510] pci 0000:00:1c.2: PCI bridge to [bus 03]
[ 0.235512] pci 0000:00:1c.2: bridge window [io 0xd000-0xdfff]
[ 0.235516] pci 0000:00:1c.2: bridge window [mem 0xf7d00000-0xf7dfffff]
[ 0.235520] pci 0000:00:1c.2: bridge window [mem 0xf0300000-0xf03fffff 64bit pref]
[ 0.235525] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7 window]
[ 0.235527] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff window]
[ 0.235528] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window]
[ 0.235530] pci_bus 0000:00: resource 7 [mem 0x000d0000-0x000d3fff window]
[ 0.235532] pci_bus 0000:00: resource 8 [mem 0x000d4000-0x000d7fff window]
[ 0.235533] pci_bus 0000:00: resource 9 [mem 0x000d8000-0x000dbfff window]
[ 0.235535] pci_bus 0000:00: resource 10 [mem 0x000dc000-0x000dffff window]
[ 0.235536] pci_bus 0000:00: resource 11 [mem 0x000e0000-0x000e3fff window]
[ 0.235538] pci_bus 0000:00: resource 12 [mem 0x000e4000-0x000e7fff window]
[ 0.235540] pci_bus 0000:00: resource 13 [mem 0xe0000000-0xfeafffff window]
[ 0.235542] pci_bus 0000:01: resource 0 [io 0xe000-0xefff]
[ 0.235543] pci_bus 0000:01: resource 1 [mem 0xf7e00000-0xf7efffff]
[ 0.235545] pci_bus 0000:01: resource 2 [mem 0xe0000000-0xf01fffff 64bit pref]
[ 0.235546] pci_bus 0000:02: resource 0 [io 0x2000-0x2fff]
[ 0.235548] pci_bus 0000:02: resource 1 [mem 0xf0400000-0xf05fffff]
[ 0.235550] pci_bus 0000:02: resource 2 [mem 0xf0600000-0xf07fffff 64bit pref]
[ 0.235551] pci_bus 0000:03: resource 0 [io 0xd000-0xdfff]
[ 0.235553] pci_bus 0000:03: resource 1 [mem 0xf7d00000-0xf7dfffff]
[ 0.235554] pci_bus 0000:03: resource 2 [mem 0xf0300000-0xf03fffff 64bit pref]
[ 0.235736] NET: Registered protocol family 2
[ 0.235920] tcp_listen_portaddr_hash hash table entries: 8192 (order: 7, 720896 bytes)
[ 0.236113] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[ 0.236245] TCP bind hash table entries: 32768 (order: 9, 2621440 bytes)
[ 0.236945] TCP: Hash tables configured (established 131072 bind 32768)
[ 0.237000] UDP hash table entries: 8192 (order: 8, 1572864 bytes)
[ 0.237364] UDP-Lite hash table entries: 8192 (order: 8, 1572864 bytes)
[ 0.237747] NET: Registered protocol family 1
[ 0.254167] pci 0000:00:1a.0: quirk_usb_early_handoff+0x0/0x6c0 took 15659 usecs
[ 0.270163] pci 0000:00:1d.0: quirk_usb_early_handoff+0x0/0x6c0 took 15607 usecs
[ 0.270178] pci 0000:01:00.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[ 0.270189] pci 0000:01:00.1: Linked as a consumer to 0000:01:00.0
[ 0.270197] PCI: CLS 64 bytes, default 64
[ 0.270310] Unpacking initramfs...
[ 1.488810] Freeing initrd memory: 16184K
[ 1.488819] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 1.488821] software IO TLB: mapped [mem 0xd968a000-0xdd68a000] (64MB)
[ 1.488894] RAPL PMU: API unit is 2^-32 Joules, 4 fixed counters, 655360 ms ovfl timer
[ 1.488896] RAPL PMU: hw unit of domain pp0-core 2^-14 Joules
[ 1.488897] RAPL PMU: hw unit of domain package 2^-14 Joules
[ 1.488898] RAPL PMU: hw unit of domain dram 2^-14 Joules
[ 1.488899] RAPL PMU: hw unit of domain pp1-gpu 2^-14 Joules
[ 1.490489] Initialise system trusted keyrings
[ 1.490559] workingset: timestamp_bits=46 max_order=22 bucket_order=0
[ 1.493630] zbud: loaded
[ 1.494084] pstore: using lzo compression
[ 1.719971] Key type asymmetric registered
[ 1.719976] Asymmetric key parser 'x509' registered
[ 1.719985] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[ 1.720042] io scheduler noop registered
[ 1.720044] io scheduler deadline registered
[ 1.720106] io scheduler cfq registered (default)
[ 1.720107] io scheduler mq-deadline registered
[ 1.720167] io scheduler bfq registered
[ 1.721167] pcieport 0000:00:01.0: Signaling PME with IRQ 24
[ 1.721203] pcieport 0000:00:1c.0: Signaling PME with IRQ 25
[ 1.721227] pcieport 0000:00:1c.2: Signaling PME with IRQ 26
[ 1.721264] vesafb: mode is 1920x1080x32, linelength=7680, pages=0
[ 1.721265] vesafb: scrolling: redraw
[ 1.721267] vesafb: Truecolor: size=0:8:8:8, shift=0:16:8:0
[ 1.721281] vesafb: framebuffer at 0xe0000000, mapped to 0x0000000059666e26, using 8128k, total 8128k
[ 1.721410] Console: switching to colour frame buffer device 240x67
[ 1.832829] fb0: VESA VGA frame buffer device
[ 1.832840] intel_idle: MWAIT substates: 0x42120
[ 1.832841] intel_idle: v0.4.1 model 0x3C
[ 1.833134] intel_idle: lapic_timer_reliable_states 0xffffffff
[ 1.836982] loop: module loaded
[ 1.837174] zram: Added device: zram0
[ 1.837192] ahci 0000:00:1f.2: version 3.0
[ 1.837435] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x1f impl SATA mode
[ 1.837438] ahci 0000:00:1f.2: flags: 64bit ncq pm led clo pio slum part ems apst
[ 1.850357] scsi host0: ahci
[ 1.850719] scsi host1: ahci
[ 1.851068] scsi host2: ahci
[ 1.851273] scsi host3: ahci
[ 1.851411] scsi host4: ahci
[ 1.851600] scsi host5: ahci
[ 1.851693] ata1: SATA max UDMA/133 abar m2048@0xf7f16000 port 0xf7f16100 irq 27
[ 1.851695] ata2: SATA max UDMA/133 abar m2048@0xf7f16000 port 0xf7f16180 irq 27
[ 1.851697] ata3: SATA max UDMA/133 abar m2048@0xf7f16000 port 0xf7f16200 irq 27
[ 1.851699] ata4: SATA max UDMA/133 abar m2048@0xf7f16000 port 0xf7f16280 irq 27
[ 1.851701] ata5: SATA max UDMA/133 abar m2048@0xf7f16000 port 0xf7f16300 irq 27
[ 1.851702] ata6: DUMMY
[ 1.851839] i8042: PNP: No PS/2 controller found.
[ 1.851902] rtc_cmos 00:02: RTC can wake from S4
[ 1.852129] rtc_cmos 00:02: registered as rtc0
[ 1.852131] rtc_cmos 00:02: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[ 1.852144] intel_pstate: Intel P-state driver initializing
[ 1.852532] NET: Registered protocol family 17
[ 1.852558] NET: Registered protocol family 15
[ 1.852775] microcode: sig=0x306c3, pf=0x2, revision=0x25
[ 1.853046] microcode: Microcode Update Driver: v2.2.
[ 1.853120] sched_clock: Marking stable (1852524304, 487361)->(1871749035, -18737370)
[ 1.854303] registered taskstats version 1
[ 1.854308] Loading compiled-in X.509 certificates
[ 1.854498] AppArmor: AppArmor sha1 policy hashing enabled
[ 1.855973] rtc_cmos 00:02: setting system clock to 2018-09-14 11:19:49 UTC (1536923989)
[ 2.159511] ata4: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 2.159545] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2.159578] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 2.159611] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[ 2.159641] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[ 2.160819] ata1.00: supports DRM functions and may not be fully accessible
[ 2.160951] ACPI BIOS Error (bug): Could not resolve [\_SB.PCI0.SAT0.SPT4._GTF.DSSP], AE_NOT_FOUND (20180810/psargs-330)
[ 2.164122] ACPI Error: Method parse/execution failed \_SB.PCI0.SAT0.SPT4._GTF, AE_NOT_FOUND (20180810/psparse-516)
[ 2.167160] ata5.00: ATAPI: HL-DT-ST DVDRAM GH24NSC0, LK00, max UDMA/133
[ 2.167280] ata4.00: ATA-9: SanDisk SDSSDHII240G, X31200RL, max UDMA/133
[ 2.167283] ata4.00: 468862128 sectors, multi 1: LBA48 NCQ (depth 32), AA
[ 2.167390] ata2.00: ATA-9: WDC WD10EZEX-00M2NA0, 01.01A01, max UDMA/133
[ 2.167393] ata2.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 32), AA
[ 2.167482] ata3.00: ATA-8: SAMSUNG HD502HJ, 1AJ10001, max UDMA/133
[ 2.167485] ata3.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 32), AA
[ 2.167649] ata1.00: disabling queued TRIM support
[ 2.167651] ata1.00: ATA-9: Samsung SSD 840 EVO 120GB, EXT0DB6Q, max UDMA/133
[ 2.167663] ata1.00: 234441648 sectors, multi 1: LBA48 NCQ (depth 32), AA
[ 2.168212] ata2.00: configured for UDMA/133
[ 2.168524] ata1.00: supports DRM functions and may not be fully accessible
[ 2.168562] ACPI BIOS Error (bug): Could not resolve [\_SB.PCI0.SAT0.SPT4._GTF.DSSP], AE_NOT_FOUND (20180810/psargs-330)
[ 2.169657] ACPI Error: Method parse/execution failed \_SB.PCI0.SAT0.SPT4._GTF, AE_NOT_FOUND (20180810/psparse-516)
[ 2.170585] ata5.00: configured for UDMA/133
[ 2.170984] ata1.00: disabling queued TRIM support
[ 2.171065] ata4.00: configured for UDMA/133
[ 2.171506] ata1.00: configured for UDMA/133
[ 2.171699] scsi 0:0:0:0: Direct-Access ATA Samsung SSD 840 DB6Q PQ: 0 ANSI: 5
[ 2.172060] scsi 1:0:0:0: Direct-Access ATA WDC WD10EZEX-00M 1A01 PQ: 0 ANSI: 5
[ 2.173355] ata3.00: configured for UDMA/133
[ 2.173513] scsi 2:0:0:0: Direct-Access ATA SAMSUNG HD502HJ 0001 PQ: 0 ANSI: 5
[ 2.173870] scsi 3:0:0:0: Direct-Access ATA SanDisk SDSSDHII 00RL PQ: 0 ANSI: 5
[ 2.174711] scsi 4:0:0:0: CD-ROM HL-DT-ST DVDRAM GH24NSC0 LK00 PQ: 0 ANSI: 5
[ 2.553044] tsc: Refined TSC clocksource calibration: 3292.376 MHz
[ 2.553056] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2f752a1872e, max_idle_ns: 440795303697 ns
[ 2.579646] Freeing unused kernel image memory: 2700K
[ 2.579656] clocksource: Switched to clocksource tsc
[ 2.584052] Write protecting the kernel read-only data: 14336k
[ 2.585413] Freeing unused kernel image memory: 1984K
[ 2.585747] Freeing unused kernel image memory: 1728K
[ 2.585842] Run /init as init process
[ 2.600813] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[ 2.600961] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[ 2.600975] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[ 2.652961] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
[ 2.652987] ACPI: Power Button [PWRB]
[ 2.653075] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
[ 2.653163] ACPI: Power Button [PWRF]
[ 2.665355] sd 0:0:0:0: [sda] 234441648 512-byte logical blocks: (120 GB/112 GiB)
[ 2.665362] sd 0:0:0:0: [sda] Write Protect is off
[ 2.665364] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 2.665372] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.665413] sd 1:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[ 2.665415] sd 1:0:0:0: [sdb] 4096-byte physical blocks
[ 2.665421] sd 1:0:0:0: [sdb] Write Protect is off
[ 2.665422] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 2.665431] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.665467] sd 2:0:0:0: [sdc] 976773168 512-byte logical blocks: (500 GB/466 GiB)
[ 2.665474] sd 2:0:0:0: [sdc] Write Protect is off
[ 2.665475] sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 2.665484] sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.665786] sd 3:0:0:0: [sdd] 468862128 512-byte logical blocks: (240 GB/224 GiB)
[ 2.665792] sd 3:0:0:0: [sdd] Write Protect is off
[ 2.665793] sd 3:0:0:0: [sdd] Mode Sense: 00 3a 00 00
[ 2.665801] sd 3:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.665945] thermal LNXTHERM:00: registered as thermal_zone0
[ 2.665947] ACPI: Thermal Zone [TZ00] (28 C)
[ 2.665971] sda: sda1 sda2
[ 2.666359] sd 0:0:0:0: [sda] Attached SCSI disk
[ 2.666501] thermal LNXTHERM:01: registered as thermal_zone1
[ 2.666503] ACPI: Thermal Zone [TZ01] (30 C)
[ 2.668986] cryptd: max_cpu_qlen set to 1000
[ 2.671625] sdd: sdd1
[ 2.671961] sd 3:0:0:0: [sdd] Attached SCSI disk
[ 2.672067] libphy: r8169: probed
[ 2.672427] r8169 0000:03:00.0 eth0: RTL8168g/8111g, 38:2c:4a:e9:1c:f9, XID 4c000800, IRQ 28
[ 2.672429] r8169 0000:03:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[ 2.673505] AVX2 version of gcm_enc/dec engaged.
[ 2.673506] AES CTR mode by8 optimization enabled
[ 2.684520] r8169 0000:03:00.0 enp3s0: renamed from eth0
[ 2.694899] sdc: sdc1 sdc2 sdc3 < sdc5 sdc6 >
[ 2.695474] sd 2:0:0:0: [sdc] Attached SCSI disk
[ 2.700567] [drm] amdgpu kernel modesetting enabled.
[ 2.700590] checking generic (e0000000 7f0000) vs hw (e0000000 10000000)
[ 2.700591] fb: switching to amdgpudrmfb from VESA VGA
[ 2.700636] Console: switching to colour dummy device 80x25
[ 2.701254] [drm] initializing kernel modesetting (POLARIS10 0x1002:0x67DF 0x174B:0xE347 0xCF).
[ 2.701266] [drm] register mmio base: 0xF7E00000
[ 2.701267] [drm] register mmio size: 262144
[ 2.701275] [drm] add ip block number 0 <vi_common>
[ 2.701277] [drm] add ip block number 1 <gmc_v8_0>
[ 2.701278] [drm] add ip block number 2 <tonga_ih>
[ 2.701279] [drm] add ip block number 3 <powerplay>
[ 2.701280] [drm] add ip block number 4 <dm>
[ 2.701281] [drm] add ip block number 5 <gfx_v8_0>
[ 2.701282] [drm] add ip block number 6 <sdma_v3_0>
[ 2.701283] [drm] add ip block number 7 <uvd_v6_0>
[ 2.701284] [drm] add ip block number 8 <vce_v3_0>
[ 2.701302] [drm] UVD is enabled in VM mode
[ 2.701303] [drm] UVD ENC is enabled in VM mode
[ 2.701305] [drm] VCE enabled in VM mode
[ 2.701485] resource sanity check: requesting [mem 0x000c0000-0x000dffff], which spans more than PCI Bus 0000:00 [mem 0x000d0000-0x000d3fff window]
[ 2.701489] caller pci_map_rom+0x63/0x1b0 mapping multiple BARs
[ 2.701490] amdgpu 0000:01:00.0: No more image in the PCI ROM
[ 2.701519] ATOM BIOS: 113-1E3470U.S61
[ 2.701565] [drm] vm size is 64 GB, 2 levels, block size is 10-bit, fragment size is 9-bit
[ 2.701627] amdgpu 0000:01:00.0: VRAM: 8192M 0x000000F400000000 - 0x000000F5FFFFFFFF (8192M used)
[ 2.701628] amdgpu 0000:01:00.0: GART: 256M 0x0000000000000000 - 0x000000000FFFFFFF
[ 2.701634] [drm] Detected VRAM RAM=8192M, BAR=256M
[ 2.701636] [drm] RAM width 256bits GDDR5
[ 2.701708] [TTM] Zone kernel: Available graphics memory: 8164428 kiB
[ 2.701709] [TTM] Zone dma32: Available graphics memory: 2097152 kiB
[ 2.701710] [TTM] Initializing pool allocator
[ 2.701717] [TTM] Initializing DMA pool allocator
[ 2.701947] [drm] amdgpu: 8192M of VRAM memory ready
[ 2.701950] [drm] amdgpu: 8192M of GTT memory ready.
[ 2.701968] [drm] GART: num cpu pages 65536, num gpu pages 65536
[ 2.702093] [drm] PCIE GART of 256M enabled (table at 0x000000F4007E9000).
[ 2.702253] [drm] Chained IB support enabled!
[ 2.703650] [drm] Found UVD firmware Version: 1.79 Family ID: 16
[ 2.703655] [drm] UVD ENC is disabled
[ 2.703956] [drm] Found VCE firmware Version: 52.4 Binary ID: 3
[ 2.743629] sdb: sdb1 sdb2 sdb3 < sdb5 sdb6 >
[ 2.744178] sd 1:0:0:0: [sdb] Attached SCSI disk
[ 2.756088] amdgpu: [powerplay] Failed to retrieve minimum clocks.
[ 2.756089] amdgpu: [powerplay] Error in phm_get_clock_info
[ 2.756130] [drm] DM_PPLIB: values for Engine clock
[ 2.756131] [drm] DM_PPLIB: 300000
[ 2.756132] [drm] DM_PPLIB: 466000
[ 2.756133] [drm] DM_PPLIB: 751000
[ 2.756133] [drm] DM_PPLIB: 1019000
[ 2.756134] [drm] DM_PPLIB: 1074000
[ 2.756135] [drm] DM_PPLIB: 1126000
[ 2.756136] [drm] DM_PPLIB: 1169000
[ 2.756137] [drm] DM_PPLIB: 1206000
[ 2.756138] [drm] DM_PPLIB: Validation clocks:
[ 2.756139] [drm] DM_PPLIB: engine_max_clock: 120600
[ 2.756140] [drm] DM_PPLIB: memory_max_clock: 200000
[ 2.756140] [drm] DM_PPLIB: level : 8
[ 2.756142] [drm] DM_PPLIB: values for Memory clock
[ 2.756143] [drm] DM_PPLIB: 300000
[ 2.756144] [drm] DM_PPLIB: 2000000
[ 2.756144] [drm] DM_PPLIB: Validation clocks:
[ 2.756145] [drm] DM_PPLIB: engine_max_clock: 120600
[ 2.756146] [drm] DM_PPLIB: memory_max_clock: 200000
[ 2.756147] [drm] DM_PPLIB: level : 8
[ 2.759056] [drm] Display Core initialized with v3.1.59!
[ 2.784452] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 2.784453] [drm] Driver supports precise vblank timestamp query.
[ 2.813600] [drm] UVD initialized successfully.
[ 2.866211] random: fast init done
[ 2.914605] [drm] VCE initialized successfully.
[ 2.916522] [drm] fb mappable at 0xE0B99000
[ 2.916523] [drm] vram apper at 0xE0000000
[ 2.916524] [drm] size 8294400
[ 2.916525] [drm] fb depth is 24
[ 2.916526] [drm] pitch is 7680
[ 2.916598] fbcon: amdgpudrmfb (fb0) is primary device
[ 2.944710] Console: switching to colour frame buffer device 240x67
[ 2.948130] amdgpu 0000:01:00.0: fb0: amdgpudrmfb frame buffer device
[ 2.955712] [drm] Initialized amdgpu 3.27.0 20150101 for 0000:01:00.0 on minor 0
[ 3.870542] device-mapper: uevent: version 1.0.3
[ 3.870717] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
[ 3.895952] Generic PHY r8169-300:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=r8169-300:00, irq=IGNORE)
Here I see the plymouth boot screen telling that cryptsetup is waiting...
And waiting... and waiting ... The link LED of the LAN interface is green.
[ 28.563467] r8169 0000:03:00.0 enp3s0: Link is Up - 1Gbps/Full - flow control rx/tx
After forty seconds it goes on...
Please see at the end of the dmesg. There is another r8169 message.
[ 41.810021] raid6: sse2x1 gen() 10644 MB/s
[ 41.827018] raid6: sse2x1 xor() 8800 MB/s
[ 41.844017] raid6: sse2x2 gen() 14507 MB/s
[ 41.861020] raid6: sse2x2 xor() 9720 MB/s
[ 41.878020] raid6: sse2x4 gen() 16765 MB/s
[ 41.895017] raid6: sse2x4 xor() 11449 MB/s
[ 41.912019] raid6: avx2x1 gen() 22105 MB/s
[ 41.929005] raid6: avx2x1 xor() 16609 MB/s
[ 41.946017] raid6: avx2x2 gen() 25812 MB/s
[ 41.963019] raid6: avx2x2 xor() 17417 MB/s
[ 41.980018] raid6: avx2x4 gen() 29953 MB/s
[ 41.997017] raid6: avx2x4 xor() 20935 MB/s
[ 41.997019] raid6: using algorithm avx2x4 gen() 29953 MB/s
[ 41.997020] raid6: .... xor() 20935 MB/s, rmw enabled
[ 41.997022] raid6: using avx2x2 recovery algorithm
[ 41.997475] xor: automatically using best checksumming function avx
[ 42.010297] Btrfs loaded, crc32c=crc32c-intel
[ 42.424624] BTRFS: device fsid 6c8707c6-971a-4185-b649-37a18c58e29d devid 1 transid 196065 /dev/mapper/sohn_vg-sohnRoot
[ 47.450813] BTRFS info (device dm-1): disk space caching is enabled
[ 47.458811] BTRFS info (device dm-1): enabling ssd optimizations
[ 47.561088] systemd[1]: Failed to insert module 'autofs4': No such file or directory
[ 47.572528] NET: Registered protocol family 10
[ 47.573318] Segment Routing with IPv6
[ 47.579252] systemd[1]: systemd 229 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN)
[ 47.591232] systemd[1]: Detected architecture x86-64.
[ 47.591967] systemd[1]: Set hostname to <sohn>.
[ 47.656895] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[ 47.656989] systemd[1]: Listening on udev Control Socket.
[ 47.657170] systemd[1]: Created slice User and Session Slice.
[ 47.657952] systemd[1]: Listening on Process Core Dump Socket.
[ 47.658030] systemd[1]: Listening on Journal Socket.
[ 47.658042] systemd[1]: Reached target Swap.
[ 47.658064] systemd[1]: Starting of Arbitrary Executable File Formats File System Automount Point not supported.
[ 47.693000] ppdev: user-space parallel port driver
[ 47.694340] parport_pc 00:05: reported by Plug and Play ACPI
[ 47.694488] parport0: PC-style at 0x378, irq 5 [PCSPP]
[ 47.746707] BTRFS info (device dm-1): use lzo compression, level 0
[ 47.746711] BTRFS info (device dm-1): disk space caching is enabled
[ 47.789174] nct6775: Enabling hardware monitor logical device mappings.
[ 47.789207] nct6775: Found NCT6791D or compatible chip at 0x2e:0x290
[ 47.864476] ACPI: bus type USB registered
[ 47.864511] usbcore: registered new interface driver usbfs
[ 47.864580] usbcore: registered new interface driver hub
[ 47.864621] usbcore: registered new device driver usb
[ 47.868924] xhci_hcd 0000:00:14.0: xHCI Host Controller
[ 47.870165] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
[ 47.871410] xhci_hcd 0000:00:14.0: hcc params 0x200077c1 hci version 0x100 quirks 0x0000000000009810
[ 47.871416] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
[ 47.871879] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[ 47.871881] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 47.871883] usb usb1: Product: xHCI Host Controller
[ 47.871884] usb usb1: Manufacturer: Linux 4.19.0-rc3 xhci-hcd
[ 47.871886] usb usb1: SerialNumber: 0000:00:14.0
[ 47.872182] hub 1-0:1.0: USB hub found
[ 47.872224] hub 1-0:1.0: 12 ports detected
[ 47.874450] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 47.875029] xhci_hcd 0000:00:14.0: xHCI Host Controller
[ 47.875035] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
[ 47.875038] xhci_hcd 0000:00:14.0: Host supports USB 3.0 SuperSpeed
[ 47.875096] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 4.19
[ 47.875098] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 47.875100] usb usb2: Product: xHCI Host Controller
[ 47.875101] usb usb2: Manufacturer: Linux 4.19.0-rc3 xhci-hcd
[ 47.875102] usb usb2: SerialNumber: 0000:00:14.0
[ 47.875441] hub 2-0:1.0: USB hub found
[ 47.875456] hub 2-0:1.0: 6 ports detected
[ 47.876744] ehci-pci: EHCI PCI platform driver
[ 47.876944] ehci-pci 0000:00:1a.0: EHCI Host Controller
[ 47.876952] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 3
[ 47.876962] ehci-pci 0000:00:1a.0: debug port 2
[ 47.881915] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[ 47.882084] ehci-pci 0000:00:1a.0: irq 20, io mem 0xf7f18000
[ 47.886099] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 47.886169] sd 1:0:0:0: Attached scsi generic sg1 type 0
[ 47.886224] sd 2:0:0:0: Attached scsi generic sg2 type 0
[ 47.886277] sd 3:0:0:0: Attached scsi generic sg3 type 0
[ 47.886324] scsi 4:0:0:0: Attached scsi generic sg4 type 5
[ 47.889206] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[ 47.889270] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[ 47.889272] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 47.889273] usb usb3: Product: EHCI Host Controller
[ 47.889275] usb usb3: Manufacturer: Linux 4.19.0-rc3 ehci_hcd
[ 47.889276] usb usb3: SerialNumber: 0000:00:1a.0
[ 47.890333] hub 3-0:1.0: USB hub found
[ 47.890342] hub 3-0:1.0: 2 ports detected
[ 47.890760] ehci-pci 0000:00:1d.0: EHCI Host Controller
[ 47.890768] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 4
[ 47.890778] ehci-pci 0000:00:1d.0: debug port 2
[ 47.894670] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[ 47.897891] ehci-pci 0000:00:1d.0: irq 23, io mem 0xf7f17000
[ 47.900433] input: PC Speaker as /devices/platform/pcspkr/input/input2
[ 47.904116] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[ 47.904172] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[ 47.904173] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 47.904175] usb usb4: Product: EHCI Host Controller
[ 47.904176] usb usb4: Manufacturer: Linux 4.19.0-rc3 ehci_hcd
[ 47.904178] usb usb4: SerialNumber: 0000:00:1d.0
[ 47.904369] hub 4-0:1.0: USB hub found
[ 47.904378] hub 4-0:1.0: 2 ports detected
[ 47.908864] sr 4:0:0:0: [sr0] scsi3-mmc drive: 48x/12x writer dvd-ram cd/rw xa/form2 cdda tray
[ 47.908869] cdrom: Uniform CD-ROM driver Revision: 3.20
[ 47.909555] sr 4:0:0:0: Attached scsi CD-ROM sr0
[ 47.959888] snd_hda_intel 0000:01:00.1: Force to non-snoop mode
[ 47.976232] input: HDA ATI HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input3
[ 47.976310] input: HDA ATI HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input4
[ 47.976384] input: HDA ATI HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input5
[ 47.976459] input: HDA ATI HDMI HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input6
[ 47.976531] input: HDA ATI HDMI HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input7
[ 47.976607] input: HDA ATI HDMI HDMI/DP,pcm=11 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input8
[ 47.978059] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC887-VD: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:line
[ 47.978061] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 47.978063] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 47.978064] snd_hda_codec_realtek hdaudioC0D0: mono: mono_out=0x0
[ 47.978066] snd_hda_codec_realtek hdaudioC0D0: dig-out=0x11/0x0
[ 47.978067] snd_hda_codec_realtek hdaudioC0D0: inputs:
[ 47.978069] snd_hda_codec_realtek hdaudioC0D0: Front Mic=0x19
[ 47.978071] snd_hda_codec_realtek hdaudioC0D0: Rear Mic=0x18
[ 47.978072] snd_hda_codec_realtek hdaudioC0D0: Line=0x1a
[ 47.992656] input: HDA Intel PCH Front Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
[ 47.992747] input: HDA Intel PCH Rear Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
[ 47.992823] input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
[ 47.992909] input: HDA Intel PCH Line Out as /devices/pci0000:00/0000:00:1b.0/sound/card0/input12
[ 47.992977] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input13
[ 48.195365] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[ 48.211455] usb 2-1: New USB device found, idVendor=05e3, idProduct=0748, bcdDevice=12.03
[ 48.211459] usb 2-1: New USB device strings: Mfr=3, Product=4, SerialNumber=2
[ 48.211462] usb 2-1: Product: USB Storage
[ 48.211464] usb 2-1: Manufacturer: Generic
[ 48.211466] usb 2-1: SerialNumber: 000000001203
[ 48.212023] usb 3-1: new high-speed USB device number 2 using ehci-pci
[ 48.227027] usb 4-1: new high-speed USB device number 2 using ehci-pci
[ 48.323038] usb 1-2: new high-speed USB device number 2 using xhci_hcd
[ 48.340423] usb 3-1: New USB device found, idVendor=8087, idProduct=8008, bcdDevice= 0.05
[ 48.340427] usb 3-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 48.340685] hub 3-1:1.0: USB hub found
[ 48.340765] hub 3-1:1.0: 6 ports detected
[ 48.355400] usb 4-1: New USB device found, idVendor=8087, idProduct=8000, bcdDevice= 0.05
[ 48.355403] usb 4-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 48.355690] hub 4-1:1.0: USB hub found
[ 48.355765] hub 4-1:1.0: 6 ports detected
[ 48.453876] usb 1-2: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice=92.23
[ 48.453879] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 48.453890] usb 1-2: Product: USB2.0 Hub
[ 48.453892] usb 1-2: Manufacturer: GenesysLogic
[ 48.454763] hub 1-2:1.0: USB hub found
[ 48.455310] hub 1-2:1.0: 4 ports detected
[ 48.564246] usb 2-2: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
[ 48.578718] usb 2-2: New USB device found, idVendor=05e3, idProduct=0617, bcdDevice=92.23
[ 48.578722] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 48.578724] usb 2-2: Product: USB3.0 Hub
[ 48.578727] usb 2-2: Manufacturer: GenesysLogic
[ 48.581261] hub 2-2:1.0: USB hub found
[ 48.581573] hub 2-2:1.0: 4 ports detected
[ 48.602633] usb-storage 2-1:1.0: USB Mass Storage device detected
[ 48.602802] scsi host6: usb-storage 2-1:1.0
[ 48.602933] usbcore: registered new interface driver usb-storage
[ 48.603902] usbcore: registered new interface driver uas
[ 48.691023] usb 1-3: new high-speed USB device number 3 using xhci_hcd
[ 48.700843] SGI XFS with ACLs, security attributes, no debug enabled
[ 48.713217] EXT4-fs: Warning: mounting with data=journal disables delayed allocation and O_DIRECT support!
[ 48.713472] XFS (dm-2): Mounting V4 Filesystem
[ 48.716389] EXT4-fs (dm-3): mounted filesystem with journalled data mode. Opts: data=journal
[ 48.731034] EXT4-fs (sda1): Unrecognized mount option "user_xattr acl nosuid" or missing value
[ 48.731040] EXT4-fs (sda1): failed to parse options in superblock: user_xattr acl nosuid
[ 48.732230] systemd-journald[419]: Received request to flush runtime journal from PID 1
[ 48.736776] XFS (dm-2): Ending clean mount
[ 48.749413] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: user_xattr acl nosuid; (null)
[ 48.749630] EXT4-fs (dm-4): mounted filesystem with ordered data mode. Opts: (null)
[ 48.817194] usb 1-3: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.11
[ 48.817196] usb 1-3: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 48.817198] usb 1-3: Product: USB 2.0 Hub
[ 48.817868] hub 1-3:1.0: USB hub found
[ 48.817924] hub 1-3:1.0: 4 ports detected
[ 48.870756] audit: type=1400 audit(1536924036.513:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="firejail-default" pid=916 comm="apparmor_parser"
[ 48.873145] audit: type=1400 audit(1536924036.516:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/{usr/,}bin/ping" pid=915 comm="apparmor_parser"
[ 48.873995] audit: type=1400 audit(1536924036.516:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/opt/pws/lighttpd" pid=918 comm="apparmor_parser"
[ 48.874487] audit: type=1400 audit(1536924036.517:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/opt/KeePassXC-*-x86_64.AppImage" pid=917 comm="apparmor_parser"
[ 48.875775] audit: type=1400 audit(1536924036.518:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/lcdproc" pid=921 comm="apparmor_parser"
[ 48.877345] audit: type=1400 audit(1536924036.520:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/pulseaudio" pid=922 comm="apparmor_parser"
[ 48.877419] audit: type=1400 audit(1536924036.520:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/avahi-daemon" pid=923 comm="apparmor_parser"
[ 48.879580] audit: type=1400 audit(1536924036.522:9): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/dirmngr" pid=920 comm="apparmor_parser"
[ 48.879585] audit: type=1400 audit(1536924036.522:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/gpg-agent" pid=920 comm="apparmor_parser"
[ 48.879588] audit: type=1400 audit(1536924036.522:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/gpg{,2}" pid=920 comm="apparmor_parser"
[ 48.900597] zram0: detected capacity change from 0 to 2147483648
[ 48.923378] Adding 2097148k swap on /dev/zram0. Priority:100 extents:1 across:2097148k SSFS
[ 48.932042] usb 1-5: new low-speed USB device number 4 using xhci_hcd
[ 49.066439] usb 1-5: New USB device found, idVendor=0518, idProduct=0002, bcdDevice= 1.00
[ 49.066442] usb 1-5: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 49.066443] usb 1-5: Product: USB-compliant keyboard
[ 49.139016] usb 1-3.2: new full-speed USB device number 5 using xhci_hcd
[ 49.232288] usb 1-3.2: New USB device found, idVendor=1050, idProduct=0116, bcdDevice= 3.49
[ 49.232291] usb 1-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 49.232293] usb 1-3.2: Product: Yubikey NEO OTP+U2F+CCID
[ 49.232294] usb 1-3.2: Manufacturer: Yubico
[ 49.343076] usb 1-6: new full-speed USB device number 6 using xhci_hcd
[ 49.471970] usb 1-6: New USB device found, idVendor=046d, idProduct=c246, bcdDevice=70.02
[ 49.471973] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 49.471975] usb 1-6: Product: Gaming Mouse G300
[ 49.471976] usb 1-6: Manufacturer: Logitech
[ 49.516239] hidraw: raw HID events driver (C) Jiri Kosina
[ 49.533515] usbcore: registered new interface driver usbhid
[ 49.533517] usbhid: USB HID core driver
[ 49.535506] input: Yubico Yubikey NEO OTP+U2F+CCID as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.2/1-3.2:1.0/0003:1050:0116.0003/input/input14
[ 49.587445] hid-generic 0003:1050:0116.0003: input,hidraw0: USB HID v1.10 Keyboard [Yubico Yubikey NEO OTP+U2F+CCID] on usb-0000:00:14.0-3.2/input0
[ 49.587892] hid-generic 0003:1050:0116.0004: hiddev0,hidraw1: USB HID v1.10 Device [Yubico Yubikey NEO OTP+U2F+CCID] on usb-0000:00:14.0-3.2/input1
[ 49.588126] input: Logitech Gaming Mouse G300 as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/0003:046D:C246.0005/input/input15
[ 49.589769] hid-generic 0003:046D:C246.0005: input,hidraw2: USB HID v1.10 Mouse [Logitech Gaming Mouse G300] on usb-0000:00:14.0-6/input0
[ 49.590029] input: Logitech Gaming Mouse G300 Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.1/0003:046D:C246.0006/input/input16
[ 49.642345] input: Logitech Gaming Mouse G300 as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.1/0003:046D:C246.0006/input/input17
[ 49.642681] hid-generic 0003:046D:C246.0006: input,hiddev1,hidraw3: USB HID v1.10 Keyboard [Logitech Gaming Mouse G300] on usb-0000:00:14.0-6/input1
[ 49.653650] input: USB-compliant keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/0003:0518:0002.0001/input/input18
[ 49.658578] scsi 6:0:0:0: Direct-Access Generic STORAGE DEVICE 1203 PQ: 0 ANSI: 6
[ 49.659295] scsi 6:0:0:1: Direct-Access Generic STORAGE DEVICE 1203 PQ: 0 ANSI: 6
[ 49.660096] scsi 6:0:0:2: Direct-Access Generic STORAGE DEVICE 1203 PQ: 0 ANSI: 6
[ 49.660854] scsi 6:0:0:3: Direct-Access Generic STORAGE DEVICE 1203 PQ: 0 ANSI: 6
[ 49.661723] scsi 6:0:0:4: Direct-Access Generic STORAGE DEVICE 1203 PQ: 0 ANSI: 6
[ 49.662095] sd 6:0:0:0: Attached scsi generic sg5 type 0
[ 49.662499] sd 6:0:0:1: Attached scsi generic sg6 type 0
[ 49.662749] sd 6:0:0:2: Attached scsi generic sg7 type 0
[ 49.663062] sd 6:0:0:3: Attached scsi generic sg8 type 0
[ 49.663324] sd 6:0:0:4: Attached scsi generic sg9 type 0
[ 49.668525] sd 6:0:0:0: [sde] Attached SCSI removable disk
[ 49.672451] sd 6:0:0:4: [sdi] Attached SCSI removable disk
[ 49.674104] sd 6:0:0:3: [sdh] Attached SCSI removable disk
[ 49.674835] sd 6:0:0:2: [sdg] Attached SCSI removable disk
[ 49.675779] sd 6:0:0:1: [sdf] Attached SCSI removable disk
[ 49.706187] ezkey 0003:0518:0002.0001: input,hidraw4: USB HID v1.10 Keyboard [USB-compliant keyboard] on usb-0000:00:14.0-5/input0
[ 49.706424] input: USB-compliant keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.1/0003:0518:0002.0002/input/input19
[ 49.758361] ezkey 0003:0518:0002.0002: input,hidraw5: USB HID v1.10 Device [USB-compliant keyboard] on usb-0000:00:14.0-5/input1
[ 49.761694] mousedev: PS/2 mouse device common for all mice
[ 73.145505] random: crng init done
[ 73.145512] random: 7 urandom warning(s) missed due to ratelimiting
[ 73.405583] kauditd_printk_skb: 37 callbacks suppressed
[ 1615.129348] r8169 0000:03:00.0: invalid short VPD tag 00 at offset 1
[-- Attachment #5: lshw.txt --]
[-- Type: text/plain, Size: 27818 bytes --]
sohn
description: Desktop Computer
product: All Series (All)
vendor: ASUS
version: System Version
serial: System Serial Number
width: 64 bits
capabilities: smbios-2.7 dmi-2.7 vsyscall32
configuration: administrator_password=disabled boot=normal chassis=desktop family=ASUS MB frontpanel_password=disabled keyboard_password=disabled power-on_password=disabled sku=All uuid=20E12E1B-DAD7-DD11-8411-382C4AE91CF9
*-core
description: Motherboard
product: B85M-G
vendor: ASUSTeK COMPUTER INC.
physical id: 0
version: Rev X.0x
serial: 140932908502540
slot: To be filled by O.E.M.
*-firmware
description: BIOS
vendor: American Megatrends Inc.
physical id: 0
version: 2501
date: 07/22/2015
size: 64KiB
capacity: 8128KiB
capabilities: pci apm upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer acpi usb biosbootspecification uefi
*-memory:0 UNCLAIMED
physical id: 1
*-bank UNCLAIMED
description: DIMM DDR3 Synchronous 1600 MHz (0,6 ns)
product: KHX1600C10D3/8G
vendor: Kingston
physical id: 0
serial: 2504F861
slot: ChannelA-DIMM0
size: 8GiB
width: 64 bits
clock: 1600MHz (0.6ns)
*-memory:1
description: System Memory
physical id: 3c
slot: System board or motherboard
*-bank:0
description: DIMM [empty]
product: [Empty]
vendor: [Empty]
physical id: 0
serial: [Empty]
slot: ChannelA-DIMM1
*-bank:1
description: DIMM DDR3 Synchronous 1600 MHz (0,6 ns)
product: KHX1600C10D3/8G
vendor: Kingston
physical id: 1
serial: 2504FC61
slot: ChannelB-DIMM0
size: 8GiB
width: 64 bits
clock: 1600MHz (0.6ns)
*-bank:2
description: DIMM [empty]
product: [Empty]
vendor: [Empty]
physical id: 2
serial: [Empty]
slot: ChannelB-DIMM1
*-cache:0
description: L1 cache
physical id: 43
slot: CPU Internal L1
size: 256KiB
capacity: 256KiB
capabilities: internal write-back
configuration: level=1
*-cache:1
description: L2 cache
physical id: 44
slot: CPU Internal L2
size: 1MiB
capacity: 1MiB
capabilities: internal write-back unified
configuration: level=2
*-cache:2
description: L3 cache
physical id: 45
slot: CPU Internal L3
size: 6MiB
capacity: 6MiB
capabilities: internal write-back unified
configuration: level=3
*-cpu
description: CPU
product: Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
vendor: Intel Corp.
physical id: 49
bus info: cpu@0
version: Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
slot: SOCKET 1150
size: 1809MHz
capacity: 3900MHz
width: 64 bits
clock: 100MHz
capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts flush_l1d cpufreq
configuration: cores=4 enabledcores=4 threads=4
*-memory:2 UNCLAIMED
physical id: 2
*-memory:3 UNCLAIMED
physical id: 3
*-pci
description: Host bridge
product: 4th Gen Core Processor DRAM Controller
vendor: Intel Corporation
physical id: 100
bus info: pci@0000:00:00.0
version: 06
width: 32 bits
clock: 33MHz
configuration: driver=hsw_uncore
resources: irq:0
*-pci:0
description: PCI bridge
product: Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller
vendor: Intel Corporation
physical id: 1
bus info: pci@0000:00:01.0
version: 06
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:24 ioport:e000(size=4096) memory:f7e00000-f7efffff ioport:e0000000(size=270532608)
*-display
description: VGA compatible controller
product: Advanced Micro Devices, Inc. [AMD/ATI]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:01:00.0
version: cf
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
configuration: driver=amdgpu latency=0
resources: irq:29 memory:e0000000-efffffff memory:f0000000-f01fffff ioport:e000(size=256) memory:f7e00000-f7e3ffff memory:c0000-dffff
*-multimedia
description: Audio device
product: Advanced Micro Devices, Inc. [AMD/ATI]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0.1
bus info: pci@0000:01:00.1
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi bus_master cap_list
configuration: driver=snd_hda_intel latency=0
resources: irq:32 memory:f7e60000-f7e63fff
*-usb:0
description: USB controller
product: 8 Series/C220 Series Chipset Family USB xHCI
vendor: Intel Corporation
physical id: 14
bus info: pci@0000:00:14.0
version: 05
width: 64 bits
clock: 33MHz
capabilities: pm msi xhci bus_master cap_list
configuration: driver=xhci_hcd latency=0
resources: irq:30 memory:f7f00000-f7f0ffff
*-usbhost:0
product: xHCI Host Controller
vendor: Linux 4.19.0-rc3 xhci-hcd
physical id: 0
bus info: usb@1
logical name: usb1
version: 4.19
capabilities: usb-2.00
configuration: driver=hub slots=12 speed=480Mbit/s
*-usb:0
description: USB hub
product: USB2.0 Hub
vendor: GenesysLogic
physical id: 2
bus info: usb@1:2
version: 92.23
capabilities: usb-2.10
configuration: driver=hub maxpower=100mA slots=4 speed=480Mbit/s
*-usb:1
description: USB hub
product: USB 2.0 Hub
vendor: Terminus Technology Inc.
physical id: 3
bus info: usb@1:3
version: 1.11
capabilities: usb-2.00
configuration: driver=hub maxpower=100mA slots=4 speed=480Mbit/s
*-usb
description: Keyboard
product: Yubikey NEO OTP+U2F+CCID
vendor: Yubico
physical id: 2
bus info: usb@1:3.2
version: 3.49
capabilities: usb-2.00
configuration: driver=usbhid maxpower=30mA speed=12Mbit/s
*-usb:2
description: Keyboard
product: USB-compliant keyboard
vendor: EzKEY Corp.
physical id: 5
bus info: usb@1:5
version: 1.00
capabilities: usb-1.10
configuration: driver=usbhid maxpower=100mA speed=1Mbit/s
*-usb:3
description: Mouse
product: Gaming Mouse G300
vendor: Logitech
physical id: 6
bus info: usb@1:6
version: 70.02
capabilities: usb-2.00
configuration: driver=usbhid maxpower=200mA speed=12Mbit/s
*-usbhost:1
product: xHCI Host Controller
vendor: Linux 4.19.0-rc3 xhci-hcd
physical id: 1
bus info: usb@2
logical name: usb2
version: 4.19
capabilities: usb-3.00
configuration: driver=hub slots=6 speed=5000Mbit/s
*-usb:0
description: Mass storage device
product: USB Storage
vendor: Generic
physical id: 1
bus info: usb@2:1
logical name: scsi6
version: 12.03
serial: 000000001203
capabilities: usb-3.00 scsi emulated scsi-host
configuration: driver=usb-storage maxpower=896mA speed=5000Mbit/s
*-disk:0
description: SCSI Disk
product: STORAGE DEVICE
vendor: Generic
physical id: 0.0.0
bus info: scsi@6:0.0.0
logical name: /dev/sde
version: 1203
serial: 000000001203
capabilities: removable
configuration: ansiversion=6 logicalsectorsize=512 sectorsize=512
*-medium
physical id: 0
logical name: /dev/sde
*-disk:1
description: SCSI Disk
product: STORAGE DEVICE
vendor: Generic
physical id: 0.0.1
bus info: scsi@6:0.0.1
logical name: /dev/sdf
version: 1203
serial: 000000001203
capabilities: removable
configuration: ansiversion=6 logicalsectorsize=512 sectorsize=512
*-medium
physical id: 0
logical name: /dev/sdf
*-disk:2
description: SCSI Disk
product: STORAGE DEVICE
vendor: Generic
physical id: 0.0.2
bus info: scsi@6:0.0.2
logical name: /dev/sdg
version: 1203
serial: 000000001203
capabilities: removable
configuration: ansiversion=6 logicalsectorsize=512 sectorsize=512
*-medium
physical id: 0
logical name: /dev/sdg
*-disk:3
description: SCSI Disk
product: STORAGE DEVICE
vendor: Generic
physical id: 0.0.3
bus info: scsi@6:0.0.3
logical name: /dev/sdh
version: 1203
serial: 000000001203
capabilities: removable
configuration: ansiversion=6 logicalsectorsize=512 sectorsize=512
*-medium
physical id: 0
logical name: /dev/sdh
*-disk:4
description: SCSI Disk
product: STORAGE DEVICE
vendor: Generic
physical id: 0.0.4
bus info: scsi@6:0.0.4
logical name: /dev/sdi
version: 1203
serial: 000000001203
capabilities: removable
configuration: ansiversion=6 logicalsectorsize=512 sectorsize=512
*-medium
physical id: 0
logical name: /dev/sdi
*-usb:1
description: USB hub
product: USB3.0 Hub
vendor: GenesysLogic
physical id: 2
bus info: usb@2:2
version: 92.23
capabilities: usb-3.00
configuration: driver=hub slots=4 speed=5000Mbit/s
*-communication UNCLAIMED
description: Communication controller
product: 8 Series/C220 Series Chipset Family MEI Controller #1
vendor: Intel Corporation
physical id: 16
bus info: pci@0000:00:16.0
version: 04
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration: latency=0
resources: memory:f7f1a000-f7f1a00f
*-usb:1
description: USB controller
product: 8 Series/C220 Series Chipset Family USB EHCI #2
vendor: Intel Corporation
physical id: 1a
bus info: pci@0000:00:1a.0
version: 05
width: 32 bits
clock: 33MHz
capabilities: pm debug ehci cap_list
configuration: driver=ehci-pci latency=0
resources: irq:20 memory:f7f18000-f7f183ff
*-usbhost
product: EHCI Host Controller
vendor: Linux 4.19.0-rc3 ehci_hcd
physical id: 1
bus info: usb@3
logical name: usb3
version: 4.19
capabilities: usb-2.00
configuration: driver=hub slots=2 speed=480Mbit/s
*-usb UNCLAIMED
description: USB hub
vendor: Intel Corp.
physical id: 1
bus info: usb@3:1
version: 0.05
capabilities: usb-2.00
configuration: speed=480Mbit/s
*-multimedia
description: Audio device
product: 8 Series/C220 Series Chipset High Definition Audio Controller
vendor: Intel Corporation
physical id: 1b
bus info: pci@0000:00:1b.0
version: 05
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list
configuration: driver=snd_hda_intel latency=0
resources: irq:31 memory:f7f10000-f7f13fff
*-pci:1
description: PCI bridge
product: 8 Series/C220 Series Chipset Family PCI Express Root Port #1
vendor: Intel Corporation
physical id: 1c
bus info: pci@0000:00:1c.0
version: d5
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:25 ioport:2000(size=4096) memory:f0400000-f05fffff ioport:f0600000(size=2097152)
*-pci:2
description: PCI bridge
product: 8 Series/C220 Series Chipset Family PCI Express Root Port #3
vendor: Intel Corporation
physical id: 1c.2
bus info: pci@0000:00:1c.2
version: d5
width: 32 bits
clock: 33MHz
capabilities: pci pciexpress msi pm normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:26 ioport:d000(size=4096) memory:f7d00000-f7dfffff ioport:f0300000(size=1048576)
*-network
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:03:00.0
logical name: enp3s0
version: 0c
serial: 38:2c:4a:e9:1c:f9
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp aui bnc mii fibre 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 duplex=full firmware=rtl8168g-2_0.0.1 02/06/13 ip=192.168.0.2 latency=0 link=yes multicast=yes port=MII speed=1Gbit/s
resources: irq:28 ioport:d000(size=256) memory:f7d00000-f7d00fff memory:f0300000-f0303fff
*-usb:2
description: USB controller
product: 8 Series/C220 Series Chipset Family USB EHCI #1
vendor: Intel Corporation
physical id: 1d
bus info: pci@0000:00:1d.0
version: 05
width: 32 bits
clock: 33MHz
capabilities: pm debug ehci cap_list
configuration: driver=ehci-pci latency=0
resources: irq:23 memory:f7f17000-f7f173ff
*-usbhost
product: EHCI Host Controller
vendor: Linux 4.19.0-rc3 ehci_hcd
physical id: 1
bus info: usb@4
logical name: usb4
version: 4.19
capabilities: usb-2.00
configuration: driver=hub slots=2 speed=480Mbit/s
*-usb UNCLAIMED
description: USB hub
vendor: Intel Corp.
physical id: 1
bus info: usb@4:1
version: 0.05
capabilities: usb-2.00
configuration: speed=480Mbit/s
*-isa
description: ISA bridge
product: B85 Express LPC Controller
vendor: Intel Corporation
physical id: 1f
bus info: pci@0000:00:1f.0
version: 05
width: 32 bits
clock: 33MHz
capabilities: isa bus_master cap_list
configuration: latency=0
*-storage
description: SATA controller
product: 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
vendor: Intel Corporation
physical id: 1f.2
bus info: pci@0000:00:1f.2
version: 05
width: 32 bits
clock: 66MHz
capabilities: storage msi pm ahci_1.0 bus_master cap_list
configuration: driver=ahci latency=0
resources: irq:27 ioport:f070(size=8) ioport:f060(size=4) ioport:f050(size=8) ioport:f040(size=4) ioport:f020(size=32) memory:f7f16000-f7f167ff
*-serial UNCLAIMED
description: SMBus
product: 8 Series/C220 Series Chipset Family SMBus Controller
vendor: Intel Corporation
physical id: 1f.3
bus info: pci@0000:00:1f.3
version: 05
width: 64 bits
clock: 33MHz
configuration: latency=0
resources: memory:f7f15000-f7f150ff ioport:f000(size=32)
*-scsi:0
physical id: 4
logical name: scsi0
capabilities: emulated
*-disk
description: ATA Disk
product: Samsung SSD 840
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: DB6Q
serial: S1D5NSBDA16564J
size: 111GiB (120GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=512 signature=000150a4
*-volume:0
description: EXT4 volume
vendor: Linux
physical id: 1
bus info: scsi@0:0.0.0,1
logical name: /dev/sda1
logical name: /boot
version: 1.0
serial: b989d5fe-3713-4000-8b0f-67e11bfa3046
size: 1000MiB
capacity: 1000MiB
capabilities: primary bootable journaled extended_attributes large_files huge_files dir_nlink extents ext4 ext2 initialized
configuration: created=2015-05-30 12:40:00 filesystem=ext4 label=sohnBoot lastmountpoint=/boot modified=2018-09-14 13:19:21 mount.fstype=ext4 mount.options=rw,nosuid,nodev,noexec,noatime mounted=2018-09-14 12:45:27 state=mounted
*-volume:1
description: Linux filesystem partition
physical id: 2
bus info: scsi@0:0.0.0,2
logical name: /dev/sda2
serial: 4ceb3ecf-219f-4743-9dff-505356f202cd
size: 97GiB
capacity: 97GiB
width: 256 bits
capabilities: primary encrypted luks initialized
configuration: bits=256 cipher=aes filesystem=luks hash=sha512 mode=xts-plain64 version=1
*-scsi:1
physical id: 5
logical name: scsi1
capabilities: emulated
*-disk
description: ATA Disk
product: WDC WD10EZEX-00M
vendor: Western Digital
physical id: 0.0.0
bus info: scsi@1:0.0.0
logical name: /dev/sdb
version: 1A01
serial: WD-WCC3F3157921
size: 931GiB (1TB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=0001beff
*-volume:0
description: Windows NTFS volume
physical id: 1
bus info: scsi@1:0.0.0,1
logical name: /dev/sdb1
version: 3.1
serial: 58f36ba6-1173-f84e-8c57-46da51ab88cd
size: 98MiB
capacity: 100MiB
capabilities: primary bootable ntfs initialized
configuration: clustersize=4096 created=2015-04-24 16:21:18 filesystem=ntfs label=System-reserviert state=clean
*-volume:1
description: Windows NTFS volume
physical id: 2
bus info: scsi@1:0.0.0,2
logical name: /dev/sdb2
version: 3.1
serial: d614e8f8-845e-5344-8279-7d3793529b34
size: 48GiB
capacity: 48GiB
capabilities: primary ntfs initialized
configuration: clustersize=4096 created=2015-04-24 16:21:35 filesystem=ntfs label=WIN7_SYS modified_by_chkdsk=true mounted_on_nt4=true resize_log_file=true state=dirty upgrade_on_mount=true
*-volume:2
description: Extended partition
physical id: 3
bus info: scsi@1:0.0.0,3
logical name: /dev/sdb3
size: 736GiB
capacity: 736GiB
capabilities: primary extended partitioned partitioned:extended
*-scsi:2
physical id: 6
logical name: scsi2
capabilities: emulated
*-disk
description: ATA Disk
product: SAMSUNG HD502HJ
physical id: 0.0.0
bus info: scsi@2:0.0.0
logical name: /dev/sdc
version: 0001
serial: S20BJA0B186451
size: 465GiB (500GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=512 signature=0007547f
*-volume:0
description: Linux filesystem partition
physical id: 1
bus info: scsi@2:0.0.0,1
logical name: /dev/sdc1
capacity: 24GiB
capabilities: primary
*-volume:1
description: Linux filesystem partition
physical id: 2
bus info: scsi@2:0.0.0,2
logical name: /dev/sdc2
capacity: 200MiB
capabilities: primary
*-volume:2
description: Extended partition
physical id: 3
bus info: scsi@2:0.0.0,3
logical name: /dev/sdc3
size: 441GiB
capacity: 441GiB
capabilities: primary extended partitioned partitioned:extended
*-logicalvolume:0
description: W95 FAT32 (LBA) partition
physical id: 5
logical name: /dev/sdc5
capacity: 48GiB
*-logicalvolume:1
description: HPFS/NTFS partition
physical id: 6
logical name: /dev/sdc6
capacity: 146GiB
*-scsi:3
physical id: 7
logical name: scsi3
capabilities: emulated
*-disk
description: ATA Disk
product: SanDisk SDSSDHII
physical id: 0.0.0
bus info: scsi@3:0.0.0
logical name: /dev/sdd
version: 00RL
serial: 170913400352
size: 223GiB (240GB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: ansiversion=5 guid=c0236aac-9762-4e28-85e2-84b8f5fa7e68 logicalsectorsize=512 sectorsize=512
*-volume
description: Windows NTFS volume
vendor: Windows
physical id: 1
bus info: scsi@3:0.0.0,1
logical name: /dev/sdd1
version: 3.1
serial: de93f08f-0285-5643-bfd7-2f4eab57f6c6
size: 223GiB
capacity: 223GiB
capabilities: ntfs initialized
configuration: clustersize=4096 created=2018-01-16 17:50:34 filesystem=ntfs label=SANDISK_UII_SSD state=clean
*-scsi:4
physical id: 8
logical name: scsi4
capabilities: emulated
*-cdrom
description: DVD-RAM writer
product: DVDRAM GH24NSC0
vendor: HL-DT-ST
physical id: 0.0.0
bus info: scsi@4:0.0.0
logical name: /dev/cdrom
logical name: /dev/cdrw
logical name: /dev/dvd
logical name: /dev/dvdrw
logical name: /dev/sr0
version: LK00
capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
configuration: ansiversion=5 status=nodisc
*-power UNCLAIMED
description: To Be Filled By O.E.M.
product: To Be Filled By O.E.M.
vendor: To Be Filled By O.E.M.
physical id: 1
version: To Be Filled By O.E.M.
serial: To Be Filled By O.E.M.
capacity: 32768mWh
^ permalink raw reply
* [bpf-next, v4 5/5] selftests/bpf: test bpf flow dissection
From: Petar Penkov @ 2018-09-14 14:46 UTC (permalink / raw)
To: netdev
Cc: davem, ast, daniel, simon.horman, ecree, songliubraving, tom,
Petar Penkov, Willem de Bruijn
In-Reply-To: <20180914144622.16436-1-peterpenkov96@gmail.com>
From: Petar Penkov <ppenkov@google.com>
Adds a test that sends different types of packets over multiple
tunnels and verifies that valid packets are dissected correctly. To do
so, a tc-flower rule is added to drop packets on UDP src port 9, and
packets are sent from ports 8, 9, and 10. Only the packets on port 9
should be dropped. Because tc-flower relies on the flow dissector to
match flows, correct classification demonstrates correct dissection.
Also add support logic to load the BPF program and to inject the test
packets.
Signed-off-by: Petar Penkov <ppenkov@google.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
---
tools/testing/selftests/bpf/.gitignore | 2 +
tools/testing/selftests/bpf/Makefile | 6 +-
tools/testing/selftests/bpf/config | 1 +
.../selftests/bpf/flow_dissector_load.c | 140 ++++
.../selftests/bpf/test_flow_dissector.c | 782 ++++++++++++++++++
.../selftests/bpf/test_flow_dissector.sh | 115 +++
tools/testing/selftests/bpf/with_addr.sh | 54 ++
tools/testing/selftests/bpf/with_tunnels.sh | 36 +
8 files changed, 1134 insertions(+), 2 deletions(-)
create mode 100644 tools/testing/selftests/bpf/flow_dissector_load.c
create mode 100644 tools/testing/selftests/bpf/test_flow_dissector.c
create mode 100755 tools/testing/selftests/bpf/test_flow_dissector.sh
create mode 100755 tools/testing/selftests/bpf/with_addr.sh
create mode 100755 tools/testing/selftests/bpf/with_tunnels.sh
diff --git a/tools/testing/selftests/bpf/.gitignore b/tools/testing/selftests/bpf/.gitignore
index 4d789c1e5167..8a60c9b9892d 100644
--- a/tools/testing/selftests/bpf/.gitignore
+++ b/tools/testing/selftests/bpf/.gitignore
@@ -23,3 +23,5 @@ test_skb_cgroup_id_user
test_socket_cookie
test_cgroup_storage
test_select_reuseport
+test_flow_dissector
+flow_dissector_load
diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index e65f50f9185e..fd3851d5c079 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -47,10 +47,12 @@ TEST_PROGS := test_kmod.sh \
test_tunnel.sh \
test_lwt_seg6local.sh \
test_lirc_mode2.sh \
- test_skb_cgroup_id.sh
+ test_skb_cgroup_id.sh \
+ test_flow_dissector.sh
# Compile but not part of 'make run_tests'
-TEST_GEN_PROGS_EXTENDED = test_libbpf_open test_sock_addr test_skb_cgroup_id_user
+TEST_GEN_PROGS_EXTENDED = test_libbpf_open test_sock_addr test_skb_cgroup_id_user \
+ flow_dissector_load test_flow_dissector
include ../lib.mk
diff --git a/tools/testing/selftests/bpf/config b/tools/testing/selftests/bpf/config
index b4994a94968b..3655508f95fd 100644
--- a/tools/testing/selftests/bpf/config
+++ b/tools/testing/selftests/bpf/config
@@ -18,3 +18,4 @@ CONFIG_CRYPTO_HMAC=m
CONFIG_CRYPTO_SHA256=m
CONFIG_VXLAN=y
CONFIG_GENEVE=y
+CONFIG_NET_CLS_FLOWER=m
diff --git a/tools/testing/selftests/bpf/flow_dissector_load.c b/tools/testing/selftests/bpf/flow_dissector_load.c
new file mode 100644
index 000000000000..d3273b5b3173
--- /dev/null
+++ b/tools/testing/selftests/bpf/flow_dissector_load.c
@@ -0,0 +1,140 @@
+// SPDX-License-Identifier: GPL-2.0
+#include <error.h>
+#include <errno.h>
+#include <getopt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <bpf/bpf.h>
+#include <bpf/libbpf.h>
+
+const char *cfg_pin_path = "/sys/fs/bpf/flow_dissector";
+const char *cfg_map_name = "jmp_table";
+bool cfg_attach = true;
+char *cfg_section_name;
+char *cfg_path_name;
+
+static void load_and_attach_program(void)
+{
+ struct bpf_program *prog, *main_prog;
+ struct bpf_map *prog_array;
+ int i, fd, prog_fd, ret;
+ struct bpf_object *obj;
+ int prog_array_fd;
+
+ ret = bpf_prog_load(cfg_path_name, BPF_PROG_TYPE_FLOW_DISSECTOR, &obj,
+ &prog_fd);
+ if (ret)
+ error(1, 0, "bpf_prog_load %s", cfg_path_name);
+
+ main_prog = bpf_object__find_program_by_title(obj, cfg_section_name);
+ if (!main_prog)
+ error(1, 0, "bpf_object__find_program_by_title %s",
+ cfg_section_name);
+
+ prog_fd = bpf_program__fd(main_prog);
+ if (prog_fd < 0)
+ error(1, 0, "bpf_program__fd");
+
+ prog_array = bpf_object__find_map_by_name(obj, cfg_map_name);
+ if (!prog_array)
+ error(1, 0, "bpf_object__find_map_by_name %s", cfg_map_name);
+
+ prog_array_fd = bpf_map__fd(prog_array);
+ if (prog_array_fd < 0)
+ error(1, 0, "bpf_map__fd %s", cfg_map_name);
+
+ i = 0;
+ bpf_object__for_each_program(prog, obj) {
+ fd = bpf_program__fd(prog);
+ if (fd < 0)
+ error(1, 0, "bpf_program__fd");
+
+ if (fd != prog_fd) {
+ printf("%d: %s\n", i, bpf_program__title(prog, false));
+ bpf_map_update_elem(prog_array_fd, &i, &fd, BPF_ANY);
+ ++i;
+ }
+ }
+
+ ret = bpf_prog_attach(prog_fd, 0 /* Ignore */, BPF_FLOW_DISSECTOR, 0);
+ if (ret)
+ error(1, 0, "bpf_prog_attach %s", cfg_path_name);
+
+ ret = bpf_object__pin(obj, cfg_pin_path);
+ if (ret)
+ error(1, 0, "bpf_object__pin %s", cfg_pin_path);
+
+}
+
+static void detach_program(void)
+{
+ char command[64];
+ int ret;
+
+ ret = bpf_prog_detach(0, BPF_FLOW_DISSECTOR);
+ if (ret)
+ error(1, 0, "bpf_prog_detach");
+
+ /* To unpin, it is necessary and sufficient to just remove this dir */
+ sprintf(command, "rm -r %s", cfg_pin_path);
+ ret = system(command);
+ if (ret)
+ error(1, errno, command);
+}
+
+static void parse_opts(int argc, char **argv)
+{
+ bool attach = false;
+ bool detach = false;
+ int c;
+
+ while ((c = getopt(argc, argv, "adp:s:")) != -1) {
+ switch (c) {
+ case 'a':
+ if (detach)
+ error(1, 0, "attach/detach are exclusive");
+ attach = true;
+ break;
+ case 'd':
+ if (attach)
+ error(1, 0, "attach/detach are exclusive");
+ detach = true;
+ break;
+ case 'p':
+ if (cfg_path_name)
+ error(1, 0, "only one prog name can be given");
+
+ cfg_path_name = optarg;
+ break;
+ case 's':
+ if (cfg_section_name)
+ error(1, 0, "only one section can be given");
+
+ cfg_section_name = optarg;
+ break;
+ }
+ }
+
+ if (detach)
+ cfg_attach = false;
+
+ if (cfg_attach && !cfg_path_name)
+ error(1, 0, "must provide a path to the BPF program");
+
+ if (cfg_attach && !cfg_section_name)
+ error(1, 0, "must provide a section name");
+}
+
+int main(int argc, char **argv)
+{
+ parse_opts(argc, argv);
+ if (cfg_attach)
+ load_and_attach_program();
+ else
+ detach_program();
+ return 0;
+}
diff --git a/tools/testing/selftests/bpf/test_flow_dissector.c b/tools/testing/selftests/bpf/test_flow_dissector.c
new file mode 100644
index 000000000000..12b784afba31
--- /dev/null
+++ b/tools/testing/selftests/bpf/test_flow_dissector.c
@@ -0,0 +1,782 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Inject packets with all sorts of encapsulation into the kernel.
+ *
+ * IPv4/IPv6 outer layer 3
+ * GRE/GUE/BARE outer layer 4, where bare is IPIP/SIT/IPv4-in-IPv6/..
+ * IPv4/IPv6 inner layer 3
+ */
+
+#define _GNU_SOURCE
+
+#include <stddef.h>
+#include <arpa/inet.h>
+#include <asm/byteorder.h>
+#include <error.h>
+#include <errno.h>
+#include <linux/if_packet.h>
+#include <linux/if_ether.h>
+#include <linux/if_packet.h>
+#include <linux/ipv6.h>
+#include <netinet/ip.h>
+#include <netinet/in.h>
+#include <netinet/udp.h>
+#include <poll.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#define CFG_PORT_INNER 8000
+
+/* Add some protocol definitions that do not exist in userspace */
+
+struct grehdr {
+ uint16_t unused;
+ uint16_t protocol;
+} __attribute__((packed));
+
+struct guehdr {
+ union {
+ struct {
+#if defined(__LITTLE_ENDIAN_BITFIELD)
+ __u8 hlen:5,
+ control:1,
+ version:2;
+#elif defined (__BIG_ENDIAN_BITFIELD)
+ __u8 version:2,
+ control:1,
+ hlen:5;
+#else
+#error "Please fix <asm/byteorder.h>"
+#endif
+ __u8 proto_ctype;
+ __be16 flags;
+ };
+ __be32 word;
+ };
+};
+
+static uint8_t cfg_dsfield_inner;
+static uint8_t cfg_dsfield_outer;
+static uint8_t cfg_encap_proto;
+static bool cfg_expect_failure = false;
+static int cfg_l3_extra = AF_UNSPEC; /* optional SIT prefix */
+static int cfg_l3_inner = AF_UNSPEC;
+static int cfg_l3_outer = AF_UNSPEC;
+static int cfg_num_pkt = 10;
+static int cfg_num_secs = 0;
+static char cfg_payload_char = 'a';
+static int cfg_payload_len = 100;
+static int cfg_port_gue = 6080;
+static bool cfg_only_rx;
+static bool cfg_only_tx;
+static int cfg_src_port = 9;
+
+static char buf[ETH_DATA_LEN];
+
+#define INIT_ADDR4(name, addr4, port) \
+ static struct sockaddr_in name = { \
+ .sin_family = AF_INET, \
+ .sin_port = __constant_htons(port), \
+ .sin_addr.s_addr = __constant_htonl(addr4), \
+ };
+
+#define INIT_ADDR6(name, addr6, port) \
+ static struct sockaddr_in6 name = { \
+ .sin6_family = AF_INET6, \
+ .sin6_port = __constant_htons(port), \
+ .sin6_addr = addr6, \
+ };
+
+INIT_ADDR4(in_daddr4, INADDR_LOOPBACK, CFG_PORT_INNER)
+INIT_ADDR4(in_saddr4, INADDR_LOOPBACK + 2, 0)
+INIT_ADDR4(out_daddr4, INADDR_LOOPBACK, 0)
+INIT_ADDR4(out_saddr4, INADDR_LOOPBACK + 1, 0)
+INIT_ADDR4(extra_daddr4, INADDR_LOOPBACK, 0)
+INIT_ADDR4(extra_saddr4, INADDR_LOOPBACK + 1, 0)
+
+INIT_ADDR6(in_daddr6, IN6ADDR_LOOPBACK_INIT, CFG_PORT_INNER)
+INIT_ADDR6(in_saddr6, IN6ADDR_LOOPBACK_INIT, 0)
+INIT_ADDR6(out_daddr6, IN6ADDR_LOOPBACK_INIT, 0)
+INIT_ADDR6(out_saddr6, IN6ADDR_LOOPBACK_INIT, 0)
+INIT_ADDR6(extra_daddr6, IN6ADDR_LOOPBACK_INIT, 0)
+INIT_ADDR6(extra_saddr6, IN6ADDR_LOOPBACK_INIT, 0)
+
+static unsigned long util_gettime(void)
+{
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ return (tv.tv_sec * 1000) + (tv.tv_usec / 1000);
+}
+
+static void util_printaddr(const char *msg, struct sockaddr *addr)
+{
+ unsigned long off = 0;
+ char nbuf[INET6_ADDRSTRLEN];
+
+ switch (addr->sa_family) {
+ case PF_INET:
+ off = __builtin_offsetof(struct sockaddr_in, sin_addr);
+ break;
+ case PF_INET6:
+ off = __builtin_offsetof(struct sockaddr_in6, sin6_addr);
+ break;
+ default:
+ error(1, 0, "printaddr: unsupported family %u\n",
+ addr->sa_family);
+ }
+
+ if (!inet_ntop(addr->sa_family, ((void *) addr) + off, nbuf,
+ sizeof(nbuf)))
+ error(1, errno, "inet_ntop");
+
+ fprintf(stderr, "%s: %s\n", msg, nbuf);
+}
+
+static unsigned long add_csum_hword(const uint16_t *start, int num_u16)
+{
+ unsigned long sum = 0;
+ int i;
+
+ for (i = 0; i < num_u16; i++)
+ sum += start[i];
+
+ return sum;
+}
+
+static uint16_t build_ip_csum(const uint16_t *start, int num_u16,
+ unsigned long sum)
+{
+ sum += add_csum_hword(start, num_u16);
+
+ while (sum >> 16)
+ sum = (sum & 0xffff) + (sum >> 16);
+
+ return ~sum;
+}
+
+static void build_ipv4_header(void *header, uint8_t proto,
+ uint32_t src, uint32_t dst,
+ int payload_len, uint8_t tos)
+{
+ struct iphdr *iph = header;
+
+ iph->ihl = 5;
+ iph->version = 4;
+ iph->tos = tos;
+ iph->ttl = 8;
+ iph->tot_len = htons(sizeof(*iph) + payload_len);
+ iph->id = htons(1337);
+ iph->protocol = proto;
+ iph->saddr = src;
+ iph->daddr = dst;
+ iph->check = build_ip_csum((void *) iph, iph->ihl << 1, 0);
+}
+
+static void ipv6_set_dsfield(struct ipv6hdr *ip6h, uint8_t dsfield)
+{
+ uint16_t val, *ptr = (uint16_t *)ip6h;
+
+ val = ntohs(*ptr);
+ val &= 0xF00F;
+ val |= ((uint16_t) dsfield) << 4;
+ *ptr = htons(val);
+}
+
+static void build_ipv6_header(void *header, uint8_t proto,
+ struct sockaddr_in6 *src,
+ struct sockaddr_in6 *dst,
+ int payload_len, uint8_t dsfield)
+{
+ struct ipv6hdr *ip6h = header;
+
+ ip6h->version = 6;
+ ip6h->payload_len = htons(payload_len);
+ ip6h->nexthdr = proto;
+ ip6h->hop_limit = 8;
+ ipv6_set_dsfield(ip6h, dsfield);
+
+ memcpy(&ip6h->saddr, &src->sin6_addr, sizeof(ip6h->saddr));
+ memcpy(&ip6h->daddr, &dst->sin6_addr, sizeof(ip6h->daddr));
+}
+
+static uint16_t build_udp_v4_csum(const struct iphdr *iph,
+ const struct udphdr *udph,
+ int num_words)
+{
+ unsigned long pseudo_sum;
+ int num_u16 = sizeof(iph->saddr); /* halfwords: twice byte len */
+
+ pseudo_sum = add_csum_hword((void *) &iph->saddr, num_u16);
+ pseudo_sum += htons(IPPROTO_UDP);
+ pseudo_sum += udph->len;
+ return build_ip_csum((void *) udph, num_words, pseudo_sum);
+}
+
+static uint16_t build_udp_v6_csum(const struct ipv6hdr *ip6h,
+ const struct udphdr *udph,
+ int num_words)
+{
+ unsigned long pseudo_sum;
+ int num_u16 = sizeof(ip6h->saddr); /* halfwords: twice byte len */
+
+ pseudo_sum = add_csum_hword((void *) &ip6h->saddr, num_u16);
+ pseudo_sum += htons(ip6h->nexthdr);
+ pseudo_sum += ip6h->payload_len;
+ return build_ip_csum((void *) udph, num_words, pseudo_sum);
+}
+
+static void build_udp_header(void *header, int payload_len,
+ uint16_t dport, int family)
+{
+ struct udphdr *udph = header;
+ int len = sizeof(*udph) + payload_len;
+
+ udph->source = htons(cfg_src_port);
+ udph->dest = htons(dport);
+ udph->len = htons(len);
+ udph->check = 0;
+ if (family == AF_INET)
+ udph->check = build_udp_v4_csum(header - sizeof(struct iphdr),
+ udph, len >> 1);
+ else
+ udph->check = build_udp_v6_csum(header - sizeof(struct ipv6hdr),
+ udph, len >> 1);
+}
+
+static void build_gue_header(void *header, uint8_t proto)
+{
+ struct guehdr *gueh = header;
+
+ gueh->proto_ctype = proto;
+}
+
+static void build_gre_header(void *header, uint16_t proto)
+{
+ struct grehdr *greh = header;
+
+ greh->protocol = htons(proto);
+}
+
+static int l3_length(int family)
+{
+ if (family == AF_INET)
+ return sizeof(struct iphdr);
+ else
+ return sizeof(struct ipv6hdr);
+}
+
+static int build_packet(void)
+{
+ int ol3_len = 0, ol4_len = 0, il3_len = 0, il4_len = 0;
+ int el3_len = 0;
+
+ if (cfg_l3_extra)
+ el3_len = l3_length(cfg_l3_extra);
+
+ /* calculate header offsets */
+ if (cfg_encap_proto) {
+ ol3_len = l3_length(cfg_l3_outer);
+
+ if (cfg_encap_proto == IPPROTO_GRE)
+ ol4_len = sizeof(struct grehdr);
+ else if (cfg_encap_proto == IPPROTO_UDP)
+ ol4_len = sizeof(struct udphdr) + sizeof(struct guehdr);
+ }
+
+ il3_len = l3_length(cfg_l3_inner);
+ il4_len = sizeof(struct udphdr);
+
+ if (el3_len + ol3_len + ol4_len + il3_len + il4_len + cfg_payload_len >=
+ sizeof(buf))
+ error(1, 0, "packet too large\n");
+
+ /*
+ * Fill packet from inside out, to calculate correct checksums.
+ * But create ip before udp headers, as udp uses ip for pseudo-sum.
+ */
+ memset(buf + el3_len + ol3_len + ol4_len + il3_len + il4_len,
+ cfg_payload_char, cfg_payload_len);
+
+ /* add zero byte for udp csum padding */
+ buf[el3_len + ol3_len + ol4_len + il3_len + il4_len + cfg_payload_len] = 0;
+
+ switch (cfg_l3_inner) {
+ case PF_INET:
+ build_ipv4_header(buf + el3_len + ol3_len + ol4_len,
+ IPPROTO_UDP,
+ in_saddr4.sin_addr.s_addr,
+ in_daddr4.sin_addr.s_addr,
+ il4_len + cfg_payload_len,
+ cfg_dsfield_inner);
+ break;
+ case PF_INET6:
+ build_ipv6_header(buf + el3_len + ol3_len + ol4_len,
+ IPPROTO_UDP,
+ &in_saddr6, &in_daddr6,
+ il4_len + cfg_payload_len,
+ cfg_dsfield_inner);
+ break;
+ }
+
+ build_udp_header(buf + el3_len + ol3_len + ol4_len + il3_len,
+ cfg_payload_len, CFG_PORT_INNER, cfg_l3_inner);
+
+ if (!cfg_encap_proto)
+ return il3_len + il4_len + cfg_payload_len;
+
+ switch (cfg_l3_outer) {
+ case PF_INET:
+ build_ipv4_header(buf + el3_len, cfg_encap_proto,
+ out_saddr4.sin_addr.s_addr,
+ out_daddr4.sin_addr.s_addr,
+ ol4_len + il3_len + il4_len + cfg_payload_len,
+ cfg_dsfield_outer);
+ break;
+ case PF_INET6:
+ build_ipv6_header(buf + el3_len, cfg_encap_proto,
+ &out_saddr6, &out_daddr6,
+ ol4_len + il3_len + il4_len + cfg_payload_len,
+ cfg_dsfield_outer);
+ break;
+ }
+
+ switch (cfg_encap_proto) {
+ case IPPROTO_UDP:
+ build_gue_header(buf + el3_len + ol3_len + ol4_len -
+ sizeof(struct guehdr),
+ cfg_l3_inner == PF_INET ? IPPROTO_IPIP
+ : IPPROTO_IPV6);
+ build_udp_header(buf + el3_len + ol3_len,
+ sizeof(struct guehdr) + il3_len + il4_len +
+ cfg_payload_len,
+ cfg_port_gue, cfg_l3_outer);
+ break;
+ case IPPROTO_GRE:
+ build_gre_header(buf + el3_len + ol3_len,
+ cfg_l3_inner == PF_INET ? ETH_P_IP
+ : ETH_P_IPV6);
+ break;
+ }
+
+ switch (cfg_l3_extra) {
+ case PF_INET:
+ build_ipv4_header(buf,
+ cfg_l3_outer == PF_INET ? IPPROTO_IPIP
+ : IPPROTO_IPV6,
+ extra_saddr4.sin_addr.s_addr,
+ extra_daddr4.sin_addr.s_addr,
+ ol3_len + ol4_len + il3_len + il4_len +
+ cfg_payload_len, 0);
+ break;
+ case PF_INET6:
+ build_ipv6_header(buf,
+ cfg_l3_outer == PF_INET ? IPPROTO_IPIP
+ : IPPROTO_IPV6,
+ &extra_saddr6, &extra_daddr6,
+ ol3_len + ol4_len + il3_len + il4_len +
+ cfg_payload_len, 0);
+ break;
+ }
+
+ return el3_len + ol3_len + ol4_len + il3_len + il4_len +
+ cfg_payload_len;
+}
+
+/* sender transmits encapsulated over RAW or unencap'd over UDP */
+static int setup_tx(void)
+{
+ int family, fd, ret;
+
+ if (cfg_l3_extra)
+ family = cfg_l3_extra;
+ else if (cfg_l3_outer)
+ family = cfg_l3_outer;
+ else
+ family = cfg_l3_inner;
+
+ fd = socket(family, SOCK_RAW, IPPROTO_RAW);
+ if (fd == -1)
+ error(1, errno, "socket tx");
+
+ if (cfg_l3_extra) {
+ if (cfg_l3_extra == PF_INET)
+ ret = connect(fd, (void *) &extra_daddr4,
+ sizeof(extra_daddr4));
+ else
+ ret = connect(fd, (void *) &extra_daddr6,
+ sizeof(extra_daddr6));
+ if (ret)
+ error(1, errno, "connect tx");
+ } else if (cfg_l3_outer) {
+ /* connect to destination if not encapsulated */
+ if (cfg_l3_outer == PF_INET)
+ ret = connect(fd, (void *) &out_daddr4,
+ sizeof(out_daddr4));
+ else
+ ret = connect(fd, (void *) &out_daddr6,
+ sizeof(out_daddr6));
+ if (ret)
+ error(1, errno, "connect tx");
+ } else {
+ /* otherwise using loopback */
+ if (cfg_l3_inner == PF_INET)
+ ret = connect(fd, (void *) &in_daddr4,
+ sizeof(in_daddr4));
+ else
+ ret = connect(fd, (void *) &in_daddr6,
+ sizeof(in_daddr6));
+ if (ret)
+ error(1, errno, "connect tx");
+ }
+
+ return fd;
+}
+
+/* receiver reads unencapsulated UDP */
+static int setup_rx(void)
+{
+ int fd, ret;
+
+ fd = socket(cfg_l3_inner, SOCK_DGRAM, 0);
+ if (fd == -1)
+ error(1, errno, "socket rx");
+
+ if (cfg_l3_inner == PF_INET)
+ ret = bind(fd, (void *) &in_daddr4, sizeof(in_daddr4));
+ else
+ ret = bind(fd, (void *) &in_daddr6, sizeof(in_daddr6));
+ if (ret)
+ error(1, errno, "bind rx");
+
+ return fd;
+}
+
+static int do_tx(int fd, const char *pkt, int len)
+{
+ int ret;
+
+ ret = write(fd, pkt, len);
+ if (ret == -1)
+ error(1, errno, "send");
+ if (ret != len)
+ error(1, errno, "send: len (%d < %d)\n", ret, len);
+
+ return 1;
+}
+
+static int do_poll(int fd, short events, int timeout)
+{
+ struct pollfd pfd;
+ int ret;
+
+ pfd.fd = fd;
+ pfd.events = events;
+
+ ret = poll(&pfd, 1, timeout);
+ if (ret == -1)
+ error(1, errno, "poll");
+ if (ret && !(pfd.revents & POLLIN))
+ error(1, errno, "poll: unexpected event 0x%x\n", pfd.revents);
+
+ return ret;
+}
+
+static int do_rx(int fd)
+{
+ char rbuf;
+ int ret, num = 0;
+
+ while (1) {
+ ret = recv(fd, &rbuf, 1, MSG_DONTWAIT);
+ if (ret == -1 && errno == EAGAIN)
+ break;
+ if (ret == -1)
+ error(1, errno, "recv");
+ if (rbuf != cfg_payload_char)
+ error(1, 0, "recv: payload mismatch");
+ num++;
+ };
+
+ return num;
+}
+
+static int do_main(void)
+{
+ unsigned long tstop, treport, tcur;
+ int fdt = -1, fdr = -1, len, tx = 0, rx = 0;
+
+ if (!cfg_only_tx)
+ fdr = setup_rx();
+ if (!cfg_only_rx)
+ fdt = setup_tx();
+
+ len = build_packet();
+
+ tcur = util_gettime();
+ treport = tcur + 1000;
+ tstop = tcur + (cfg_num_secs * 1000);
+
+ while (1) {
+ if (!cfg_only_rx)
+ tx += do_tx(fdt, buf, len);
+
+ if (!cfg_only_tx)
+ rx += do_rx(fdr);
+
+ if (cfg_num_secs) {
+ tcur = util_gettime();
+ if (tcur >= tstop)
+ break;
+ if (tcur >= treport) {
+ fprintf(stderr, "pkts: tx=%u rx=%u\n", tx, rx);
+ tx = 0;
+ rx = 0;
+ treport = tcur + 1000;
+ }
+ } else {
+ if (tx == cfg_num_pkt)
+ break;
+ }
+ }
+
+ /* read straggler packets, if any */
+ if (rx < tx) {
+ tstop = util_gettime() + 100;
+ while (rx < tx) {
+ tcur = util_gettime();
+ if (tcur >= tstop)
+ break;
+
+ do_poll(fdr, POLLIN, tstop - tcur);
+ rx += do_rx(fdr);
+ }
+ }
+
+ fprintf(stderr, "pkts: tx=%u rx=%u\n", tx, rx);
+
+ if (fdr != -1 && close(fdr))
+ error(1, errno, "close rx");
+ if (fdt != -1 && close(fdt))
+ error(1, errno, "close tx");
+
+ /*
+ * success (== 0) only if received all packets
+ * unless failure is expected, in which case none must arrive.
+ */
+ if (cfg_expect_failure)
+ return rx != 0;
+ else
+ return rx != tx;
+}
+
+
+static void __attribute__((noreturn)) usage(const char *filepath)
+{
+ fprintf(stderr, "Usage: %s [-e gre|gue|bare|none] [-i 4|6] [-l len] "
+ "[-O 4|6] [-o 4|6] [-n num] [-t secs] [-R] [-T] "
+ "[-s <osrc> [-d <odst>] [-S <isrc>] [-D <idst>] "
+ "[-x <otos>] [-X <itos>] [-f <isport>] [-F]\n",
+ filepath);
+ exit(1);
+}
+
+static void parse_addr(int family, void *addr, const char *optarg)
+{
+ int ret;
+
+ ret = inet_pton(family, optarg, addr);
+ if (ret == -1)
+ error(1, errno, "inet_pton");
+ if (ret == 0)
+ error(1, 0, "inet_pton: bad string");
+}
+
+static void parse_addr4(struct sockaddr_in *addr, const char *optarg)
+{
+ parse_addr(AF_INET, &addr->sin_addr, optarg);
+}
+
+static void parse_addr6(struct sockaddr_in6 *addr, const char *optarg)
+{
+ parse_addr(AF_INET6, &addr->sin6_addr, optarg);
+}
+
+static int parse_protocol_family(const char *filepath, const char *optarg)
+{
+ if (!strcmp(optarg, "4"))
+ return PF_INET;
+ if (!strcmp(optarg, "6"))
+ return PF_INET6;
+
+ usage(filepath);
+}
+
+static void parse_opts(int argc, char **argv)
+{
+ int c;
+
+ while ((c = getopt(argc, argv, "d:D:e:f:Fhi:l:n:o:O:Rs:S:t:Tx:X:")) != -1) {
+ switch (c) {
+ case 'd':
+ if (cfg_l3_outer == AF_UNSPEC)
+ error(1, 0, "-d must be preceded by -o");
+ if (cfg_l3_outer == AF_INET)
+ parse_addr4(&out_daddr4, optarg);
+ else
+ parse_addr6(&out_daddr6, optarg);
+ break;
+ case 'D':
+ if (cfg_l3_inner == AF_UNSPEC)
+ error(1, 0, "-D must be preceded by -i");
+ if (cfg_l3_inner == AF_INET)
+ parse_addr4(&in_daddr4, optarg);
+ else
+ parse_addr6(&in_daddr6, optarg);
+ break;
+ case 'e':
+ if (!strcmp(optarg, "gre"))
+ cfg_encap_proto = IPPROTO_GRE;
+ else if (!strcmp(optarg, "gue"))
+ cfg_encap_proto = IPPROTO_UDP;
+ else if (!strcmp(optarg, "bare"))
+ cfg_encap_proto = IPPROTO_IPIP;
+ else if (!strcmp(optarg, "none"))
+ cfg_encap_proto = IPPROTO_IP; /* == 0 */
+ else
+ usage(argv[0]);
+ break;
+ case 'f':
+ cfg_src_port = strtol(optarg, NULL, 0);
+ break;
+ case 'F':
+ cfg_expect_failure = true;
+ break;
+ case 'h':
+ usage(argv[0]);
+ break;
+ case 'i':
+ if (!strcmp(optarg, "4"))
+ cfg_l3_inner = PF_INET;
+ else if (!strcmp(optarg, "6"))
+ cfg_l3_inner = PF_INET6;
+ else
+ usage(argv[0]);
+ break;
+ case 'l':
+ cfg_payload_len = strtol(optarg, NULL, 0);
+ break;
+ case 'n':
+ cfg_num_pkt = strtol(optarg, NULL, 0);
+ break;
+ case 'o':
+ cfg_l3_outer = parse_protocol_family(argv[0], optarg);
+ break;
+ case 'O':
+ cfg_l3_extra = parse_protocol_family(argv[0], optarg);
+ break;
+ case 'R':
+ cfg_only_rx = true;
+ break;
+ case 's':
+ if (cfg_l3_outer == AF_INET)
+ parse_addr4(&out_saddr4, optarg);
+ else
+ parse_addr6(&out_saddr6, optarg);
+ break;
+ case 'S':
+ if (cfg_l3_inner == AF_INET)
+ parse_addr4(&in_saddr4, optarg);
+ else
+ parse_addr6(&in_saddr6, optarg);
+ break;
+ case 't':
+ cfg_num_secs = strtol(optarg, NULL, 0);
+ break;
+ case 'T':
+ cfg_only_tx = true;
+ break;
+ case 'x':
+ cfg_dsfield_outer = strtol(optarg, NULL, 0);
+ break;
+ case 'X':
+ cfg_dsfield_inner = strtol(optarg, NULL, 0);
+ break;
+ }
+ }
+
+ if (cfg_only_rx && cfg_only_tx)
+ error(1, 0, "options: cannot combine rx-only and tx-only");
+
+ if (cfg_encap_proto && cfg_l3_outer == AF_UNSPEC)
+ error(1, 0, "options: must specify outer with encap");
+ else if ((!cfg_encap_proto) && cfg_l3_outer != AF_UNSPEC)
+ error(1, 0, "options: cannot combine no-encap and outer");
+ else if ((!cfg_encap_proto) && cfg_l3_extra != AF_UNSPEC)
+ error(1, 0, "options: cannot combine no-encap and extra");
+
+ if (cfg_l3_inner == AF_UNSPEC)
+ cfg_l3_inner = AF_INET6;
+ if (cfg_l3_inner == AF_INET6 && cfg_encap_proto == IPPROTO_IPIP)
+ cfg_encap_proto = IPPROTO_IPV6;
+
+ /* RFC 6040 4.2:
+ * on decap, if outer encountered congestion (CE == 0x3),
+ * but inner cannot encode ECN (NoECT == 0x0), then drop packet.
+ */
+ if (((cfg_dsfield_outer & 0x3) == 0x3) &&
+ ((cfg_dsfield_inner & 0x3) == 0x0))
+ cfg_expect_failure = true;
+}
+
+static void print_opts(void)
+{
+ if (cfg_l3_inner == PF_INET6) {
+ util_printaddr("inner.dest6", (void *) &in_daddr6);
+ util_printaddr("inner.source6", (void *) &in_saddr6);
+ } else {
+ util_printaddr("inner.dest4", (void *) &in_daddr4);
+ util_printaddr("inner.source4", (void *) &in_saddr4);
+ }
+
+ if (!cfg_l3_outer)
+ return;
+
+ fprintf(stderr, "encap proto: %u\n", cfg_encap_proto);
+
+ if (cfg_l3_outer == PF_INET6) {
+ util_printaddr("outer.dest6", (void *) &out_daddr6);
+ util_printaddr("outer.source6", (void *) &out_saddr6);
+ } else {
+ util_printaddr("outer.dest4", (void *) &out_daddr4);
+ util_printaddr("outer.source4", (void *) &out_saddr4);
+ }
+
+ if (!cfg_l3_extra)
+ return;
+
+ if (cfg_l3_outer == PF_INET6) {
+ util_printaddr("extra.dest6", (void *) &extra_daddr6);
+ util_printaddr("extra.source6", (void *) &extra_saddr6);
+ } else {
+ util_printaddr("extra.dest4", (void *) &extra_daddr4);
+ util_printaddr("extra.source4", (void *) &extra_saddr4);
+ }
+
+}
+
+int main(int argc, char **argv)
+{
+ parse_opts(argc, argv);
+ print_opts();
+ return do_main();
+}
diff --git a/tools/testing/selftests/bpf/test_flow_dissector.sh b/tools/testing/selftests/bpf/test_flow_dissector.sh
new file mode 100755
index 000000000000..c0fb073b5eab
--- /dev/null
+++ b/tools/testing/selftests/bpf/test_flow_dissector.sh
@@ -0,0 +1,115 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+#
+# Load BPF flow dissector and verify it correctly dissects traffic
+export TESTNAME=test_flow_dissector
+unmount=0
+
+# Kselftest framework requirement - SKIP code is 4.
+ksft_skip=4
+
+msg="skip all tests:"
+if [ $UID != 0 ]; then
+ echo $msg please run this as root >&2
+ exit $ksft_skip
+fi
+
+# This test needs to be run in a network namespace with in_netns.sh. Check if
+# this is the case and run it with in_netns.sh if it is being run in the root
+# namespace.
+if [[ -z $(ip netns identify $$) ]]; then
+ ../net/in_netns.sh "$0" "$@"
+ exit $?
+fi
+
+# Determine selftest success via shell exit code
+exit_handler()
+{
+ if (( $? == 0 )); then
+ echo "selftests: $TESTNAME [PASS]";
+ else
+ echo "selftests: $TESTNAME [FAILED]";
+ fi
+
+ set +e
+
+ # Cleanup
+ tc filter del dev lo ingress pref 1337 2> /dev/null
+ tc qdisc del dev lo ingress 2> /dev/null
+ ./flow_dissector_load -d 2> /dev/null
+ if [ $unmount -ne 0 ]; then
+ umount bpffs 2> /dev/null
+ fi
+}
+
+# Exit script immediately (well catched by trap handler) if any
+# program/thing exits with a non-zero status.
+set -e
+
+# (Use 'trap -l' to list meaning of numbers)
+trap exit_handler 0 2 3 6 9
+
+# Mount BPF file system
+if /bin/mount | grep /sys/fs/bpf > /dev/null; then
+ echo "bpffs already mounted"
+else
+ echo "bpffs not mounted. Mounting..."
+ unmount=1
+ /bin/mount bpffs /sys/fs/bpf -t bpf
+fi
+
+# Attach BPF program
+./flow_dissector_load -p bpf_flow.o -s dissect
+
+# Setup
+tc qdisc add dev lo ingress
+
+echo "Testing IPv4..."
+# Drops all IP/UDP packets coming from port 9
+tc filter add dev lo parent ffff: protocol ip pref 1337 flower ip_proto \
+ udp src_port 9 action drop
+
+# Send 10 IPv4/UDP packets from port 8. Filter should not drop any.
+./test_flow_dissector -i 4 -f 8
+# Send 10 IPv4/UDP packets from port 9. Filter should drop all.
+./test_flow_dissector -i 4 -f 9 -F
+# Send 10 IPv4/UDP packets from port 10. Filter should not drop any.
+./test_flow_dissector -i 4 -f 10
+
+echo "Testing IPIP..."
+# Send 10 IPv4/IPv4/UDP packets from port 8. Filter should not drop any.
+./with_addr.sh ./with_tunnels.sh ./test_flow_dissector -o 4 -e bare -i 4 \
+ -D 192.168.0.1 -S 1.1.1.1 -f 8
+# Send 10 IPv4/IPv4/UDP packets from port 9. Filter should drop all.
+./with_addr.sh ./with_tunnels.sh ./test_flow_dissector -o 4 -e bare -i 4 \
+ -D 192.168.0.1 -S 1.1.1.1 -f 9 -F
+# Send 10 IPv4/IPv4/UDP packets from port 10. Filter should not drop any.
+./with_addr.sh ./with_tunnels.sh ./test_flow_dissector -o 4 -e bare -i 4 \
+ -D 192.168.0.1 -S 1.1.1.1 -f 10
+
+echo "Testing IPv4 + GRE..."
+# Send 10 IPv4/GRE/IPv4/UDP packets from port 8. Filter should not drop any.
+./with_addr.sh ./with_tunnels.sh ./test_flow_dissector -o 4 -e gre -i 4 \
+ -D 192.168.0.1 -S 1.1.1.1 -f 8
+# Send 10 IPv4/GRE/IPv4/UDP packets from port 9. Filter should drop all.
+./with_addr.sh ./with_tunnels.sh ./test_flow_dissector -o 4 -e gre -i 4 \
+ -D 192.168.0.1 -S 1.1.1.1 -f 9 -F
+# Send 10 IPv4/GRE/IPv4/UDP packets from port 10. Filter should not drop any.
+./with_addr.sh ./with_tunnels.sh ./test_flow_dissector -o 4 -e gre -i 4 \
+ -D 192.168.0.1 -S 1.1.1.1 -f 10
+
+tc filter del dev lo ingress pref 1337
+
+echo "Testing IPv6..."
+# Drops all IPv6/UDP packets coming from port 9
+tc filter add dev lo parent ffff: protocol ipv6 pref 1337 flower ip_proto \
+ udp src_port 9 action drop
+
+# Send 10 IPv6/UDP packets from port 8. Filter should not drop any.
+./test_flow_dissector -i 6 -f 8
+# Send 10 IPv6/UDP packets from port 9. Filter should drop all.
+./test_flow_dissector -i 6 -f 9 -F
+# Send 10 IPv6/UDP packets from port 10. Filter should not drop any.
+./test_flow_dissector -i 6 -f 10
+
+exit 0
diff --git a/tools/testing/selftests/bpf/with_addr.sh b/tools/testing/selftests/bpf/with_addr.sh
new file mode 100755
index 000000000000..ffcd3953f94c
--- /dev/null
+++ b/tools/testing/selftests/bpf/with_addr.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+#
+# add private ipv4 and ipv6 addresses to loopback
+
+readonly V6_INNER='100::a/128'
+readonly V4_INNER='192.168.0.1/32'
+
+if getopts ":s" opt; then
+ readonly SIT_DEV_NAME='sixtofourtest0'
+ readonly V6_SIT='2::/64'
+ readonly V4_SIT='172.17.0.1/32'
+ shift
+fi
+
+fail() {
+ echo "error: $*" 1>&2
+ exit 1
+}
+
+setup() {
+ ip -6 addr add "${V6_INNER}" dev lo || fail 'failed to setup v6 address'
+ ip -4 addr add "${V4_INNER}" dev lo || fail 'failed to setup v4 address'
+
+ if [[ -n "${V6_SIT}" ]]; then
+ ip link add "${SIT_DEV_NAME}" type sit remote any local any \
+ || fail 'failed to add sit'
+ ip link set dev "${SIT_DEV_NAME}" up \
+ || fail 'failed to bring sit device up'
+ ip -6 addr add "${V6_SIT}" dev "${SIT_DEV_NAME}" \
+ || fail 'failed to setup v6 SIT address'
+ ip -4 addr add "${V4_SIT}" dev "${SIT_DEV_NAME}" \
+ || fail 'failed to setup v4 SIT address'
+ fi
+
+ sleep 2 # avoid race causing bind to fail
+}
+
+cleanup() {
+ if [[ -n "${V6_SIT}" ]]; then
+ ip -4 addr del "${V4_SIT}" dev "${SIT_DEV_NAME}"
+ ip -6 addr del "${V6_SIT}" dev "${SIT_DEV_NAME}"
+ ip link del "${SIT_DEV_NAME}"
+ fi
+
+ ip -4 addr del "${V4_INNER}" dev lo
+ ip -6 addr del "${V6_INNER}" dev lo
+}
+
+trap cleanup EXIT
+
+setup
+"$@"
+exit "$?"
diff --git a/tools/testing/selftests/bpf/with_tunnels.sh b/tools/testing/selftests/bpf/with_tunnels.sh
new file mode 100755
index 000000000000..e24949ed3a20
--- /dev/null
+++ b/tools/testing/selftests/bpf/with_tunnels.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+#
+# setup tunnels for flow dissection test
+
+readonly SUFFIX="test_$(mktemp -u XXXX)"
+CONFIG="remote 127.0.0.2 local 127.0.0.1 dev lo"
+
+setup() {
+ ip link add "ipip_${SUFFIX}" type ipip ${CONFIG}
+ ip link add "gre_${SUFFIX}" type gre ${CONFIG}
+ ip link add "sit_${SUFFIX}" type sit ${CONFIG}
+
+ echo "tunnels before test:"
+ ip tunnel show
+
+ ip link set "ipip_${SUFFIX}" up
+ ip link set "gre_${SUFFIX}" up
+ ip link set "sit_${SUFFIX}" up
+}
+
+
+cleanup() {
+ ip tunnel del "ipip_${SUFFIX}"
+ ip tunnel del "gre_${SUFFIX}"
+ ip tunnel del "sit_${SUFFIX}"
+
+ echo "tunnels after test:"
+ ip tunnel show
+}
+
+trap cleanup EXIT
+
+setup
+"$@"
+exit "$?"
--
2.19.0.397.gdd90340f6a-goog
^ permalink raw reply related
* [bpf-next, v4 4/5] flow_dissector: implements eBPF parser
From: Petar Penkov @ 2018-09-14 14:46 UTC (permalink / raw)
To: netdev
Cc: davem, ast, daniel, simon.horman, ecree, songliubraving, tom,
Petar Penkov, Willem de Bruijn
In-Reply-To: <20180914144622.16436-1-peterpenkov96@gmail.com>
From: Petar Penkov <ppenkov@google.com>
This eBPF program extracts basic/control/ip address/ports keys from
incoming packets. It supports recursive parsing for IP encapsulation,
and VLAN, along with IPv4/IPv6 and extension headers. This program is
meant to show how flow dissection and key extraction can be done in
eBPF.
Link: http://vger.kernel.org/netconf2017_files/rx_hardening_and_udp_gso.pdf
Signed-off-by: Petar Penkov <ppenkov@google.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
---
tools/testing/selftests/bpf/Makefile | 2 +-
tools/testing/selftests/bpf/bpf_flow.c | 373 +++++++++++++++++++++++++
2 files changed, 374 insertions(+), 1 deletion(-)
create mode 100644 tools/testing/selftests/bpf/bpf_flow.c
diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index fff7fb1285fc..e65f50f9185e 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -35,7 +35,7 @@ TEST_GEN_FILES = test_pkt_access.o test_xdp.o test_l4lb.o test_tcp_estats.o test
test_get_stack_rawtp.o test_sockmap_kern.o test_sockhash_kern.o \
test_lwt_seg6local.o sendmsg4_prog.o sendmsg6_prog.o test_lirc_mode2_kern.o \
get_cgroup_id_kern.o socket_cookie_prog.o test_select_reuseport_kern.o \
- test_skb_cgroup_id_kern.o
+ test_skb_cgroup_id_kern.o bpf_flow.o
# Order correspond to 'make run_tests' order
TEST_PROGS := test_kmod.sh \
diff --git a/tools/testing/selftests/bpf/bpf_flow.c b/tools/testing/selftests/bpf/bpf_flow.c
new file mode 100644
index 000000000000..5fb809d95867
--- /dev/null
+++ b/tools/testing/selftests/bpf/bpf_flow.c
@@ -0,0 +1,373 @@
+// SPDX-License-Identifier: GPL-2.0
+#include <limits.h>
+#include <stddef.h>
+#include <stdbool.h>
+#include <string.h>
+#include <linux/pkt_cls.h>
+#include <linux/bpf.h>
+#include <linux/in.h>
+#include <linux/if_ether.h>
+#include <linux/icmp.h>
+#include <linux/ip.h>
+#include <linux/ipv6.h>
+#include <linux/tcp.h>
+#include <linux/udp.h>
+#include <linux/if_packet.h>
+#include <sys/socket.h>
+#include <linux/if_tunnel.h>
+#include <linux/mpls.h>
+#include "bpf_helpers.h"
+#include "bpf_endian.h"
+
+int _version SEC("version") = 1;
+#define PROG(F) SEC(#F) int bpf_func_##F
+
+/* These are the identifiers of the BPF programs that will be used in tail
+ * calls. Name is limited to 16 characters, with the terminating character and
+ * bpf_func_ above, we have only 6 to work with, anything after will be cropped.
+ */
+enum {
+ IP,
+ IPV6,
+ IPV6OP, /* Destination/Hop-by-Hop Options IPv6 Extension header */
+ IPV6FR, /* Fragmentation IPv6 Extension Header */
+ MPLS,
+ VLAN,
+};
+
+#define IP_MF 0x2000
+#define IP_OFFSET 0x1FFF
+#define IP6_MF 0x0001
+#define IP6_OFFSET 0xFFF8
+
+struct vlan_hdr {
+ __be16 h_vlan_TCI;
+ __be16 h_vlan_encapsulated_proto;
+};
+
+struct gre_hdr {
+ __be16 flags;
+ __be16 proto;
+};
+
+struct frag_hdr {
+ __u8 nexthdr;
+ __u8 reserved;
+ __be16 frag_off;
+ __be32 identification;
+};
+
+struct bpf_map_def SEC("maps") jmp_table = {
+ .type = BPF_MAP_TYPE_PROG_ARRAY,
+ .key_size = sizeof(__u32),
+ .value_size = sizeof(__u32),
+ .max_entries = 8
+};
+
+static __always_inline void *bpf_flow_dissect_get_header(struct __sk_buff *skb,
+ __u16 hdr_size,
+ void *buffer)
+{
+ void *data_end = (void *)(long)skb->data_end;
+ void *data = (void *)(long)skb->data;
+ __u16 nhoff = skb->flow_keys->nhoff;
+ __u8 *hdr;
+
+ /* Verifies this variable offset does not overflow */
+ if (nhoff > (USHRT_MAX - hdr_size))
+ return NULL;
+
+ hdr = data + nhoff;
+ if (hdr + hdr_size <= data_end)
+ return hdr;
+
+ if (bpf_skb_load_bytes(skb, nhoff, buffer, hdr_size))
+ return NULL;
+
+ return buffer;
+}
+
+/* Dispatches on ETHERTYPE */
+static __always_inline int parse_eth_proto(struct __sk_buff *skb, __be16 proto)
+{
+ struct bpf_flow_keys *keys = skb->flow_keys;
+
+ keys->n_proto = proto;
+ switch (proto) {
+ case bpf_htons(ETH_P_IP):
+ bpf_tail_call(skb, &jmp_table, IP);
+ break;
+ case bpf_htons(ETH_P_IPV6):
+ bpf_tail_call(skb, &jmp_table, IPV6);
+ break;
+ case bpf_htons(ETH_P_MPLS_MC):
+ case bpf_htons(ETH_P_MPLS_UC):
+ bpf_tail_call(skb, &jmp_table, MPLS);
+ break;
+ case bpf_htons(ETH_P_8021Q):
+ case bpf_htons(ETH_P_8021AD):
+ bpf_tail_call(skb, &jmp_table, VLAN);
+ break;
+ default:
+ /* Protocol not supported */
+ return BPF_DROP;
+ }
+
+ return BPF_DROP;
+}
+
+SEC("dissect")
+int dissect(struct __sk_buff *skb)
+{
+ if (!skb->vlan_present)
+ return parse_eth_proto(skb, skb->protocol);
+ else
+ return parse_eth_proto(skb, skb->vlan_proto);
+}
+
+/* Parses on IPPROTO_* */
+static __always_inline int parse_ip_proto(struct __sk_buff *skb, __u8 proto)
+{
+ struct bpf_flow_keys *keys = skb->flow_keys;
+ void *data_end = (void *)(long)skb->data_end;
+ struct icmphdr *icmp, _icmp;
+ struct gre_hdr *gre, _gre;
+ struct ethhdr *eth, _eth;
+ struct tcphdr *tcp, _tcp;
+ struct udphdr *udp, _udp;
+
+ keys->ip_proto = proto;
+ switch (proto) {
+ case IPPROTO_ICMP:
+ icmp = bpf_flow_dissect_get_header(skb, sizeof(*icmp), &_icmp);
+ if (!icmp)
+ return BPF_DROP;
+ return BPF_OK;
+ case IPPROTO_IPIP:
+ keys->is_encap = true;
+ return parse_eth_proto(skb, bpf_htons(ETH_P_IP));
+ case IPPROTO_IPV6:
+ keys->is_encap = true;
+ return parse_eth_proto(skb, bpf_htons(ETH_P_IPV6));
+ case IPPROTO_GRE:
+ gre = bpf_flow_dissect_get_header(skb, sizeof(*gre), &_gre);
+ if (!gre)
+ return BPF_DROP;
+
+ if (bpf_htons(gre->flags & GRE_VERSION))
+ /* Only inspect standard GRE packets with version 0 */
+ return BPF_OK;
+
+ keys->nhoff += sizeof(*gre); /* Step over GRE Flags and Proto */
+ if (GRE_IS_CSUM(gre->flags))
+ keys->nhoff += 4; /* Step over chksum and Padding */
+ if (GRE_IS_KEY(gre->flags))
+ keys->nhoff += 4; /* Step over key */
+ if (GRE_IS_SEQ(gre->flags))
+ keys->nhoff += 4; /* Step over sequence number */
+
+ keys->is_encap = true;
+
+ if (gre->proto == bpf_htons(ETH_P_TEB)) {
+ eth = bpf_flow_dissect_get_header(skb, sizeof(*eth),
+ &_eth);
+ if (!eth)
+ return BPF_DROP;
+
+ keys->nhoff += sizeof(*eth);
+
+ return parse_eth_proto(skb, eth->h_proto);
+ } else {
+ return parse_eth_proto(skb, gre->proto);
+ }
+ case IPPROTO_TCP:
+ tcp = bpf_flow_dissect_get_header(skb, sizeof(*tcp), &_tcp);
+ if (!tcp)
+ return BPF_DROP;
+
+ if (tcp->doff < 5)
+ return BPF_DROP;
+
+ if ((__u8 *)tcp + (tcp->doff << 2) > data_end)
+ return BPF_DROP;
+
+ keys->thoff = keys->nhoff;
+ keys->sport = tcp->source;
+ keys->dport = tcp->dest;
+ return BPF_OK;
+ case IPPROTO_UDP:
+ case IPPROTO_UDPLITE:
+ udp = bpf_flow_dissect_get_header(skb, sizeof(*udp), &_udp);
+ if (!udp)
+ return BPF_DROP;
+
+ keys->thoff = keys->nhoff;
+ keys->sport = udp->source;
+ keys->dport = udp->dest;
+ return BPF_OK;
+ default:
+ return BPF_DROP;
+ }
+
+ return BPF_DROP;
+}
+
+static __always_inline int parse_ipv6_proto(struct __sk_buff *skb, __u8 nexthdr)
+{
+ struct bpf_flow_keys *keys = skb->flow_keys;
+
+ keys->ip_proto = nexthdr;
+ switch (nexthdr) {
+ case IPPROTO_HOPOPTS:
+ case IPPROTO_DSTOPTS:
+ bpf_tail_call(skb, &jmp_table, IPV6OP);
+ break;
+ case IPPROTO_FRAGMENT:
+ bpf_tail_call(skb, &jmp_table, IPV6FR);
+ break;
+ default:
+ return parse_ip_proto(skb, nexthdr);
+ }
+
+ return BPF_DROP;
+}
+
+PROG(IP)(struct __sk_buff *skb)
+{
+ void *data_end = (void *)(long)skb->data_end;
+ struct bpf_flow_keys *keys = skb->flow_keys;
+ void *data = (void *)(long)skb->data;
+ struct iphdr *iph, _iph;
+ bool done = false;
+
+ iph = bpf_flow_dissect_get_header(skb, sizeof(*iph), &_iph);
+ if (!iph)
+ return BPF_DROP;
+
+ /* IP header cannot be smaller than 20 bytes */
+ if (iph->ihl < 5)
+ return BPF_DROP;
+
+ keys->addr_proto = ETH_P_IP;
+ keys->ipv4_src = iph->saddr;
+ keys->ipv4_dst = iph->daddr;
+
+ keys->nhoff += iph->ihl << 2;
+ if (data + keys->nhoff > data_end)
+ return BPF_DROP;
+
+ if (iph->frag_off & bpf_htons(IP_MF | IP_OFFSET)) {
+ keys->is_frag = true;
+ if (iph->frag_off & bpf_htons(IP_OFFSET))
+ /* From second fragment on, packets do not have headers
+ * we can parse.
+ */
+ done = true;
+ else
+ keys->is_first_frag = true;
+ }
+
+ if (done)
+ return BPF_OK;
+
+ return parse_ip_proto(skb, iph->protocol);
+}
+
+PROG(IPV6)(struct __sk_buff *skb)
+{
+ struct bpf_flow_keys *keys = skb->flow_keys;
+ struct ipv6hdr *ip6h, _ip6h;
+
+ ip6h = bpf_flow_dissect_get_header(skb, sizeof(*ip6h), &_ip6h);
+ if (!ip6h)
+ return BPF_DROP;
+
+ keys->addr_proto = ETH_P_IPV6;
+ memcpy(&keys->ipv6_src, &ip6h->saddr, 2*sizeof(ip6h->saddr));
+
+ keys->nhoff += sizeof(struct ipv6hdr);
+
+ return parse_ipv6_proto(skb, ip6h->nexthdr);
+}
+
+PROG(IPV6OP)(struct __sk_buff *skb)
+{
+ struct ipv6_opt_hdr *ip6h, _ip6h;
+
+ ip6h = bpf_flow_dissect_get_header(skb, sizeof(*ip6h), &_ip6h);
+ if (!ip6h)
+ return BPF_DROP;
+
+ /* hlen is in 8-octets and does not include the first 8 bytes
+ * of the header
+ */
+ skb->flow_keys->nhoff += (1 + ip6h->hdrlen) << 3;
+
+ return parse_ipv6_proto(skb, ip6h->nexthdr);
+}
+
+PROG(IPV6FR)(struct __sk_buff *skb)
+{
+ struct bpf_flow_keys *keys = skb->flow_keys;
+ struct frag_hdr *fragh, _fragh;
+
+ fragh = bpf_flow_dissect_get_header(skb, sizeof(*fragh), &_fragh);
+ if (!fragh)
+ return BPF_DROP;
+
+ keys->nhoff += sizeof(*fragh);
+ keys->is_frag = true;
+ if (!(fragh->frag_off & bpf_htons(IP6_OFFSET)))
+ keys->is_first_frag = true;
+
+ return parse_ipv6_proto(skb, fragh->nexthdr);
+}
+
+PROG(MPLS)(struct __sk_buff *skb)
+{
+ struct mpls_label *mpls, _mpls;
+
+ mpls = bpf_flow_dissect_get_header(skb, sizeof(*mpls), &_mpls);
+ if (!mpls)
+ return BPF_DROP;
+
+ return BPF_OK;
+}
+
+PROG(VLAN)(struct __sk_buff *skb)
+{
+ struct bpf_flow_keys *keys = skb->flow_keys;
+ struct vlan_hdr *vlan, _vlan;
+ __be16 proto;
+
+ /* Peek back to see if single or double-tagging */
+ if (bpf_skb_load_bytes(skb, keys->nhoff - sizeof(proto), &proto,
+ sizeof(proto)))
+ return BPF_DROP;
+
+ /* Account for double-tagging */
+ if (proto == bpf_htons(ETH_P_8021AD)) {
+ vlan = bpf_flow_dissect_get_header(skb, sizeof(*vlan), &_vlan);
+ if (!vlan)
+ return BPF_DROP;
+
+ if (vlan->h_vlan_encapsulated_proto != bpf_htons(ETH_P_8021Q))
+ return BPF_DROP;
+
+ keys->nhoff += sizeof(*vlan);
+ }
+
+ vlan = bpf_flow_dissect_get_header(skb, sizeof(*vlan), &_vlan);
+ if (!vlan)
+ return BPF_DROP;
+
+ keys->nhoff += sizeof(*vlan);
+ /* Only allow 8021AD + 8021Q double tagging and no triple tagging.*/
+ if (vlan->h_vlan_encapsulated_proto == bpf_htons(ETH_P_8021AD) ||
+ vlan->h_vlan_encapsulated_proto == bpf_htons(ETH_P_8021Q))
+ return BPF_DROP;
+
+ return parse_eth_proto(skb, vlan->h_vlan_encapsulated_proto);
+}
+
+char __license[] SEC("license") = "GPL";
--
2.19.0.397.gdd90340f6a-goog
^ permalink raw reply related
* [bpf-next, v4 3/5] bpf: support flow dissector in libbpf and bpftool
From: Petar Penkov @ 2018-09-14 14:46 UTC (permalink / raw)
To: netdev
Cc: davem, ast, daniel, simon.horman, ecree, songliubraving, tom,
Petar Penkov, Willem de Bruijn
In-Reply-To: <20180914144622.16436-1-peterpenkov96@gmail.com>
From: Petar Penkov <ppenkov@google.com>
This patch extends libbpf and bpftool to work with programs of type
BPF_PROG_TYPE_FLOW_DISSECTOR.
Signed-off-by: Petar Penkov <ppenkov@google.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
---
tools/bpf/bpftool/prog.c | 1 +
tools/lib/bpf/libbpf.c | 2 ++
2 files changed, 3 insertions(+)
diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
index dce960d22106..b1cd3bc8db70 100644
--- a/tools/bpf/bpftool/prog.c
+++ b/tools/bpf/bpftool/prog.c
@@ -74,6 +74,7 @@ static const char * const prog_type_name[] = {
[BPF_PROG_TYPE_RAW_TRACEPOINT] = "raw_tracepoint",
[BPF_PROG_TYPE_CGROUP_SOCK_ADDR] = "cgroup_sock_addr",
[BPF_PROG_TYPE_LIRC_MODE2] = "lirc_mode2",
+ [BPF_PROG_TYPE_FLOW_DISSECTOR] = "flow_dissector",
};
static void print_boot_time(__u64 nsecs, char *buf, unsigned int size)
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index 8476da7f2720..9ca8e0e624d8 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -1502,6 +1502,7 @@ static bool bpf_prog_type__needs_kver(enum bpf_prog_type type)
case BPF_PROG_TYPE_CGROUP_SOCK_ADDR:
case BPF_PROG_TYPE_LIRC_MODE2:
case BPF_PROG_TYPE_SK_REUSEPORT:
+ case BPF_PROG_TYPE_FLOW_DISSECTOR:
return false;
case BPF_PROG_TYPE_UNSPEC:
case BPF_PROG_TYPE_KPROBE:
@@ -2121,6 +2122,7 @@ static const struct {
BPF_PROG_SEC("sk_skb", BPF_PROG_TYPE_SK_SKB),
BPF_PROG_SEC("sk_msg", BPF_PROG_TYPE_SK_MSG),
BPF_PROG_SEC("lirc_mode2", BPF_PROG_TYPE_LIRC_MODE2),
+ BPF_PROG_SEC("flow_dissector", BPF_PROG_TYPE_FLOW_DISSECTOR),
BPF_SA_PROG_SEC("cgroup/bind4", BPF_CGROUP_INET4_BIND),
BPF_SA_PROG_SEC("cgroup/bind6", BPF_CGROUP_INET6_BIND),
BPF_SA_PROG_SEC("cgroup/connect4", BPF_CGROUP_INET4_CONNECT),
--
2.19.0.397.gdd90340f6a-goog
^ permalink raw reply related
* [bpf-next, v4 2/5] bpf: sync bpf.h uapi with tools/
From: Petar Penkov @ 2018-09-14 14:46 UTC (permalink / raw)
To: netdev
Cc: davem, ast, daniel, simon.horman, ecree, songliubraving, tom,
Petar Penkov, Willem de Bruijn
In-Reply-To: <20180914144622.16436-1-peterpenkov96@gmail.com>
From: Petar Penkov <ppenkov@google.com>
This patch syncs tools/include/uapi/linux/bpf.h with the flow dissector
definitions from include/uapi/linux/bpf.h
Signed-off-by: Petar Penkov <ppenkov@google.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
---
tools/include/uapi/linux/bpf.h | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h
index 66917a4eba27..aa5ccd2385ed 100644
--- a/tools/include/uapi/linux/bpf.h
+++ b/tools/include/uapi/linux/bpf.h
@@ -152,6 +152,7 @@ enum bpf_prog_type {
BPF_PROG_TYPE_LWT_SEG6LOCAL,
BPF_PROG_TYPE_LIRC_MODE2,
BPF_PROG_TYPE_SK_REUSEPORT,
+ BPF_PROG_TYPE_FLOW_DISSECTOR,
};
enum bpf_attach_type {
@@ -172,6 +173,7 @@ enum bpf_attach_type {
BPF_CGROUP_UDP4_SENDMSG,
BPF_CGROUP_UDP6_SENDMSG,
BPF_LIRC_MODE2,
+ BPF_FLOW_DISSECTOR,
__MAX_BPF_ATTACH_TYPE
};
@@ -2333,6 +2335,7 @@ struct __sk_buff {
/* ... here. */
__u32 data_meta;
+ struct bpf_flow_keys *flow_keys;
};
struct bpf_tunnel_key {
@@ -2778,4 +2781,27 @@ enum bpf_task_fd_type {
BPF_FD_TYPE_URETPROBE, /* filename + offset */
};
+struct bpf_flow_keys {
+ __u16 nhoff;
+ __u16 thoff;
+ __u16 addr_proto; /* ETH_P_* of valid addrs */
+ __u8 is_frag;
+ __u8 is_first_frag;
+ __u8 is_encap;
+ __u8 ip_proto;
+ __be16 n_proto;
+ __be16 sport;
+ __be16 dport;
+ union {
+ struct {
+ __be32 ipv4_src;
+ __be32 ipv4_dst;
+ };
+ struct {
+ __u32 ipv6_src[4]; /* in6_addr; network order */
+ __u32 ipv6_dst[4]; /* in6_addr; network order */
+ };
+ };
+};
+
#endif /* _UAPI__LINUX_BPF_H__ */
--
2.19.0.397.gdd90340f6a-goog
^ permalink raw reply related
* [bpf-next, v4 1/5] flow_dissector: implements flow dissector BPF hook
From: Petar Penkov @ 2018-09-14 14:46 UTC (permalink / raw)
To: netdev
Cc: davem, ast, daniel, simon.horman, ecree, songliubraving, tom,
Petar Penkov, Willem de Bruijn
In-Reply-To: <20180914144622.16436-1-peterpenkov96@gmail.com>
From: Petar Penkov <ppenkov@google.com>
Adds a hook for programs of type BPF_PROG_TYPE_FLOW_DISSECTOR and
attach type BPF_FLOW_DISSECTOR that is executed in the flow dissector
path. The BPF program is per-network namespace.
Signed-off-by: Petar Penkov <ppenkov@google.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
---
include/linux/bpf.h | 1 +
include/linux/bpf_types.h | 1 +
include/linux/skbuff.h | 7 ++
include/net/net_namespace.h | 3 +
include/net/sch_generic.h | 12 +++-
include/uapi/linux/bpf.h | 26 +++++++
kernel/bpf/syscall.c | 8 +++
kernel/bpf/verifier.c | 32 +++++++++
net/core/filter.c | 70 +++++++++++++++++++
net/core/flow_dissector.c | 134 ++++++++++++++++++++++++++++++++++++
10 files changed, 291 insertions(+), 3 deletions(-)
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index 523481a3471b..988a00797bcd 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -212,6 +212,7 @@ enum bpf_reg_type {
PTR_TO_PACKET_META, /* skb->data - meta_len */
PTR_TO_PACKET, /* reg points to skb->data */
PTR_TO_PACKET_END, /* skb->data + headlen */
+ PTR_TO_FLOW_KEYS, /* reg points to bpf_flow_keys */
};
/* The information passed from prog-specific *_is_valid_access
diff --git a/include/linux/bpf_types.h b/include/linux/bpf_types.h
index cd26c090e7c0..22083712dd18 100644
--- a/include/linux/bpf_types.h
+++ b/include/linux/bpf_types.h
@@ -32,6 +32,7 @@ BPF_PROG_TYPE(BPF_PROG_TYPE_LIRC_MODE2, lirc_mode2)
#ifdef CONFIG_INET
BPF_PROG_TYPE(BPF_PROG_TYPE_SK_REUSEPORT, sk_reuseport)
#endif
+BPF_PROG_TYPE(BPF_PROG_TYPE_FLOW_DISSECTOR, flow_dissector)
BPF_MAP_TYPE(BPF_MAP_TYPE_ARRAY, array_map_ops)
BPF_MAP_TYPE(BPF_MAP_TYPE_PERCPU_ARRAY, percpu_array_map_ops)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 17a13e4785fc..ce0e863f02a2 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -243,6 +243,8 @@ struct scatterlist;
struct pipe_inode_info;
struct iov_iter;
struct napi_struct;
+struct bpf_prog;
+union bpf_attr;
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
struct nf_conntrack {
@@ -1192,6 +1194,11 @@ void skb_flow_dissector_init(struct flow_dissector *flow_dissector,
const struct flow_dissector_key *key,
unsigned int key_count);
+int skb_flow_dissector_bpf_prog_attach(const union bpf_attr *attr,
+ struct bpf_prog *prog);
+
+int skb_flow_dissector_bpf_prog_detach(const union bpf_attr *attr);
+
bool __skb_flow_dissect(const struct sk_buff *skb,
struct flow_dissector *flow_dissector,
void *target_container,
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
index 9b5fdc50519a..99d4148e0f90 100644
--- a/include/net/net_namespace.h
+++ b/include/net/net_namespace.h
@@ -43,6 +43,7 @@ struct ctl_table_header;
struct net_generic;
struct uevent_sock;
struct netns_ipvs;
+struct bpf_prog;
#define NETDEV_HASHBITS 8
@@ -145,6 +146,8 @@ struct net {
#endif
struct net_generic __rcu *gen;
+ struct bpf_prog __rcu *flow_dissector_prog;
+
/* Note : following structs are cache line aligned */
#ifdef CONFIG_XFRM
struct netns_xfrm xfrm;
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index a6d00093f35e..1b81ba85fd2d 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -19,6 +19,7 @@ struct Qdisc_ops;
struct qdisc_walker;
struct tcf_walker;
struct module;
+struct bpf_flow_keys;
typedef int tc_setup_cb_t(enum tc_setup_type type,
void *type_data, void *cb_priv);
@@ -307,9 +308,14 @@ struct tcf_proto {
};
struct qdisc_skb_cb {
- unsigned int pkt_len;
- u16 slave_dev_queue_mapping;
- u16 tc_classid;
+ union {
+ struct {
+ unsigned int pkt_len;
+ u16 slave_dev_queue_mapping;
+ u16 tc_classid;
+ };
+ struct bpf_flow_keys *flow_keys;
+ };
#define QDISC_CB_PRIV_LEN 20
unsigned char data[QDISC_CB_PRIV_LEN];
};
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index 66917a4eba27..aa5ccd2385ed 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -152,6 +152,7 @@ enum bpf_prog_type {
BPF_PROG_TYPE_LWT_SEG6LOCAL,
BPF_PROG_TYPE_LIRC_MODE2,
BPF_PROG_TYPE_SK_REUSEPORT,
+ BPF_PROG_TYPE_FLOW_DISSECTOR,
};
enum bpf_attach_type {
@@ -172,6 +173,7 @@ enum bpf_attach_type {
BPF_CGROUP_UDP4_SENDMSG,
BPF_CGROUP_UDP6_SENDMSG,
BPF_LIRC_MODE2,
+ BPF_FLOW_DISSECTOR,
__MAX_BPF_ATTACH_TYPE
};
@@ -2333,6 +2335,7 @@ struct __sk_buff {
/* ... here. */
__u32 data_meta;
+ struct bpf_flow_keys *flow_keys;
};
struct bpf_tunnel_key {
@@ -2778,4 +2781,27 @@ enum bpf_task_fd_type {
BPF_FD_TYPE_URETPROBE, /* filename + offset */
};
+struct bpf_flow_keys {
+ __u16 nhoff;
+ __u16 thoff;
+ __u16 addr_proto; /* ETH_P_* of valid addrs */
+ __u8 is_frag;
+ __u8 is_first_frag;
+ __u8 is_encap;
+ __u8 ip_proto;
+ __be16 n_proto;
+ __be16 sport;
+ __be16 dport;
+ union {
+ struct {
+ __be32 ipv4_src;
+ __be32 ipv4_dst;
+ };
+ struct {
+ __u32 ipv6_src[4]; /* in6_addr; network order */
+ __u32 ipv6_dst[4]; /* in6_addr; network order */
+ };
+ };
+};
+
#endif /* _UAPI__LINUX_BPF_H__ */
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
index 3c9636f03bb2..b3c2d09bcf7a 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -1615,6 +1615,9 @@ static int bpf_prog_attach(const union bpf_attr *attr)
case BPF_LIRC_MODE2:
ptype = BPF_PROG_TYPE_LIRC_MODE2;
break;
+ case BPF_FLOW_DISSECTOR:
+ ptype = BPF_PROG_TYPE_FLOW_DISSECTOR;
+ break;
default:
return -EINVAL;
}
@@ -1636,6 +1639,9 @@ static int bpf_prog_attach(const union bpf_attr *attr)
case BPF_PROG_TYPE_LIRC_MODE2:
ret = lirc_prog_attach(attr, prog);
break;
+ case BPF_PROG_TYPE_FLOW_DISSECTOR:
+ ret = skb_flow_dissector_bpf_prog_attach(attr, prog);
+ break;
default:
ret = cgroup_bpf_prog_attach(attr, ptype, prog);
}
@@ -1688,6 +1694,8 @@ static int bpf_prog_detach(const union bpf_attr *attr)
return sockmap_get_from_fd(attr, BPF_PROG_TYPE_SK_SKB, NULL);
case BPF_LIRC_MODE2:
return lirc_prog_detach(attr);
+ case BPF_FLOW_DISSECTOR:
+ return skb_flow_dissector_bpf_prog_detach(attr);
default:
return -EINVAL;
}
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 6ff1bac1795d..8ccbff4fff93 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -261,6 +261,7 @@ static const char * const reg_type_str[] = {
[PTR_TO_PACKET] = "pkt",
[PTR_TO_PACKET_META] = "pkt_meta",
[PTR_TO_PACKET_END] = "pkt_end",
+ [PTR_TO_FLOW_KEYS] = "flow_keys",
};
static char slot_type_char[] = {
@@ -965,6 +966,7 @@ static bool is_spillable_regtype(enum bpf_reg_type type)
case PTR_TO_PACKET:
case PTR_TO_PACKET_META:
case PTR_TO_PACKET_END:
+ case PTR_TO_FLOW_KEYS:
case CONST_PTR_TO_MAP:
return true;
default:
@@ -1238,6 +1240,7 @@ static bool may_access_direct_pkt_data(struct bpf_verifier_env *env,
case BPF_PROG_TYPE_LWT_XMIT:
case BPF_PROG_TYPE_SK_SKB:
case BPF_PROG_TYPE_SK_MSG:
+ case BPF_PROG_TYPE_FLOW_DISSECTOR:
if (meta)
return meta->pkt_access;
@@ -1321,6 +1324,18 @@ static int check_ctx_access(struct bpf_verifier_env *env, int insn_idx, int off,
return -EACCES;
}
+static int check_flow_keys_access(struct bpf_verifier_env *env, int off,
+ int size)
+{
+ if (size < 0 || off < 0 ||
+ (u64)off + size > sizeof(struct bpf_flow_keys)) {
+ verbose(env, "invalid access to flow keys off=%d size=%d\n",
+ off, size);
+ return -EACCES;
+ }
+ return 0;
+}
+
static bool __is_pointer_value(bool allow_ptr_leaks,
const struct bpf_reg_state *reg)
{
@@ -1422,6 +1437,9 @@ static int check_ptr_alignment(struct bpf_verifier_env *env,
* right in front, treat it the very same way.
*/
return check_pkt_ptr_alignment(env, reg, off, size, strict);
+ case PTR_TO_FLOW_KEYS:
+ pointer_desc = "flow keys ";
+ break;
case PTR_TO_MAP_VALUE:
pointer_desc = "value ";
break;
@@ -1692,6 +1710,17 @@ static int check_mem_access(struct bpf_verifier_env *env, int insn_idx, u32 regn
err = check_packet_access(env, regno, off, size, false);
if (!err && t == BPF_READ && value_regno >= 0)
mark_reg_unknown(env, regs, value_regno);
+ } else if (reg->type == PTR_TO_FLOW_KEYS) {
+ if (t == BPF_WRITE && value_regno >= 0 &&
+ is_pointer_value(env, value_regno)) {
+ verbose(env, "R%d leaks addr into flow keys\n",
+ value_regno);
+ return -EACCES;
+ }
+
+ err = check_flow_keys_access(env, off, size);
+ if (!err && t == BPF_READ && value_regno >= 0)
+ mark_reg_unknown(env, regs, value_regno);
} else {
verbose(env, "R%d invalid mem access '%s'\n", regno,
reg_type_str[reg->type]);
@@ -1839,6 +1868,8 @@ static int check_helper_mem_access(struct bpf_verifier_env *env, int regno,
case PTR_TO_PACKET_META:
return check_packet_access(env, regno, reg->off, access_size,
zero_size_allowed);
+ case PTR_TO_FLOW_KEYS:
+ return check_flow_keys_access(env, reg->off, access_size);
case PTR_TO_MAP_VALUE:
return check_map_access(env, regno, reg->off, access_size,
zero_size_allowed);
@@ -4366,6 +4397,7 @@ static bool regsafe(struct bpf_reg_state *rold, struct bpf_reg_state *rcur,
case PTR_TO_CTX:
case CONST_PTR_TO_MAP:
case PTR_TO_PACKET_END:
+ case PTR_TO_FLOW_KEYS:
/* Only valid matches are exact, which memcmp() above
* would have accepted
*/
diff --git a/net/core/filter.c b/net/core/filter.c
index bf5b6efd369a..9cc76f134ddb 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -5123,6 +5123,17 @@ sk_skb_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
}
}
+static const struct bpf_func_proto *
+flow_dissector_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
+{
+ switch (func_id) {
+ case BPF_FUNC_skb_load_bytes:
+ return &bpf_skb_load_bytes_proto;
+ default:
+ return bpf_base_func_proto(func_id);
+ }
+}
+
static const struct bpf_func_proto *
lwt_out_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
{
@@ -5241,6 +5252,10 @@ static bool bpf_skb_is_valid_access(int off, int size, enum bpf_access_type type
if (size != size_default)
return false;
break;
+ case bpf_ctx_range(struct __sk_buff, flow_keys):
+ if (size != sizeof(struct bpf_flow_keys *))
+ return false;
+ break;
default:
/* Only narrow read access allowed for now. */
if (type == BPF_WRITE) {
@@ -5266,6 +5281,7 @@ static bool sk_filter_is_valid_access(int off, int size,
case bpf_ctx_range(struct __sk_buff, data):
case bpf_ctx_range(struct __sk_buff, data_meta):
case bpf_ctx_range(struct __sk_buff, data_end):
+ case bpf_ctx_range(struct __sk_buff, flow_keys):
case bpf_ctx_range_till(struct __sk_buff, family, local_port):
return false;
}
@@ -5291,6 +5307,7 @@ static bool lwt_is_valid_access(int off, int size,
case bpf_ctx_range(struct __sk_buff, tc_classid):
case bpf_ctx_range_till(struct __sk_buff, family, local_port):
case bpf_ctx_range(struct __sk_buff, data_meta):
+ case bpf_ctx_range(struct __sk_buff, flow_keys):
return false;
}
@@ -5501,6 +5518,7 @@ static bool tc_cls_act_is_valid_access(int off, int size,
case bpf_ctx_range(struct __sk_buff, data_end):
info->reg_type = PTR_TO_PACKET_END;
break;
+ case bpf_ctx_range(struct __sk_buff, flow_keys):
case bpf_ctx_range_till(struct __sk_buff, family, local_port):
return false;
}
@@ -5702,6 +5720,7 @@ static bool sk_skb_is_valid_access(int off, int size,
switch (off) {
case bpf_ctx_range(struct __sk_buff, tc_classid):
case bpf_ctx_range(struct __sk_buff, data_meta):
+ case bpf_ctx_range(struct __sk_buff, flow_keys):
return false;
}
@@ -5761,6 +5780,39 @@ static bool sk_msg_is_valid_access(int off, int size,
return true;
}
+static bool flow_dissector_is_valid_access(int off, int size,
+ enum bpf_access_type type,
+ const struct bpf_prog *prog,
+ struct bpf_insn_access_aux *info)
+{
+ if (type == BPF_WRITE) {
+ switch (off) {
+ case bpf_ctx_range_till(struct __sk_buff, cb[0], cb[4]):
+ break;
+ default:
+ return false;
+ }
+ }
+
+ switch (off) {
+ case bpf_ctx_range(struct __sk_buff, data):
+ info->reg_type = PTR_TO_PACKET;
+ break;
+ case bpf_ctx_range(struct __sk_buff, data_end):
+ info->reg_type = PTR_TO_PACKET_END;
+ break;
+ case bpf_ctx_range(struct __sk_buff, flow_keys):
+ info->reg_type = PTR_TO_FLOW_KEYS;
+ break;
+ case bpf_ctx_range(struct __sk_buff, tc_classid):
+ case bpf_ctx_range(struct __sk_buff, data_meta):
+ case bpf_ctx_range_till(struct __sk_buff, family, local_port):
+ return false;
+ }
+
+ return bpf_skb_is_valid_access(off, size, type, prog, info);
+}
+
static u32 bpf_convert_ctx_access(enum bpf_access_type type,
const struct bpf_insn *si,
struct bpf_insn *insn_buf,
@@ -6055,6 +6107,15 @@ static u32 bpf_convert_ctx_access(enum bpf_access_type type,
bpf_target_off(struct sock_common,
skc_num, 2, target_size));
break;
+
+ case offsetof(struct __sk_buff, flow_keys):
+ off = si->off;
+ off -= offsetof(struct __sk_buff, flow_keys);
+ off += offsetof(struct sk_buff, cb);
+ off += offsetof(struct qdisc_skb_cb, flow_keys);
+ *insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg,
+ si->src_reg, off);
+ break;
}
return insn - insn_buf;
@@ -7018,6 +7079,15 @@ const struct bpf_verifier_ops sk_msg_verifier_ops = {
const struct bpf_prog_ops sk_msg_prog_ops = {
};
+const struct bpf_verifier_ops flow_dissector_verifier_ops = {
+ .get_func_proto = flow_dissector_func_proto,
+ .is_valid_access = flow_dissector_is_valid_access,
+ .convert_ctx_access = bpf_convert_ctx_access,
+};
+
+const struct bpf_prog_ops flow_dissector_prog_ops = {
+};
+
int sk_detach_filter(struct sock *sk)
{
int ret = -ENOENT;
diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
index ce9eeeb7c024..5c5dd74b5b3b 100644
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
@@ -25,6 +25,9 @@
#include <net/flow_dissector.h>
#include <scsi/fc/fc_fcoe.h>
#include <uapi/linux/batadv_packet.h>
+#include <linux/bpf.h>
+
+static DEFINE_MUTEX(flow_dissector_mutex);
static void dissector_set_key(struct flow_dissector *flow_dissector,
enum flow_dissector_key_id key_id)
@@ -62,6 +65,44 @@ void skb_flow_dissector_init(struct flow_dissector *flow_dissector,
}
EXPORT_SYMBOL(skb_flow_dissector_init);
+int skb_flow_dissector_bpf_prog_attach(const union bpf_attr *attr,
+ struct bpf_prog *prog)
+{
+ struct bpf_prog *attached;
+ struct net *net;
+
+ net = current->nsproxy->net_ns;
+ mutex_lock(&flow_dissector_mutex);
+ attached = rcu_dereference_protected(net->flow_dissector_prog,
+ lockdep_is_held(&flow_dissector_mutex));
+ if (attached) {
+ /* Only one BPF program can be attached at a time */
+ mutex_unlock(&flow_dissector_mutex);
+ return -EEXIST;
+ }
+ rcu_assign_pointer(net->flow_dissector_prog, prog);
+ mutex_unlock(&flow_dissector_mutex);
+ return 0;
+}
+
+int skb_flow_dissector_bpf_prog_detach(const union bpf_attr *attr)
+{
+ struct bpf_prog *attached;
+ struct net *net;
+
+ net = current->nsproxy->net_ns;
+ mutex_lock(&flow_dissector_mutex);
+ attached = rcu_dereference_protected(net->flow_dissector_prog,
+ lockdep_is_held(&flow_dissector_mutex));
+ if (!attached) {
+ mutex_unlock(&flow_dissector_mutex);
+ return -ENOENT;
+ }
+ bpf_prog_put(attached);
+ RCU_INIT_POINTER(net->flow_dissector_prog, NULL);
+ mutex_unlock(&flow_dissector_mutex);
+ return 0;
+}
/**
* skb_flow_get_be16 - extract be16 entity
* @skb: sk_buff to extract from
@@ -588,6 +629,60 @@ static bool skb_flow_dissect_allowed(int *num_hdrs)
return (*num_hdrs <= MAX_FLOW_DISSECT_HDRS);
}
+static void __skb_flow_bpf_to_target(const struct bpf_flow_keys *flow_keys,
+ struct flow_dissector *flow_dissector,
+ void *target_container)
+{
+ struct flow_dissector_key_control *key_control;
+ struct flow_dissector_key_basic *key_basic;
+ struct flow_dissector_key_addrs *key_addrs;
+ struct flow_dissector_key_ports *key_ports;
+
+ key_control = skb_flow_dissector_target(flow_dissector,
+ FLOW_DISSECTOR_KEY_CONTROL,
+ target_container);
+ key_control->thoff = flow_keys->thoff;
+ if (flow_keys->is_frag)
+ key_control->flags |= FLOW_DIS_IS_FRAGMENT;
+ if (flow_keys->is_first_frag)
+ key_control->flags |= FLOW_DIS_FIRST_FRAG;
+ if (flow_keys->is_encap)
+ key_control->flags |= FLOW_DIS_ENCAPSULATION;
+
+ key_basic = skb_flow_dissector_target(flow_dissector,
+ FLOW_DISSECTOR_KEY_BASIC,
+ target_container);
+ key_basic->n_proto = flow_keys->n_proto;
+ key_basic->ip_proto = flow_keys->ip_proto;
+
+ if (flow_keys->addr_proto == ETH_P_IP &&
+ dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_IPV4_ADDRS)) {
+ key_addrs = skb_flow_dissector_target(flow_dissector,
+ FLOW_DISSECTOR_KEY_IPV4_ADDRS,
+ target_container);
+ key_addrs->v4addrs.src = flow_keys->ipv4_src;
+ key_addrs->v4addrs.dst = flow_keys->ipv4_dst;
+ key_control->addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS;
+ } else if (flow_keys->addr_proto == ETH_P_IPV6 &&
+ dissector_uses_key(flow_dissector,
+ FLOW_DISSECTOR_KEY_IPV6_ADDRS)) {
+ key_addrs = skb_flow_dissector_target(flow_dissector,
+ FLOW_DISSECTOR_KEY_IPV6_ADDRS,
+ target_container);
+ memcpy(&key_addrs->v6addrs, &flow_keys->ipv6_src,
+ sizeof(key_addrs->v6addrs));
+ key_control->addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
+ }
+
+ if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_PORTS)) {
+ key_ports = skb_flow_dissector_target(flow_dissector,
+ FLOW_DISSECTOR_KEY_PORTS,
+ target_container);
+ key_ports->src = flow_keys->sport;
+ key_ports->dst = flow_keys->dport;
+ }
+}
+
/**
* __skb_flow_dissect - extract the flow_keys struct and return it
* @skb: sk_buff to extract the flow from, can be NULL if the rest are specified
@@ -619,6 +714,7 @@ bool __skb_flow_dissect(const struct sk_buff *skb,
struct flow_dissector_key_vlan *key_vlan;
enum flow_dissect_ret fdret;
enum flow_dissector_key_id dissector_vlan = FLOW_DISSECTOR_KEY_MAX;
+ struct bpf_prog *attached;
int num_hdrs = 0;
u8 ip_proto = 0;
bool ret;
@@ -658,6 +754,44 @@ bool __skb_flow_dissect(const struct sk_buff *skb,
FLOW_DISSECTOR_KEY_BASIC,
target_container);
+ rcu_read_lock();
+ attached = skb ? rcu_dereference(dev_net(skb->dev)->flow_dissector_prog)
+ : NULL;
+ if (attached) {
+ /* Note that even though the const qualifier is discarded
+ * throughout the execution of the BPF program, all changes(the
+ * control block) are reverted after the BPF program returns.
+ * Therefore, __skb_flow_dissect does not alter the skb.
+ */
+ struct bpf_flow_keys flow_keys = {};
+ struct bpf_skb_data_end cb_saved;
+ struct bpf_skb_data_end *cb;
+ u32 result;
+
+ cb = (struct bpf_skb_data_end *)skb->cb;
+
+ /* Save Control Block */
+ memcpy(&cb_saved, cb, sizeof(cb_saved));
+ memset(cb, 0, sizeof(cb_saved));
+
+ /* Pass parameters to the BPF program */
+ cb->qdisc_cb.flow_keys = &flow_keys;
+ flow_keys.nhoff = nhoff;
+
+ bpf_compute_data_pointers((struct sk_buff *)skb);
+ result = BPF_PROG_RUN(attached, skb);
+
+ /* Restore state */
+ memcpy(cb, &cb_saved, sizeof(cb_saved));
+
+ __skb_flow_bpf_to_target(&flow_keys, flow_dissector,
+ target_container);
+ key_control->thoff = min_t(u16, key_control->thoff, skb->len);
+ rcu_read_unlock();
+ return result == BPF_OK;
+ }
+ rcu_read_unlock();
+
if (dissector_uses_key(flow_dissector,
FLOW_DISSECTOR_KEY_ETH_ADDRS)) {
struct ethhdr *eth = eth_hdr(skb);
--
2.19.0.397.gdd90340f6a-goog
^ permalink raw reply related
* [bpf-next, v4 0/5] Introduce eBPF flow dissector
From: Petar Penkov @ 2018-09-14 14:46 UTC (permalink / raw)
To: netdev
Cc: davem, ast, daniel, simon.horman, ecree, songliubraving, tom,
Petar Penkov
From: Petar Penkov <ppenkov@google.com>
This patch series hardens the RX stack by allowing flow dissection in BPF,
as previously discussed [1]. Because of the rigorous checks of the BPF
verifier, this provides significant security guarantees. In particular, the
BPF flow dissector cannot get inside of an infinite loop, as with
CVE-2013-4348, because BPF programs are guaranteed to terminate. It cannot
read outside of packet bounds, because all memory accesses are checked.
Also, with BPF the administrator can decide which protocols to support,
reducing potential attack surface. Rarely encountered protocols can be
excluded from dissection and the program can be updated without kernel
recompile or reboot if a bug is discovered.
Patch 1 adds infrastructure to execute a BPF program in __skb_flow_dissect.
This includes a new BPF program and attach type.
Patch 2 adds the new BPF flow dissector definitions to tools/uapi.
Patch 3 adds support for the new BPF program type to libbpf and bpftool.
Patch 4 adds a flow dissector program in BPF. This parses most protocols in
__skb_flow_dissect in BPF for a subset of flow keys (basic, control, ports,
and address types).
Patch 5 adds a selftest that attaches the BPF program to the flow dissector
and sends traffic with different levels of encapsulation.
Performance Evaluation:
The in-kernel implementation was compared against the demo program from
patch 4 using the test in patch 5 with IPv4/UDP traffic over 10 seconds.
$perf record -a -C 4 taskset -c 4 ./test_flow_dissector -i 4 -f 8 \
-t 10
In-kernel Dissector:
__skb_flow_dissect overhead: 2.12%
Total Packets: 3,272,597 (from output of ./test_flow_dissector)
BPF Dissector:
__skb_flow_dissect overhead: 1.63%
Total Packets: 3,232,356 (from output of ./test_flow_dissector)
No-op BPF Dissector:
__skb_flow_dissect overhead: 1.52%
Total Packets: 3,330,635 (from output of ./test_flow_dissector)
Changes since v3:
1/ struct bpf_flow_keys reorganized to remove holes in patch 1 and patch 2.
Changes since v2:
1/ Changes to tools/include/uapi pulled into a separate patch 2
2/ Changes to tools/lib and tools/bpftool pulled into a separate patch 3
3/ Changed flow_keys in __sk_buff from __u32 to struct bpf_flow_keys *
4/ Added nhoff field in struct bpf_flow_keys to pass initial offset
5/ Saving all of the modified control block, rather than just the qdisc
6/ Sample BPF program in patch 4 modified to use the changes above
Changes since v1:
1/ LD_ABS instructions now disallowed for the new BPF prog type
2/ now checks if skb is NULL in __skb_flow_dissect()
3/ fixed incorrect accesses in flow_dissector_is_valid_access()
- writes to the flow_keys field now disallowed
- reads/writes to tc_classid and data_meta now disallowed
4/ headers pulled with bpf_skb_load_data if direct access fails
Changes since RFC:
1/ Flow dissector hook changed from global to per-netns
2/ Defined struct bpf_flow_keys to be used in BPF flow dissector
programs instead of exposing the internal flow keys layout. Added a
function to translate from bpf_flow_keys to the internal layout after BPF
dissection is complete. The pointer to this struct is stored in
qdisc_skb_cb rather than inside of the 20 byte control block which
simplifies verification and allows access to all 20 bytes of the cb.
3/ Removed GUE parsing as it relied on a hardcoded port
4/ MPLS parsing now stops at the first label which is consistent
with the in-kernel flow dissector
5/ Refactored to use direct packet access and to write out to
struct bpf_flow_keys
[1] http://vger.kernel.org/netconf2017_files/rx_hardening_and_udp_gso.pdf
Petar Penkov (5):
flow_dissector: implements flow dissector BPF hook
bpf: sync bpf.h uapi with tools/
bpf: support flow dissector in libbpf and bpftool
flow_dissector: implements eBPF parser
selftests/bpf: test bpf flow dissection
include/linux/bpf.h | 1 +
include/linux/bpf_types.h | 1 +
include/linux/skbuff.h | 7 +
include/net/net_namespace.h | 3 +
include/net/sch_generic.h | 12 +-
include/uapi/linux/bpf.h | 26 +
kernel/bpf/syscall.c | 8 +
kernel/bpf/verifier.c | 32 +
net/core/filter.c | 70 ++
net/core/flow_dissector.c | 134 +++
tools/bpf/bpftool/prog.c | 1 +
tools/include/uapi/linux/bpf.h | 26 +
tools/lib/bpf/libbpf.c | 2 +
tools/testing/selftests/bpf/.gitignore | 2 +
tools/testing/selftests/bpf/Makefile | 8 +-
tools/testing/selftests/bpf/bpf_flow.c | 373 +++++++++
tools/testing/selftests/bpf/config | 1 +
.../selftests/bpf/flow_dissector_load.c | 140 ++++
.../selftests/bpf/test_flow_dissector.c | 782 ++++++++++++++++++
.../selftests/bpf/test_flow_dissector.sh | 115 +++
tools/testing/selftests/bpf/with_addr.sh | 54 ++
tools/testing/selftests/bpf/with_tunnels.sh | 36 +
22 files changed, 1828 insertions(+), 6 deletions(-)
create mode 100644 tools/testing/selftests/bpf/bpf_flow.c
create mode 100644 tools/testing/selftests/bpf/flow_dissector_load.c
create mode 100644 tools/testing/selftests/bpf/test_flow_dissector.c
create mode 100755 tools/testing/selftests/bpf/test_flow_dissector.sh
create mode 100755 tools/testing/selftests/bpf/with_addr.sh
create mode 100755 tools/testing/selftests/bpf/with_tunnels.sh
--
2.19.0.397.gdd90340f6a-goog
^ permalink raw reply
* [PATCH v2 2/2] hv_netvsc: pair VF based on serial number
From: Stephen Hemminger @ 2018-09-14 19:54 UTC (permalink / raw)
To: kys, haiyangz, sthemmin; +Cc: devel, linux-pci, netdev
In-Reply-To: <20180914195457.20433-1-sthemmin@microsoft.com>
Matching network device based on MAC address is problematic
since a non VF network device can be creted with a duplicate MAC
address causing confusion and problems. The VMBus API does provide
a serial number that is a better matching method.
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
drivers/net/hyperv/netvsc.c | 3 ++
drivers/net/hyperv/netvsc_drv.c | 58 +++++++++++++++++++--------------
2 files changed, 36 insertions(+), 25 deletions(-)
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index 31c3d77b4733..fe01e141c8f8 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -1203,6 +1203,9 @@ static void netvsc_send_vf(struct net_device *ndev,
net_device_ctx->vf_alloc = nvmsg->msg.v4_msg.vf_assoc.allocated;
net_device_ctx->vf_serial = nvmsg->msg.v4_msg.vf_assoc.serial;
+ netdev_info(ndev, "VF slot %u %s\n",
+ net_device_ctx->vf_serial,
+ net_device_ctx->vf_alloc ? "added" : "removed");
}
static void netvsc_receive_inband(struct net_device *ndev,
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index 1121a1ec407c..9dedc1463e88 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -1894,20 +1894,6 @@ static void netvsc_link_change(struct work_struct *w)
rtnl_unlock();
}
-static struct net_device *get_netvsc_bymac(const u8 *mac)
-{
- struct net_device_context *ndev_ctx;
-
- list_for_each_entry(ndev_ctx, &netvsc_dev_list, list) {
- struct net_device *dev = hv_get_drvdata(ndev_ctx->device_ctx);
-
- if (ether_addr_equal(mac, dev->perm_addr))
- return dev;
- }
-
- return NULL;
-}
-
static struct net_device *get_netvsc_byref(struct net_device *vf_netdev)
{
struct net_device_context *net_device_ctx;
@@ -2036,26 +2022,48 @@ static void netvsc_vf_setup(struct work_struct *w)
rtnl_unlock();
}
+/* Find netvsc by VMBus serial number.
+ * The PCI hyperv controller records the serial number as the slot.
+ */
+static struct net_device *get_netvsc_byslot(const struct net_device *vf_netdev)
+{
+ struct device *parent = vf_netdev->dev.parent;
+ struct net_device_context *ndev_ctx;
+ struct pci_dev *pdev;
+
+ if (!parent || !dev_is_pci(parent))
+ return NULL; /* not a PCI device */
+
+ pdev = to_pci_dev(parent);
+ if (!pdev->slot) {
+ netdev_notice(vf_netdev, "no PCI slot information\n");
+ return NULL;
+ }
+
+ list_for_each_entry(ndev_ctx, &netvsc_dev_list, list) {
+ if (!ndev_ctx->vf_alloc)
+ continue;
+
+ if (ndev_ctx->vf_serial == pdev->slot->number)
+ return hv_get_drvdata(ndev_ctx->device_ctx);
+ }
+
+ netdev_notice(vf_netdev,
+ "no netdev found for slot %u\n", pdev->slot->number);
+ return NULL;
+}
+
static int netvsc_register_vf(struct net_device *vf_netdev)
{
- struct net_device *ndev;
struct net_device_context *net_device_ctx;
- struct device *pdev = vf_netdev->dev.parent;
struct netvsc_device *netvsc_dev;
+ struct net_device *ndev;
int ret;
if (vf_netdev->addr_len != ETH_ALEN)
return NOTIFY_DONE;
- if (!pdev || !dev_is_pci(pdev) || dev_is_pf(pdev))
- return NOTIFY_DONE;
-
- /*
- * We will use the MAC address to locate the synthetic interface to
- * associate with the VF interface. If we don't find a matching
- * synthetic interface, move on.
- */
- ndev = get_netvsc_bymac(vf_netdev->perm_addr);
+ ndev = get_netvsc_byslot(vf_netdev);
if (!ndev)
return NOTIFY_DONE;
--
2.18.0
^ permalink raw reply related
* [PATCH v2 1/2] PCI: hv: support reporting serial number as slot information
From: Stephen Hemminger @ 2018-09-14 19:54 UTC (permalink / raw)
To: kys, haiyangz, sthemmin; +Cc: devel, linux-pci, netdev
In-Reply-To: <20180914195457.20433-1-sthemmin@microsoft.com>
The Hyper-V host API for PCI provides a unique "serial number" which
can be used as basis for sysfs PCI slot table. This can be useful
for cases where userspace wants to find the PCI device based on
serial number.
When an SR-IOV NIC is added, the host sends an attach message
with serial number. The kernel doesn't use the serial number, but
it is useful when doing the same thing in a userspace driver such
as the DPDK. By having /sys/bus/pci/slots/N it provides a direct
way to find the matching PCI device.
There maybe some cases where serial number is not unique such
as when using GPU's. But the PCI slot infrastructure will handle
that.
This has a side effect which may also be useful. The common udev
network device naming policy uses the slot information (rather
than PCI address).
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
drivers/pci/controller/pci-hyperv.c | 37 +++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c
index c00f82cc54aa..ee80e79db21a 100644
--- a/drivers/pci/controller/pci-hyperv.c
+++ b/drivers/pci/controller/pci-hyperv.c
@@ -89,6 +89,9 @@ static enum pci_protocol_version_t pci_protocol_version;
#define STATUS_REVISION_MISMATCH 0xC0000059
+/* space for 32bit serial number as string */
+#define SLOT_NAME_SIZE 11
+
/*
* Message Types
*/
@@ -494,6 +497,7 @@ struct hv_pci_dev {
struct list_head list_entry;
refcount_t refs;
enum hv_pcichild_state state;
+ struct pci_slot *pci_slot;
struct pci_function_description desc;
bool reported_missing;
struct hv_pcibus_device *hbus;
@@ -1457,6 +1461,34 @@ static void prepopulate_bars(struct hv_pcibus_device *hbus)
spin_unlock_irqrestore(&hbus->device_list_lock, flags);
}
+/*
+ * Assign entries in sysfs pci slot directory.
+ *
+ * Note that this function does not need to lock the children list
+ * because it is called from pci_devices_present_work which
+ * is serialized with hv_eject_device_work because they are on the
+ * same ordered workqueue. Therefore hbus->children list will not change
+ * even when pci_create_slot sleeps.
+ */
+static void hv_pci_assign_slots(struct hv_pcibus_device *hbus)
+{
+ struct hv_pci_dev *hpdev;
+ char name[SLOT_NAME_SIZE];
+ int slot_nr;
+
+ list_for_each_entry(hpdev, &hbus->children, list_entry) {
+ if (hpdev->pci_slot)
+ continue;
+
+ slot_nr = PCI_SLOT(wslot_to_devfn(hpdev->desc.win_slot.slot));
+ snprintf(name, SLOT_NAME_SIZE, "%u", hpdev->desc.ser);
+ hpdev->pci_slot = pci_create_slot(hbus->pci_bus, slot_nr,
+ name, NULL);
+ if (!hpdev->pci_slot)
+ pr_warn("pci_create slot %s failed\n", name);
+ }
+}
+
/**
* create_root_hv_pci_bus() - Expose a new root PCI bus
* @hbus: Root PCI bus, as understood by this driver
@@ -1480,6 +1512,7 @@ static int create_root_hv_pci_bus(struct hv_pcibus_device *hbus)
pci_lock_rescan_remove();
pci_scan_child_bus(hbus->pci_bus);
pci_bus_assign_resources(hbus->pci_bus);
+ hv_pci_assign_slots(hbus);
pci_bus_add_devices(hbus->pci_bus);
pci_unlock_rescan_remove();
hbus->state = hv_pcibus_installed;
@@ -1742,6 +1775,7 @@ static void pci_devices_present_work(struct work_struct *work)
*/
pci_lock_rescan_remove();
pci_scan_child_bus(hbus->pci_bus);
+ hv_pci_assign_slots(hbus);
pci_unlock_rescan_remove();
break;
@@ -1858,6 +1892,9 @@ static void hv_eject_device_work(struct work_struct *work)
list_del(&hpdev->list_entry);
spin_unlock_irqrestore(&hpdev->hbus->device_list_lock, flags);
+ if (hpdev->pci_slot)
+ pci_destroy_slot(hpdev->pci_slot);
+
memset(&ctxt, 0, sizeof(ctxt));
ejct_pkt = (struct pci_eject_response *)&ctxt.pkt.message;
ejct_pkt->message_type.type = PCI_EJECTION_COMPLETE;
--
2.18.0
^ permalink raw reply related
* [PATCH v2 0/2] hv_netvsc: associate VF and PV device by serial number
From: Stephen Hemminger @ 2018-09-14 19:54 UTC (permalink / raw)
To: kys, haiyangz, sthemmin; +Cc: devel, linux-pci, netdev
The Hyper-V implementation of PCI controller has concept of 32 bit serial number
(not to be confused with PCI-E serial number). This value is sent in the protocol
from the host to indicate SR-IOV VF device is attached to a synthetic NIC.
Using the serial number (instead of MAC address) to associate the two devices
avoids lots of potential problems when there are duplicate MAC addresses from
tunnels or layered devices.
The patch set is broken into two parts, one is for the PCI controller
and the other is for the netvsc device. Normally, these go through different
trees but sending them together here for better review. The PCI changes
were submitted previously, but the main review comment was "why do you
need this?". This is why.
v2 - slot name can be shorter.
remove locking when creating pci_slots; see comment for explaination
Stephen Hemminger (2):
PCI: hv: support reporting serial number as slot information
hv_netvsc: pair VF based on serial number
drivers/net/hyperv/netvsc.c | 3 ++
drivers/net/hyperv/netvsc_drv.c | 58 ++++++++++++++++-------------
drivers/pci/controller/pci-hyperv.c | 37 ++++++++++++++++++
3 files changed, 73 insertions(+), 25 deletions(-)
--
2.18.0
^ permalink raw reply
* Re: [PATCH net] pppoe: fix reception of frames with no mac header
From: Guillaume Nault @ 2018-09-14 14:35 UTC (permalink / raw)
To: netdev; +Cc: Alexander Potapenko, Michal Ostrowski, Eric Dumazet
In-Reply-To: <274ac54fa02052104201d4738a6326a637e87a83.1536935190.git.g.nault@alphalink.fr>
On Fri, Sep 14, 2018 at 04:28:05PM +0200, Guillaume Nault wrote:
> pppoe_rcv() needs to look back at the Ethernet header in order to
> lookup the PPPoE session. Therefore we need to ensure that the mac
> header is big enough to contain an Ethernet header. Otherwise
> eth_hdr(skb)->h_source might access invalid data.
>
Forgot to Cc Alexander :/
Sorry...
BTW, thanks for your first analysis.
^ permalink raw reply
* [PATCH net] pppoe: fix reception of frames with no mac header
From: Guillaume Nault @ 2018-09-14 14:28 UTC (permalink / raw)
To: netdev; +Cc: Michal Ostrowski, Eric Dumazet
pppoe_rcv() needs to look back at the Ethernet header in order to
lookup the PPPoE session. Therefore we need to ensure that the mac
header is big enough to contain an Ethernet header. Otherwise
eth_hdr(skb)->h_source might access invalid data.
==================================================================
BUG: KMSAN: uninit-value in __get_item drivers/net/ppp/pppoe.c:172 [inline]
BUG: KMSAN: uninit-value in get_item drivers/net/ppp/pppoe.c:236 [inline]
BUG: KMSAN: uninit-value in pppoe_rcv+0xcef/0x10e0 drivers/net/ppp/pppoe.c:450
CPU: 0 PID: 4543 Comm: syz-executor355 Not tainted 4.16.0+ #87
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google
01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:17 [inline]
dump_stack+0x185/0x1d0 lib/dump_stack.c:53
kmsan_report+0x142/0x240 mm/kmsan/kmsan.c:1067
__msan_warning_32+0x6c/0xb0 mm/kmsan/kmsan_instr.c:683
__get_item drivers/net/ppp/pppoe.c:172 [inline]
get_item drivers/net/ppp/pppoe.c:236 [inline]
pppoe_rcv+0xcef/0x10e0 drivers/net/ppp/pppoe.c:450
__netif_receive_skb_core+0x47df/0x4a90 net/core/dev.c:4562
__netif_receive_skb net/core/dev.c:4627 [inline]
netif_receive_skb_internal+0x49d/0x630 net/core/dev.c:4701
netif_receive_skb+0x230/0x240 net/core/dev.c:4725
tun_rx_batched drivers/net/tun.c:1555 [inline]
tun_get_user+0x740f/0x7c60 drivers/net/tun.c:1962
tun_chr_write_iter+0x1d4/0x330 drivers/net/tun.c:1990
call_write_iter include/linux/fs.h:1782 [inline]
new_sync_write fs/read_write.c:469 [inline]
__vfs_write+0x7fb/0x9f0 fs/read_write.c:482
vfs_write+0x463/0x8d0 fs/read_write.c:544
SYSC_write+0x172/0x360 fs/read_write.c:589
SyS_write+0x55/0x80 fs/read_write.c:581
do_syscall_64+0x309/0x430 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x3d/0xa2
RIP: 0033:0x4447c9
RSP: 002b:00007fff64c8fc28 EFLAGS: 00000297 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00000000004447c9
RDX: 000000000000fd87 RSI: 0000000020000600 RDI: 0000000000000004
RBP: 00000000006cf018 R08: 00007fff64c8fda8 R09: 00007fff00006bda
R10: 0000000000005fe7 R11: 0000000000000297 R12: 00000000004020d0
R13: 0000000000402160 R14: 0000000000000000 R15: 0000000000000000
Uninit was created at:
kmsan_save_stack_with_flags mm/kmsan/kmsan.c:278 [inline]
kmsan_internal_poison_shadow+0xb8/0x1b0 mm/kmsan/kmsan.c:188
kmsan_kmalloc+0x94/0x100 mm/kmsan/kmsan.c:314
kmsan_slab_alloc+0x11/0x20 mm/kmsan/kmsan.c:321
slab_post_alloc_hook mm/slab.h:445 [inline]
slab_alloc_node mm/slub.c:2737 [inline]
__kmalloc_node_track_caller+0xaed/0x11c0 mm/slub.c:4369
__kmalloc_reserve net/core/skbuff.c:138 [inline]
__alloc_skb+0x2cf/0x9f0 net/core/skbuff.c:206
alloc_skb include/linux/skbuff.h:984 [inline]
alloc_skb_with_frags+0x1d4/0xb20 net/core/skbuff.c:5234
sock_alloc_send_pskb+0xb56/0x1190 net/core/sock.c:2085
tun_alloc_skb drivers/net/tun.c:1532 [inline]
tun_get_user+0x2242/0x7c60 drivers/net/tun.c:1829
tun_chr_write_iter+0x1d4/0x330 drivers/net/tun.c:1990
call_write_iter include/linux/fs.h:1782 [inline]
new_sync_write fs/read_write.c:469 [inline]
__vfs_write+0x7fb/0x9f0 fs/read_write.c:482
vfs_write+0x463/0x8d0 fs/read_write.c:544
SYSC_write+0x172/0x360 fs/read_write.c:589
SyS_write+0x55/0x80 fs/read_write.c:581
do_syscall_64+0x309/0x430 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x3d/0xa2
==================================================================
Fixes: 224cf5ad14c0 ("ppp: Move the PPP drivers")
Reported-by: syzbot+f5f6080811c849739212@syzkaller.appspotmail.com
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
---
drivers/net/ppp/pppoe.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c
index ce61231e96ea..62dc564b251d 100644
--- a/drivers/net/ppp/pppoe.c
+++ b/drivers/net/ppp/pppoe.c
@@ -429,6 +429,9 @@ static int pppoe_rcv(struct sk_buff *skb, struct net_device *dev,
if (!skb)
goto out;
+ if (skb_mac_header_len(skb) < ETH_HLEN)
+ goto drop;
+
if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr)))
goto drop;
--
2.19.0
^ 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