* Question about packet schedulers
From: Alexey Perevalov @ 2012-11-28 12:24 UTC (permalink / raw)
To: netdev
Hello All,
I need a packet scheduler with very interesting behavior.
Such packet scheduler should maximize idle time and send available
packets on tiny time frame,
on huge time frame it should wait and accumulate packets. These time
intervals should be tweaked.
--
Best regards,
Alexey Perevalov,
^ permalink raw reply
* Re: Specific question about packet dropping
From: Shan Wei @ 2012-11-28 12:23 UTC (permalink / raw)
To: Javier Domingo; +Cc: netdev
In-Reply-To: <CALZVapkZpRRh+ruf-QWbv_pFYtZgdx7US7Zc6x0kgMmmAsnAPg@mail.gmail.com>
Javier Domingo said, at 2012/11/28 19:50:
> Thank you very much, I (don't know why) thought the packets were being
> smashed in the dma memory.
Maybe your kernel/application handles the packets so slower than that
NIC receives.
>> Best Regards
>> Shan Wei
>>
>>>
>>> Javier Domingo
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe netdev" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>
>>
>
^ permalink raw reply
* Re: [RFC PATCH] tcp: introduce raw access to experimental options
From: Yuchung Cheng @ 2012-11-28 12:01 UTC (permalink / raw)
To: elelueck; +Cc: netdev, frankbla, raspl, ubacher, samudrala, davem
In-Reply-To: <1353084898-42264-1-git-send-email-elelueck@linux.vnet.ibm.com>
On Sat, Nov 17, 2012 at 12:54 AM, <elelueck@linux.vnet.ibm.com> wrote:
> From: Einar Lueck <elelueck@linux.vnet.ibm.com>
>
> This patch adds means for raw acces to TCP expirimental options
> 253 and 254. The intention of this is to enable user space
> applications to implement communication behaviour that depends
> on experimental options. For that, new (set|get)sockopts are
Could you elaborate on the use case? I am having a hard time
understanding that. If you need to use experimental options for your
applications, why not just use another magic number according to
draft-ietf-tcpm-experimental-options-02 (since you cite that too)?
> introduced:
>
> TCP_EXPOPTS (get & set): TCP experimental options to be added to
> packets
> TCP_RECV_EXPOPTS (get): experimental options received with last
> packet
> TCP_RECV_SYN_EXPOPTS (get): experimental options received with
> SYN packet
>
> TCP experimental options 253 and 254 configured via TCP_EXPOPTS on
> any TCP socket are appended to every packet that is sent as long
> as there is enough room left. If there is not enough room left they
> are silently dropped.
>
> Listening sockets reply to SYN packets with SYN ACK packets containing
> TCP experimental options 253 and 254 as configured via TCP_EXPOPTS, too.
> If a TCP connection gets established the configured experimental options
> are the defaults for the new socket, too. Thus, a getsockopt on the
> resulting accept socket for TCP_EXPOPTS returns the same stuff configured
> on the listening socket.
>
> As mentioned above, even after the 3whs is complete, experimental options
> are sent with every packet. To enable user space applications to distinguish
> between what has been advertized via SYN and what has been received with the
> last packet the aforementioned TCP_RECV_SYN_EXPOPTS and TCP_RECV_EXPOPTS are
> introduced.
>
> Today, experimental option 253 (COOKIE) and 254 (FASTOPEN) are already
> exploited. For co-existence the following approach has been taken:
>
> General remarks:
> * Interface to COOKIE and FASTOPEN stays the same
> Sender side:
> 1. COOKIE and FASTPATH code adds own options first (if applicable)
> 2. Finally, if enough room is left, TCP_EXPOPTS experimental options are
> appended
> Receiver side:
> 1. ALL 253 and 254 experimental options are made available via
> TCP_RECV(_SYN)_EXPOPTS
> 2. COOKIE and FASTOPEN code check if there is any option relevant for them
>
> References:
> http://tools.ietf.org/html/draft-ietf-tcpm-experimental-options-02
>
> Signed-off-by: Einar Lueck <elelueck@linux.vnet.ibm.com>
> ---
> include/linux/tcp.h | 25 ++++++++++
> include/net/tcp.h | 3 ++
> net/ipv4/tcp.c | 110 +++++++++++++++++++++++++++++++++++++++++++
> net/ipv4/tcp_input.c | 119 +++++++++++++++++++++++++++++++----------------
> net/ipv4/tcp_ipv4.c | 14 ++++++
> net/ipv4/tcp_minisocks.c | 17 +++++++
> net/ipv4/tcp_output.c | 37 ++++++++++++---
> 7 files changed, 279 insertions(+), 46 deletions(-)
>
> diff --git a/include/linux/tcp.h b/include/linux/tcp.h
> index eb125a4..b2a6451 100644
> --- a/include/linux/tcp.h
> +++ b/include/linux/tcp.h
> @@ -110,6 +110,10 @@ enum {
> #define TCP_REPAIR_QUEUE 20
> #define TCP_QUEUE_SEQ 21
> #define TCP_REPAIR_OPTIONS 22
> +#define TCP_EXPOPTS 23 /* TCP exp. options (configured) */
> +#define TCP_RECV_EXPOPTS 24 /* TCP exp. options (received) */
> +#define TCP_RECV_SYN_EXPOPTS 25 /* TCP exp. options
> + (received with syn)) */
>
> struct tcp_repair_opt {
> __u32 opt_code;
> @@ -269,6 +273,8 @@ struct tcp_sack_block {
> #define TCP_FACK_ENABLED (1 << 1) /*1 = FACK is enabled locally*/
> #define TCP_DSACK_SEEN (1 << 2) /*1 = DSACK was received from peer*/
>
> +#define TCP_EXPOP_MAXLEN 40
> +
> struct tcp_options_received {
> /* PAWS/RTTM data */
> long ts_recent_stamp;/* Time we stored ts_recent (for aging) */
> @@ -288,6 +294,9 @@ struct tcp_options_received {
> u8 num_sacks; /* Number of SACK blocks */
> u16 user_mss; /* mss requested by user in ioctl */
> u16 mss_clamp; /* Maximal mss, negotiated at connection setup */
> + u8 exp_opts_len; /* length of buffer containing all exp
> + options in format: kind length data */
> + u8 exp_opts[TCP_EXPOP_MAXLEN]; /* experimental options */
> };
>
> static inline void tcp_clear_options(struct tcp_options_received *rx_opt)
> @@ -295,6 +304,7 @@ static inline void tcp_clear_options(struct tcp_options_received *rx_opt)
> rx_opt->tstamp_ok = rx_opt->sack_ok = 0;
> rx_opt->wscale_ok = rx_opt->snd_wscale = 0;
> rx_opt->cookie_plus = 0;
> + rx_opt->exp_opts_len = 0;
> }
>
> /* This is the max number of SACKS that we'll generate and process. It's safe
> @@ -315,6 +325,10 @@ struct tcp_request_sock {
> u32 rcv_isn;
> u32 snt_isn;
> u32 snt_synack; /* synack sent time */
> +
> + u8 syn_expopts[TCP_EXPOP_MAXLEN]; /* experimental options
> + received with SYNACK */
> + u8 syn_expopts_len;
> };
>
> static inline struct tcp_request_sock *tcp_rsk(const struct request_sock *req)
> @@ -406,6 +420,17 @@ struct tcp_sock {
> u32 snd_up; /* Urgent pointer */
>
> u8 keepalive_probes; /* num of allowed keep alive probes */
> +
> + /* for raw acces to experimental options */
> + struct {
> + u8 *conf; /* lazy allocation of TCP_EXPOP_MAXLEN bytes
> + for raw access to experimental options */
> + u8 conf_len; /* bytes actually used for experimental opts */
> + u8 *syn; /* experimental options received with SYN,
> + allocated only if received */
> + u8 syn_len; /* bytes of experimental options actually
> + received with SYN */
> + } exp_opts;
> /*
> * Options received (usually on last packet, some only on SYN packets).
> */
> diff --git a/include/net/tcp.h b/include/net/tcp.h
> index 1f000ff..b63d5c9 100644
> --- a/include/net/tcp.h
> +++ b/include/net/tcp.h
> @@ -170,6 +170,8 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
> #define TCPOPT_TIMESTAMP 8 /* Better RTT estimations/PAWS */
> #define TCPOPT_MD5SIG 19 /* MD5 Signature (RFC2385) */
> #define TCPOPT_COOKIE 253 /* Cookie extension (experimental) */
> +#define TCPOPT_EXP253 253 /* TCP experimental option 253 */
> +#define TCPOPT_EXP254 254 /* TCP experimental option 254 */
> #define TCPOPT_EXP 254 /* Experimental */
> /* Magic number to be after the option value for sharing TCP
> * experimental options. See draft-ietf-tcpm-experimental-options-00.txt
> @@ -180,6 +182,7 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
> * TCP option lengths
> */
>
> +#define TCPOLEN_MAX_ANYEXP 40
> #define TCPOLEN_MSS 4
> #define TCPOLEN_WINDOW 3
> #define TCPOLEN_SACK_PERM 2
> diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
> index 5f64193..e7e4947 100644
> --- a/net/ipv4/tcp.c
> +++ b/net/ipv4/tcp.c
> @@ -423,6 +423,12 @@ void tcp_init_sock(struct sock *sk)
> sk->sk_sndbuf = sysctl_tcp_wmem[1];
> sk->sk_rcvbuf = sysctl_tcp_rmem[1];
>
> + /* memory for raw access to experimental options is allocated lazy */
> + tp->exp_opts.conf = NULL;
> + tp->exp_opts.conf_len = 0;
> + tp->exp_opts.syn = NULL;
> + tp->exp_opts.syn_len = 0;
> +
> local_bh_disable();
> sock_update_memcg(sk);
> sk_sockets_allocated_inc(sk);
> @@ -2376,6 +2382,53 @@ static int do_tcp_setsockopt(struct sock *sk, int level,
>
> /* These are data/string values, all the others are ints */
> switch (optname) {
> + case TCP_EXPOPTS: {
> + u8 conf[TCP_EXPOP_MAXLEN];
> +
> + if (optlen > TCP_EXPOP_MAXLEN || (optlen < 4 && optlen > 0) ||
> + (optlen % 4 > 0))
> + return -EINVAL;
> + if (optlen > 0 && !optval)
> + return -EINVAL;
> +
> + /* filter for raw access to supported options */
> + if (optlen) {
> + u8 i;
> +
> + if (copy_from_user(conf, optval, optlen))
> + return -EFAULT;
> +
> + i = 0;
> + while (i < optlen) {
> + if (conf[i] != TCPOPT_EXP253 &&
> + conf[i] != TCPOPT_EXP254)
> + return -EINVAL;
> +
> + if (i + 1 < optlen) {
> + i += conf[i+1];
> + if (i > optlen)
> + return -EINVAL;
> + } else {
> + return -EINVAL;
> + }
> + }
> + }
> +
> + lock_sock(sk);
> + if (!optlen) {
> + tp->exp_opts.conf_len = 0;
> + release_sock(sk);
> + return 0;
> + }
> + if (!tp->exp_opts.conf) {
> + tp->exp_opts.conf = kzalloc(TCP_EXPOP_MAXLEN,
> + sk->sk_allocation);
> + }
> + memcpy(tp->exp_opts.conf, conf, optlen);
> + tp->exp_opts.conf_len = optlen;
> + release_sock(sk);
> + return err;
> + }
> case TCP_CONGESTION: {
> char name[TCP_CA_NAME_MAX];
>
> @@ -2947,6 +3000,63 @@ static int do_tcp_getsockopt(struct sock *sk, int level,
> case TCP_USER_TIMEOUT:
> val = jiffies_to_msecs(icsk->icsk_user_timeout);
> break;
> + case TCP_EXPOPTS: {
> + u8 exp_opts_len;
> +
> + if (get_user(len, optlen))
> + return -EFAULT;
> + if (len < 0)
> + return -EINVAL;
> +
> + exp_opts_len = tp->exp_opts.conf_len;
> +
> + if (exp_opts_len > len)
> + return -EINVAL;
> + if (put_user(exp_opts_len, optlen))
> + return -EFAULT;
> + if (exp_opts_len && copy_to_user(optval, tp->exp_opts.conf,
> + exp_opts_len))
> + return -EFAULT;
> + return 0;
> + }
> + case TCP_RECV_EXPOPTS:
> + if (get_user(len, optlen))
> + return -EFAULT;
> + if (len < 0)
> + return -EINVAL;
> +
> + if (len < tp->rx_opt.exp_opts_len)
> + return -EINVAL;
> +
> + if (put_user(tp->rx_opt.exp_opts_len, optlen))
> + return -EFAULT;
> + if (copy_to_user(optval, tp->rx_opt.exp_opts,
> + tp->rx_opt.exp_opts_len))
> + return -EFAULT;
> + return 0;
> + case TCP_RECV_SYN_EXPOPTS: {
> + u8 exp_opts_len;
> +
> + if (get_user(len, optlen))
> + return -EFAULT;
> + if (len < 0)
> + return -EINVAL;
> +
> + if (!tp->exp_opts.syn)
> + exp_opts_len = 0;
> + else
> + exp_opts_len = tp->exp_opts.syn_len;
> +
> + if (exp_opts_len > len)
> + return -EINVAL;
> + if (put_user(exp_opts_len, optlen))
> + return -EFAULT;
> + if (exp_opts_len && copy_to_user(optval, tp->exp_opts.syn,
> + exp_opts_len)) {
> + return -EFAULT;
> + }
> + return 0;
> + }
> default:
> return -ENOPROTOOPT;
> }
> diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
> index d377f48..130d4f4 100644
> --- a/net/ipv4/tcp_input.c
> +++ b/net/ipv4/tcp_input.c
> @@ -3726,11 +3726,32 @@ old_ack:
> return 0;
> }
>
> +static inline void tcp_parse_fastopen_cookie(int opcode,
> + int opsize,
> + const unsigned char *ptr,
> + struct tcp_fastopen_cookie *foc,
> + const struct tcphdr *th) {
> + /* Fast Open option shares code 254 using a 16 bits magic number. It's
> + * valid only in SYN or SYN-ACK with an even size.
> + */
> + if (opsize < TCPOLEN_EXP_FASTOPEN_BASE ||
> + get_unaligned_be16(ptr) != TCPOPT_FASTOPEN_MAGIC || foc == NULL ||
> + !th->syn || (opsize & 1))
> + return;
> + foc->len = opsize - TCPOLEN_EXP_FASTOPEN_BASE;
> + if (foc->len >= TCP_FASTOPEN_COOKIE_MIN &&
> + foc->len <= TCP_FASTOPEN_COOKIE_MAX)
> + memcpy(foc->val, ptr + 2, foc->len);
> + else if (foc->len != 0)
> + foc->len = -1;
> +}
> +
> /* Look for tcp options. Normally only called on SYN and SYNACK packets.
> * But, this can also be called on packets in the established flow when
> * the fast version below fails.
> */
> -void tcp_parse_options(const struct sk_buff *skb, struct tcp_options_received *opt_rx,
> +void tcp_parse_options(const struct sk_buff *skb,
> + struct tcp_options_received *opt_rx,
> const u8 **hvpp, int estab,
> struct tcp_fastopen_cookie *foc)
> {
> @@ -3740,6 +3761,7 @@ void tcp_parse_options(const struct sk_buff *skb, struct tcp_options_received *o
>
> ptr = (const unsigned char *)(th + 1);
> opt_rx->saw_tstamp = 0;
> + opt_rx->exp_opts_len = 0;
>
> while (length > 0) {
> int opcode = *ptr++;
> @@ -3815,48 +3837,56 @@ void tcp_parse_options(const struct sk_buff *skb, struct tcp_options_received *o
> */
> break;
> #endif
> - case TCPOPT_COOKIE:
> - /* This option is variable length.
> + case TCPOPT_EXP253:
> + case TCPOPT_EXP254:
> + /* First parse options into raw access area for
> + * experimental options. Then handle
> + * potential exploitations
> */
> - switch (opsize) {
> - case TCPOLEN_COOKIE_BASE:
> - /* not yet implemented */
> - break;
> - case TCPOLEN_COOKIE_PAIR:
> - /* not yet implemented */
> - break;
> - case TCPOLEN_COOKIE_MIN+0:
> - case TCPOLEN_COOKIE_MIN+2:
> - case TCPOLEN_COOKIE_MIN+4:
> - case TCPOLEN_COOKIE_MIN+6:
> - case TCPOLEN_COOKIE_MAX:
> - /* 16-bit multiple */
> - opt_rx->cookie_plus = opsize;
> - *hvpp = ptr;
> - break;
> - default:
> - /* ignore option */
> - break;
> + if (opsize <= TCPOLEN_MAX_ANYEXP &&
> + opsize >= 2 &&
> + (opt_rx->exp_opts_len + opsize <=
> + TCPOLEN_MAX_ANYEXP)) {
> + opt_rx->exp_opts[
> + opt_rx->exp_opts_len] = opcode;
> + opt_rx->exp_opts[
> + opt_rx->exp_opts_len + 1] =
> + opsize;
> + memcpy(opt_rx->exp_opts +
> + opt_rx->exp_opts_len + 2, ptr,
> + opsize - 2);
> + opt_rx->exp_opts_len += opsize;
> }
> - break;
>
> - case TCPOPT_EXP:
> - /* Fast Open option shares code 254 using a
> - * 16 bits magic number. It's valid only in
> - * SYN or SYN-ACK with an even size.
> - */
> - if (opsize < TCPOLEN_EXP_FASTOPEN_BASE ||
> - get_unaligned_be16(ptr) != TCPOPT_FASTOPEN_MAGIC ||
> - foc == NULL || !th->syn || (opsize & 1))
> - break;
> - foc->len = opsize - TCPOLEN_EXP_FASTOPEN_BASE;
> - if (foc->len >= TCP_FASTOPEN_COOKIE_MIN &&
> - foc->len <= TCP_FASTOPEN_COOKIE_MAX)
> - memcpy(foc->val, ptr + 2, foc->len);
> - else if (foc->len != 0)
> - foc->len = -1;
> + /* handle potential exploitations */
> + if (opcode == TCPOPT_COOKIE) {
> + /* This option is variable length. */
> + switch (opsize) {
> + case TCPOLEN_COOKIE_BASE:
> + /* not yet implemented */
> + break;
> + case TCPOLEN_COOKIE_PAIR:
> + /* not yet implemented */
> + break;
> + case TCPOLEN_COOKIE_MIN+0:
> + case TCPOLEN_COOKIE_MIN+2:
> + case TCPOLEN_COOKIE_MIN+4:
> + case TCPOLEN_COOKIE_MIN+6:
> + case TCPOLEN_COOKIE_MAX:
> + /* 16-bit multiple */
> + opt_rx->cookie_plus = opsize;
> + *hvpp = ptr;
> + break;
> + default:
> + /* ignore option */
> + break;
> + }
> + } else {
> + tcp_parse_fastopen_cookie(opcode,
> + opsize, ptr,
> + foc, th);
> + }
> break;
> -
> }
> ptr += opsize-2;
> length -= opsize;
> @@ -3888,6 +3918,9 @@ static bool tcp_fast_parse_options(const struct sk_buff *skb,
> const struct tcphdr *th,
> struct tcp_sock *tp, const u8 **hvpp)
> {
> + /* required if exp options are not used anymore by the counter part */
> + tp->rx_opt.exp_opts_len = 0;
> +
> /* In the spirit of fast parsing, compare doff directly to constant
> * values. Because equality is used, short doff can be ignored here.
> */
> @@ -5806,6 +5839,14 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
> }
> }
>
> + if (unlikely(tp->rx_opt.exp_opts_len > 0)) {
> + tp->exp_opts.syn = kzalloc(tp->rx_opt.exp_opts_len,
> + sk->sk_allocation);
> + tp->exp_opts.syn_len = tp->rx_opt.exp_opts_len;
> + memcpy(tp->exp_opts.syn, &tp->rx_opt.exp_opts,
> + tp->rx_opt.exp_opts_len);
> + }
> +
> smp_mb();
>
> tcp_finish_connect(sk, skb);
> diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
> index 00a748d..2f66bd5 100644
> --- a/net/ipv4/tcp_ipv4.c
> +++ b/net/ipv4/tcp_ipv4.c
> @@ -1321,6 +1321,16 @@ int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb)
> tmp_opt.user_mss = tp->rx_opt.user_mss;
> tcp_parse_options(skb, &tmp_opt, &hash_location, 0, NULL);
>
> + /* for raw access to experimental options in SYN packet */
> + tcp_rsk(req)->syn_expopts_len = tmp_opt.exp_opts_len;
> + if (tcp_rsk(req)->syn_expopts_len) {
> + /* transport experimental options via request socket to big
> + * socket
> + */
> + memcpy(tcp_rsk(req)->syn_expopts, tmp_opt.exp_opts,
> + tcp_rsk(req)->syn_expopts_len);
> + }
> +
> if (tmp_opt.cookie_plus > 0 &&
> tmp_opt.saw_tstamp &&
> !tp->rx_opt.cookie_out_never &&
> @@ -1978,6 +1988,10 @@ void tcp_v4_destroy_sock(struct sock *sk)
> tp->cookie_values = NULL;
> }
>
> + /* buffers for raw access to experimental options */
> + kfree(tp->exp_opts.conf);
> + kfree(tp->exp_opts.syn);
> +
> /* If socket is aborted during connect operation */
> tcp_free_fastopen_req(tp);
>
> diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
> index 6ff7f10..dc25875 100644
> --- a/net/ipv4/tcp_minisocks.c
> +++ b/net/ipv4/tcp_minisocks.c
> @@ -466,6 +466,23 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req,
>
> newtp->urg_data = 0;
>
> + if (tcp_rsk(req)->syn_expopts_len) {
> + newtp->exp_opts.syn_len =
> + tcp_rsk(req)->syn_expopts_len;
> + newtp->exp_opts.syn = kzalloc(newtp->exp_opts.syn_len,
> + GFP_ATOMIC);
> + memcpy(newtp->exp_opts.syn, tcp_rsk(req)->syn_expopts,
> + newtp->exp_opts.syn_len);
> + }
> +
> + if (oldtp->exp_opts.conf_len > 0) {
> + newtp->exp_opts.conf_len = oldtp->exp_opts.conf_len;
> + newtp->exp_opts.conf = kzalloc(TCP_EXPOP_MAXLEN,
> + GFP_ATOMIC);
> + memcpy(newtp->exp_opts.conf, oldtp->exp_opts.conf,
> + oldtp->exp_opts.conf_len);
> + }
> +
> if (sock_flag(newsk, SOCK_KEEPOPEN))
> inet_csk_reset_keepalive_timer(newsk,
> keepalive_time_when(newtp));
> diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
> index d046326..8d7cf51 100644
> --- a/net/ipv4/tcp_output.c
> +++ b/net/ipv4/tcp_output.c
> @@ -385,6 +385,7 @@ static inline bool tcp_urg_mode(const struct tcp_sock *tp)
> #define OPTION_MD5 (1 << 2)
> #define OPTION_WSCALE (1 << 3)
> #define OPTION_COOKIE_EXTENSION (1 << 4)
> +#define OPTION_EXP (1 << 5)
> #define OPTION_FAST_OPEN_COOKIE (1 << 8)
>
> struct tcp_out_options {
> @@ -581,6 +582,12 @@ static void tcp_options_write(__be32 *ptr, struct tcp_sock *tp,
> }
> ptr += (foc->len + 3) >> 2;
> }
> + if (unlikely(OPTION_EXP & options && tp->exp_opts.conf_len > 0)) {
> + __u8 *p = (__u8 *) ptr;
> + memcpy(ptr, tp->exp_opts.conf, tp->exp_opts.conf_len);
> + p += tp->exp_opts.conf_len;
> + ptr = (__be32 *) p;
> + }
> }
>
> /* Compute TCP options for SYN packets. This is not the final
> @@ -693,6 +700,11 @@ static unsigned int tcp_syn_options(struct sock *sk, struct sk_buff *skb,
> remaining -= need;
> }
> }
> + if (unlikely(tp->exp_opts.conf_len > 0 &&
> + tp->exp_opts.conf_len <= remaining)) {
> + opts->options |= OPTION_EXP;
> + remaining -= tp->exp_opts.conf_len;
> + }
> return MAX_TCP_OPTION_SPACE - remaining;
> }
>
> @@ -747,6 +759,11 @@ static unsigned int tcp_synack_options(struct sock *sk,
> if (unlikely(!ireq->tstamp_ok))
> remaining -= TCPOLEN_SACKPERM_ALIGNED;
> }
> + if (unlikely(tcp_sk(sk)->exp_opts.conf_len > 0 &&
> + tcp_sk(sk)->exp_opts.conf_len <= remaining)) {
> + opts->options |= OPTION_EXP;
> + remaining -= tcp_sk(sk)->exp_opts.conf_len;
> + }
>
> /* Similar rationale to tcp_syn_options() applies here, too.
> * If the <SYN> options fit, the same options should fit now!
> @@ -782,38 +799,44 @@ static unsigned int tcp_established_options(struct sock *sk, struct sk_buff *skb
> {
> struct tcp_skb_cb *tcb = skb ? TCP_SKB_CB(skb) : NULL;
> struct tcp_sock *tp = tcp_sk(sk);
> - unsigned int size = 0;
> + unsigned remaining = MAX_TCP_OPTION_SPACE;
> unsigned int eff_sacks;
>
> #ifdef CONFIG_TCP_MD5SIG
> *md5 = tp->af_specific->md5_lookup(sk, sk);
> if (unlikely(*md5)) {
> opts->options |= OPTION_MD5;
> - size += TCPOLEN_MD5SIG_ALIGNED;
> + remaining -= TCPOLEN_MD5SIG_ALIGNED;
> }
> #else
> *md5 = NULL;
> #endif
>
> - if (likely(tp->rx_opt.tstamp_ok)) {
> + if (likely(tp->rx_opt.tstamp_ok &&
> + remaining >= TCPOLEN_TSTAMP_ALIGNED)) {
> opts->options |= OPTION_TS;
> opts->tsval = tcb ? tcb->when : 0;
> opts->tsecr = tp->rx_opt.ts_recent;
> - size += TCPOLEN_TSTAMP_ALIGNED;
> + remaining -= TCPOLEN_TSTAMP_ALIGNED;
> }
>
> eff_sacks = tp->rx_opt.num_sacks + tp->rx_opt.dsack;
> if (unlikely(eff_sacks)) {
> - const unsigned int remaining = MAX_TCP_OPTION_SPACE - size;
> opts->num_sack_blocks =
> min_t(unsigned int, eff_sacks,
> (remaining - TCPOLEN_SACK_BASE_ALIGNED) /
> TCPOLEN_SACK_PERBLOCK);
> - size += TCPOLEN_SACK_BASE_ALIGNED +
> + remaining -= TCPOLEN_SACK_BASE_ALIGNED +
> opts->num_sack_blocks * TCPOLEN_SACK_PERBLOCK;
> }
>
> - return size;
> + if (unlikely(tp->exp_opts.conf_len > 0 &&
> + tp->exp_opts.conf_len <= remaining)) {
> + opts->options |= OPTION_EXP;
> + remaining -= tp->exp_opts.conf_len;
> + }
> +
> + return MAX_TCP_OPTION_SPACE - remaining;
> }
>
>
> --
> 1.7.12.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: TCP and reordering
From: David Woodhouse @ 2012-11-28 11:49 UTC (permalink / raw)
To: Eric Dumazet; +Cc: Vijay Subramanian, David Miller, saku, rick.jones2, netdev
In-Reply-To: <1354100552.14302.78.camel@edumazet-glaptop>
[-- Attachment #1: Type: text/plain, Size: 486 bytes --]
On Wed, 2012-11-28 at 03:02 -0800, Eric Dumazet wrote:
> > Thanks. For me after a 64MiB download, I have an increase of one FACK,
> > one SACK and one TS reorder. So my connection probably does even less
> > reordering than I thought, and thus isn't particularly relevant to this
> > conversation. I'll shut up now and go back to playing with ATM.
>
> But you are the receiver. A receiver should not increase these counters.
I checked it on the sending side.
--
dwmw2
[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 6171 bytes --]
^ permalink raw reply
* Re: Specific question about packet dropping
From: Shan Wei @ 2012-11-28 11:45 UTC (permalink / raw)
To: Javier Domingo; +Cc: netdev
In-Reply-To: <CALZVapnQrH9YvCOh8OnGFs1V28nPfX4p=GK=M0VnqHjZCU8=1Q@mail.gmail.com>
Javier Domingo said, at 2012/11/28 18:40:
> Hi,
>
> Where are packets dropped?
>
> I reading code I think just found:
> - In the NIC
> - In the netif_receive_skb
>
> Is there any other place I can have missed?
There is many reasons, following is not whole.
For receiver:
1. NIC
2. __netif_receive_skb(unknown packet type)
3. ip_rcv(abnormal packet, route reason...)
4. tcp/udp (unknown port, receive buff limit..)
For Sender:
1. tcp/udp(send buffer limit)
2. ip(route reason....)
3. arp(resolved_discards)
4. qdisc(queue limit)
Best Regards
Shan Wei
>
> Javier Domingo
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply
* [PATCH net] net/mlx4_en: Can set maxrate only for TC0
From: Amir Vadai @ 2012-11-28 11:43 UTC (permalink / raw)
To: David S. Miller; +Cc: Or Gerlitz, Oren Duer, Amir Vadai, netdev
Had a typo in memcpy.
Signed-off-by: Amir Vadai <amirv@mellanox.com>
---
drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c b/drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c
index 5d367958..b799ab12 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c
@@ -237,7 +237,7 @@ static int mlx4_en_dcbnl_ieee_setmaxrate(struct net_device *dev,
if (err)
return err;
- memcpy(priv->maxrate, tmp, sizeof(*priv->maxrate));
+ memcpy(priv->maxrate, tmp, sizeof(priv->maxrate));
return 0;
}
--
1.7.8.2
^ permalink raw reply related
* Re: [PATCH 1/2] smsc75xx: refactor entering suspend modes
From: Bjørn Mork @ 2012-11-28 11:42 UTC (permalink / raw)
To: Steve Glendinning; +Cc: Alan Stern, netdev, linux-usb, David Miller
In-Reply-To: <CAKh2mn5UGRN5U0w_bj25e4VnCwr9kK3f798nHSwmF4WE4dORMw@mail.gmail.com>
Steve Glendinning <steve@shawell.net> writes:
> Hi Bjorn,
>
> On 28 November 2012 09:31, Bjørn Mork <bjorn@mork.no> wrote:
>>
>> Remote wakeup will not be enabled on system suspend unless the user (or
>> a userspace program on the users behalf) has requested it.
>
> If a user types "ethtool -s eth2 wol p" they *are* explicitly
> requesting the ethernet device to bring the system out of suspend, so
> I think the ethernet driver should set the feature automatically.
>
> from drivers/base/power/wakeup.c:
>
> * By default, most devices should leave wakeup disabled. The exceptions are
> * devices that everyone expects to be wakeup sources: keyboards, power buttons,
> * possibly network interfaces, etc.
Right. That seems logical. But the ethtool setting should still
probably be reflected in the device attributes so that the user can see
them there?
Just doing a simple test of what other ethernet drivers does, I tried
this on the e1000e adapter in my laptop. Initially:
nemi:/tmp# grep . /sys/bus/pci/devices/0000:00:19.0/power/*
/sys/bus/pci/devices/0000:00:19.0/power/async:enabled
grep: /sys/bus/pci/devices/0000:00:19.0/power/autosuspend_delay_ms: Input/output error
/sys/bus/pci/devices/0000:00:19.0/power/control:auto
/sys/bus/pci/devices/0000:00:19.0/power/runtime_active_kids:0
/sys/bus/pci/devices/0000:00:19.0/power/runtime_active_time:266378772
/sys/bus/pci/devices/0000:00:19.0/power/runtime_enabled:enabled
/sys/bus/pci/devices/0000:00:19.0/power/runtime_status:active
/sys/bus/pci/devices/0000:00:19.0/power/runtime_suspended_time:568333816
/sys/bus/pci/devices/0000:00:19.0/power/runtime_usage:0
/sys/bus/pci/devices/0000:00:19.0/power/wakeup:disabled
nemi:/tmp# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 2
Transceiver: internal
Auto-negotiation: on
MDI-X: off
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
Enabling WOL:
nemi:/tmp# ethtool -s eth0 wol p
nemi:/tmp# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 2
Transceiver: internal
Auto-negotiation: on
MDI-X: off
Supports Wake-on: pumbg
Wake-on: p
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
nemi:/tmp# grep . /sys/bus/pci/devices/0000:00:19.0/power/*
/sys/bus/pci/devices/0000:00:19.0/power/async:enabled
grep: /sys/bus/pci/devices/0000:00:19.0/power/autosuspend_delay_ms: Input/output error
/sys/bus/pci/devices/0000:00:19.0/power/control:auto
/sys/bus/pci/devices/0000:00:19.0/power/runtime_active_kids:0
/sys/bus/pci/devices/0000:00:19.0/power/runtime_active_time:266414488
/sys/bus/pci/devices/0000:00:19.0/power/runtime_enabled:enabled
/sys/bus/pci/devices/0000:00:19.0/power/runtime_status:active
/sys/bus/pci/devices/0000:00:19.0/power/runtime_suspended_time:568333816
/sys/bus/pci/devices/0000:00:19.0/power/runtime_usage:0
/sys/bus/pci/devices/0000:00:19.0/power/wakeup:enabled
/sys/bus/pci/devices/0000:00:19.0/power/wakeup_abort_count:0
/sys/bus/pci/devices/0000:00:19.0/power/wakeup_active:0
/sys/bus/pci/devices/0000:00:19.0/power/wakeup_active_count:0
/sys/bus/pci/devices/0000:00:19.0/power/wakeup_count:0
/sys/bus/pci/devices/0000:00:19.0/power/wakeup_expire_count:0
/sys/bus/pci/devices/0000:00:19.0/power/wakeup_last_time_ms:834745779
/sys/bus/pci/devices/0000:00:19.0/power/wakeup_max_time_ms:0
/sys/bus/pci/devices/0000:00:19.0/power/wakeup_total_time_ms:0
So this driver does set wakeup:enabled, and if this had been a USB
device then the USB core would have set the Remote Wakeup feature on
suspend without the driver having to do anything special in its
driver->suspend function.
Looking at the different ethernet drivers, the normal way do do this
seems to be something like this in their .set_wol implementation:
device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
where "adapter" is a netdev_priv private struct, "pdev" is a pci device
and "wol" is an u32. I don't see any problem doing the same for USB
network devices implementing ethtool "set_wol".
Note that according to Documentation/power/devices.txt:
"Device drivers, however, are not supposed to call device_set_wakeup_enable()
directly in any case."
which I guess really means that wakeup:enabled is supposed to be user
controlled and not driver controlled. I assume the ethtool userspace
interface make the above void, as drivers implementing the ethtool
interface will have to call device_set_wakeup_enable() to syncronize
ethtool and sysfs settings.
Does this make sense?
Bjørn
^ permalink raw reply
* Re: [PATCH net-next] net: move inet_dport/inet_num in sock_common
From: Eric Dumazet @ 2012-11-28 11:27 UTC (permalink / raw)
To: Joe Perches; +Cc: David Miller, netdev, Ling Ma
In-Reply-To: <1354075918.14302.77.camel@edumazet-glaptop>
On Tue, 2012-11-27 at 20:12 -0800, Eric Dumazet wrote:
> The point of having the cond jump on sk_hash/hash was that in one
> compare, we catch the yes/no status with 99.999999 % success rate.
>
> All the following compares are predicted by the cpu and essentially are
> free. Adding the AND or OR will basically have the same cpu cost.
>
> If we wanted to do a full test of all tuple fields and a single
> conditional jump, we would not have to include hash test at all.
>
> (If the 4-tuple matches, then sk_hash/hash value _must_ be the same by
> definition)
What I am going to do is to remove the hash compare from the macros so
that we can use likely()/unlikely() to explicitly give hints to the
compiler.
The hash compare can be omitted in the validation done after the
atomic_inc_not_zero() [ done to make sure keys didnt change ]
begin:
sk_nulls_for_each_rcu(sk, node, &head->chain) {
if (sk->sk_hash != hash)
continue;
if (likely(INET_MATCH(sk, net, acookie,
saddr, daddr, ports, dif))) {
if (unlikely(!atomic_inc_not_zero(&sk->sk_refcnt)))
goto begintw;
if (unlikely(!INET_MATCH(sk, net, acookie,
saddr, daddr, ports, dif))) {
sock_put(sk);
goto begin;
}
goto out;
}
}
^ permalink raw reply
* Re: [net-next RFC v2] net_cls: traffic counter based on classification control cgroup
From: Alexey Perevalov @ 2012-11-28 11:18 UTC (permalink / raw)
To: Daniel Wagner
Cc: Glauber Costa, netdev-u79uwXL29TY76Z2rM5mHXA,
cgroups-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <50B5C6AB.6040208-kQCPcA+X3s7YtjvyW6yDsg@public.gmane.org>
On 11/28/2012 12:09 PM, Daniel Wagner wrote:
> Hi Alexey,
>
> On 28.11.2012 06:21, Alexey Perevalov wrote:
>>>> Daniel Wagner is working on something a lot similar.
>>> Yes, basically what I try to do is explained by this excellent article
>>>
>>> https://lwn.net/Articles/523058/
>> I read articles and agreed with aspects.
>> But problem of selecting preferred network for application can be solved
>> using netprio cgroup.
> Choosing the which network to connect to is job of a connection manager.
> I don't see how a cgroup controller can help you there. I guess I do not
> understand your statement. Can you rephrase please?
I meant choosing preferred network interface for application's traffic.
I can be done by metric in routing table or (I wrote) by netprio cgroup.
>
>>> The second implementation is adding a new iptables matcher which matches
>>> on LSM contexts. Then you can do something like this:
>>>
>>> iptables -t mangle -A OUTPUT -m secmark --secctx
>>> unconfined_u:unconfined_r:foo_t:s0-s0:c0.c1023 -j MARK --set-mark 200
>> As I understand in LSM context it works for egress and ingress.
> Yes, I am using CONNMARK in conjunction with the the above LSM context
> matcher. I am still playing around, but it looks quite promising.
>
>>>> 2) When Daniel exposed his use case to me, it gave me the impression
>>>> that "counting traffic" is something that is totally doable by having a
>>>> dedicated interface in a separate namespace. Basically, we already count
>>>> traffic (rx and tx) for all interfaces anyway, so it suggests that it
>>>> could be an interesting way to see the problem.
>>> Moving applications into separate net namespaces is for sure a valid
>>> solution.
>>> Though there is a one drawback in this approach. The namespaces need
>>> to be
>>> attached to a bridge and then some NATting. That means every application
>>> would get it's own IP address. This might be okay for your certain use
>>> cases but I am still trying to work around this. Glauber and I had some
>>> discussion about this and he suggested to allow the physical networking
>>> device to be attached to several namespaces (e.g. via macvlan). Every
>>> namespace would get the same IP address. Unfortunately, this would
>>> result in
>>> the same mess as several physical devices on a network get the same
>>> IP address assigned.
>> Is I truly understand what to make statistics works we need to put
>> process to separate namespace?
> If a process lives in its own network namespace then you can
> count the packets/bytes on the network interface level. The side effect
> is that is that each namespace is obviously a new network and has to be
> treated as such.
>
>> Approach to keep counter in cgroup hasn't such side effects, but it has
>> another ).
> cgroups are not for free. Currently a lot of effort is put into getting
> a reasonable performance and behavior into cgroups. In this situation
> any new feature added to cgroups will need a pretty good justification
> why it is needed and why it cant be done with existing infrastructure.
I want to figure out in yours proposed design:
+------------------------------------------------+
|network namespace1: pid1, pid2,... |
| |
+---------------------------+
| network stack, network iface |
| |
| nf hooks +------->| physical
network |
+------------------------------------------------+ |
interface |
| |
| |
+------------------------------------------------+
| |
|network namespace2: pid1, pid2,... |
| |
| +------->| |
| network stack, network iface |
| |
| nf hooks |
| |
+------------------------------------------------+
| |
+---------------------------+
... ^
+------------------------------------------------+ |
|network namespace3: pid1, pid2,... | |
| | |
| network stack, network iface +-----------+
| nf hooks |
+------------------------------------------------+
Question, in case of one physical networking device connected to several
namespaces,
is it allow to tweak network packet scheduler (qdisc instance) using
traffic control tool for one physical network interface?
The same question is about netfilter hooks. I have seen the code, it
seems to me nf hooks is registering per network stack now.
CGroup framework has an notification mechanism based on eventfd. For
example I can just send notification to user space about network activity.
Is there such mechanism in standard infrastructure to notify user space
apps on activity on monitored application (maybe nf_queue)?
>
> Here is some background information on the state of cgroups:
>
> http://thread.gmane.org/gmane.linux.kernel.containers/23698
Thank you, I have read.
It seems to me my patch has technical defect with inherited groups.
>
> cheers,
> daniel
>
--
BR,
Alexey
^ permalink raw reply
* Re: TCP and reordering
From: Eric Dumazet @ 2012-11-28 11:02 UTC (permalink / raw)
To: David Woodhouse
Cc: Vijay Subramanian, David Miller, saku, rick.jones2, netdev
In-Reply-To: <1354093703.21562.23.camel@shinybook.infradead.org>
On Wed, 2012-11-28 at 09:08 +0000, David Woodhouse wrote:
> On Wed, 2012-11-28 at 00:22 -0800, Vijay Subramanian wrote:
> >
> > I don't believe reordering is tracked on the receiver side but on the
> > sender, there are SNMB_MIB items.
> > They can be tracked and can be viewed using nstat/netstat
> >
> > # nstat -az | grep -i reorder
> > TcpExtTCPFACKReorder 0 0.0
> > TcpExtTCPSACKReorder 0 0.0
> > TcpExtTCPRenoReorder 0 0.0
> > TcpExtTCPTSReorder 0 0.0
>
> Thanks. For me after a 64MiB download, I have an increase of one FACK,
> one SACK and one TS reorder. So my connection probably does even less
> reordering than I thought, and thus isn't particularly relevant to this
> conversation. I'll shut up now and go back to playing with ATM.
But you are the receiver. A receiver should not increase these counters.
^ permalink raw reply
* RE: [PATCH 1/3] net: stmmac: change GMAC control register for SGMII
From: Byungho An @ 2012-11-28 10:57 UTC (permalink / raw)
To: 'Giuseppe CAVALLARO'
Cc: davem, jeffrey.t.kirsher, netdev, kgene.kim, linux-kernel
In-Reply-To: <50B344FC.4070405@st.com>
On 11/26/2012 07:31 PM, Giuseppe CABALLARO wrote:
> On 11/23/2012 10:04 AM, Byungho An wrote:
> >
> > This patch changes GMAC control register (TC(Transmit
> > Configuration) and PS(Port Selection) bit for SGMII.
> > In case of SGMII, TC bit is '1' and PS bit is 0.
>
> IMO this new support that should be released for net-next and further
> effort is actually needed.
>
OK, I see but if possible, I want to support the new features which is
included in this patch from v3.8
> The availability of the PCS registers is given by looking at the HW
> feature register. In fact, these are optional registers.
> I don't want to break the compatibility with old chips.
>
It means that old chip doesn't have this bit or this register? If that, how
about using compatible in DT blob like snps,dwmac-3.70a and then in just
this case trying to read this bit and this register.
> I do not see why we have to use Kconfig macro to select ANE etc (as
> you do in your patches).
OK. I agree with you.
> The driver could directly manage the phy device by itself if possible
> and the stmmac_init_phy should be reworked.
>
Could you explain more detail? As I understood, after set ANE bit in MAC
side then PHY auto-negotiation can be enabled. If I'm wrong let me know.
According to your mention, MAC and PHY auto-negotiation can be managed in
stmmac_init_phy?
> There are several things that need to be implemented. For example:
>
> The ISR (e.g. priv->hw->mac->host_irq_status) should be able to manage
> these new interrupts.
I think that there would be two additional interrupts."PCS Auto-Negotiation
Complete" and "PCS Link Status Changed". These two interrupts are added to
"stmmac_interrupt". In my opinion, there are no specific processing for
these two irqs. What do you think about it?
> The code has to be able to maintain the user interface.
> For example if you want to enable ANE or manage Advertisement caps.
>
Does it mean that command line or other network command(e.g. ifconfig...) or
ioctol? Actually I don't understand exact user interface way. Could you
recommend the method for user interface?
> > Signed-off-by: Byungho An <bh74.an@samsung.com>
> > ---
>
> [snip]
>
> > + if (priv->phydev->interface == PHY_INTERFACE_MODE_SGMII) {
> > + value = readl(priv->ioaddr);
> > + /* GMAC_CONTROL_TC : transmit config in RGMII/SGMII */
> > + value |= 0x1000000;
> > + /* GMAC_CONTROL_PS : Port Selection for GMII */
> > + value &= ~(0x8000);
> > + writel(value, priv->ioaddr);
> > + }
> > +
>
>
> This parts of code have to be moved in
> drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c
>
OK.
> Pls, do not use value |= 0x1000000 but provide the appropriate defines.
>
OK.
> > /* Request the IRQ lines */
> > ret = request_irq(dev->irq, stmmac_interrupt,
> > IRQF_SHARED, dev->name, dev);
> >
Thank you.
Byungho An.
^ permalink raw reply
* Specific question about packet dropping
From: Javier Domingo @ 2012-11-28 10:40 UTC (permalink / raw)
To: netdev
Hi,
Where are packets dropped?
I reading code I think just found:
- In the NIC
- In the netif_receive_skb
Is there any other place I can have missed?
Javier Domingo
^ permalink raw reply
* Re: "tuntap: multiqueue support" causes udev fork bombs
From: Robert Milasan @ 2012-11-28 10:30 UTC (permalink / raw)
To: Jiri Slaby; +Cc: jasowang, David S. Miller, ML netdev, LKML, Jiri Slaby, maxk
In-Reply-To: <50B5E6A5.6040009@suse.cz>
On Wed, 28 Nov 2012 11:25:41 +0100
Jiri Slaby <jslaby@suse.cz> wrote:
> Hi,
>
> with this commit:
> commit c8d68e6be1c3b242f1c598595830890b65cea64a
> Author: Jason Wang <jasowang@redhat.com>
> Date: Wed Oct 31 19:46:00 2012 +0000
>
> tuntap: multiqueue support
>
>
> I see fork bombs from udev. It is trying to create 2048 processes.
> 1024 for tx, 1024 for rx. OOM killer indeed steps in and kills
> everything.
>
> To trigger that it's enough for me to the following on a 6G of RAM
> machine: # echo 3 >/proc/sys/vm/drop_caches
> # /etc/init.d/openvpn restart
>
> [ pid ] uid tgid total_vm rss nr_ptes swapents oom_score_adj
> name [ 987] 0 987 11453 2276 28 0
> -1000 systemd-udevd
> [ 992] 0 992 487336 102 783 0 0
> systemd-journal
> [ 1877] 0 1877 36866 277 42 0 0
> cupsd [ 1881] 81 1881 7677 236 20 0
> -900 dbus-daemon
> [ 1894] 0 1894 7525 67 19 0 0
> rpcbind [ 1900] 0 1900 1860 809 8
> 0 0 haveged [ 1902] 0 1902 8647 83
> 23 0 0 systemd-logind
> [ 1918] 99 1918 4567 100 13 0 0
> ksysguardd
> [ 1919] 0 1919 55276 258 42 0 0
> upowerd [ 1942] 106 1942 104395 1835 76
> 0 0 pulseaudio
> [ 1947] 117 1947 67472 423 33 0 0
> polkitd [ 1991] 0 1991 22199 39 13
> 0 0 agetty [ 2034] 0 2034 22199 39
> 13 0 0 agetty [ 2080] 0 2080 22199
> 39 13 0 0 agetty [ 2105] 0 2105
> 22199 37 13 0 0 agetty [ 2150] 0
> 2150 22199 39 13 0 0 agetty
> [ 4118] 0 4118 2132 34 8 0 0
> dhcpcd [ 4319] 0 4319 24629 153 17
> 0 0 cron [ 4339] 0 4339 95072 620
> 28 0 0 automount [ 4340] 0 4340 15100
> 187 32 0 0 nmbd [ 4377] 0 4377
> 13038 147 29 0 -1000 sshd [ 4719] 25
> 4719 65189 4833 56 0 0 named
> [ 4776] 8 4776 12262 144 25 0 0
> exim [ 4792] 498 4792 200033 2915 140
> 0 0 mpd [ 4798] 0 4798 22239 515
> 46 0 0 httpd2-prefork [ 4799] 30 4799
> 22267 544 45 0 0 httpd2-prefork
> [ 4800] 0 4800 22199 38 13 0 0
> agetty [ 8480] 38 8480 8886 152 22
> 0 0 ntpd [ 9210] 0 9210 19982 229
> 41 0 0 winbindd
> [ 9236] 0 9236 41560 271 46 0 0
> smbd [ 9241] 0 9241 6148 51 17
> 0 0 kdm [ 9258] 0 9258 50350 18924
> 102 0 0 Xorg [ 9265] 0 9265 17737
> 126 40 0 0 kdm [ 9275] 0 9275
> 20006 233 40 0 0 winbindd
> [ 9276] 0 9276 20009 234 40 0 0
> winbindd
> [ 9277] 0 9277 19982 229 39 0 0
> winbindd
> [ 9278] 0 9278 41595 271 44 0 0
> smbd [ 9286] 500 9286 3212 32 12
> 0 0 ck-launch-sessi
> [ 9334] 0 9334 261302 767 44 0 0
> console-kit-dae
> [ 9402] 500 9402 21982 80 13 0 0
> startkde
> [ 9405] 500 9405 5569 71 14 0 0
> dbus-launch
> [ 9406] 500 9406 7934 351 18 0 0
> dbus-daemon
> [ 9407] 500 9407 22464 52 11 0 0
> gpg-agent
> [ 9408] 500 9408 3116 79 9 0 0
> ssh-agent
> [ 9447] 500 9447 1021 21 6 0 -300
> start_kdeinit
> [ 9448] 500 9448 95847 1417 135 0 -300
> kdeinit4
> [ 9449] 500 9449 97074 1400 128 0 0
> klauncher
> [ 9451] 500 9451 217312 3643 232 0 0
> kded4 [ 9454] 500 9454 5613 71 16
> 0 0 gam_server
> [ 9461] 500 9461 118346 2242 166 0 0
> kglobalaccel
> [ 9465] 500 9465 106352 1222 127 0 0
> kactivitymanage
> [ 9468] 0 9468 86882 348 39 0 0
> udisksd [ 9474] 500 9474 1055 19 7
> 0 0 kwrapper4
> [ 9475] 500 9475 139558 1967 173 0 0
> ksmserver
> [ 9479] 500 9479 274661 3121 206 0 0
> knotify4
> [ 9481] 500 9481 197330 8264 225 0 0
> kwin [ 9489] 500 9489 247392 15943 293
> 0 0 plasma-desktop
> [ 9496] 500 9496 2462 94 10 0 0
> ksysguardd
> [ 9503] 500 9503 80747 985 123 0 0
> kuiserver
> [ 9506] 500 9506 49217 363 30 0 0
> akonadi_control
> [ 9508] 500 9508 319188 1502 70 0 0
> akonadiserver
> [ 9515] 500 9515 87701 848 101 0 0
> akonadi_agent_l
> [ 9517] 500 9517 87701 848 99 0 0
> akonadi_agent_l
> [ 9518] 500 9518 86733 840 100 0 0
> akonadi_agent_l
> [ 9519] 500 9519 86733 836 96 0 0
> akonadi_agent_l
> [ 9520] 500 9520 86733 839 104 0 0
> akonadi_agent_l
> [ 9521] 500 9521 86733 835 98 0 0
> akonadi_agent_l
> [ 9522] 500 9522 86649 1050 130 0 0
> akonadi_kabc_re
> [ 9523] 500 9523 87700 848 102 0 0
> akonadi_agent_l
> [ 9524] 500 9524 96933 1146 149 0 0
> akonadi_maildis
> [ 9526] 500 9526 86307 1039 130 0 0
> akonadi_nepomuk
> [ 9541] 500 9541 86080 827 98 0 0
> akonadi_agent_l
> [ 9542] 500 9542 86076 826 98 0 0
> akonadi_agent_l
> [ 9569] 500 9569 258392 4518 237 0 0
> krunner [ 9581] 500 9581 41396 6834 50
> 0 0 xterm [ 9593] 500 9593 179383 3144
> 187 0 0 kmix [ 9596] 500 9596 24871
> 824 19 0 0 bash [ 9601] 500 9601
> 83376 959 122 0 0 nepomukcontroll
> [ 9612] 500 9612 35918 1357 40 0 0
> xterm [ 9613] 500 9613 394605 78575 507
> 0 0 firefox [ 9617] 500 9617 24819 769
> 17 0 0 bash [ 9639] 500 9639 219529
> 3667 167 0 0 gmpc [ 9642] 500 9642
> 322588 29782 310 0 0 thunderbird-bin
> [ 9670] 500 9670 98277 518 78 0 0
> zeitgeist-datah
> [ 9674] 500 9674 106065 1042 134 0 0
> polkit-kde-auth
> [ 9677] 500 9677 121823 1986 172 0 0
> klipper [ 9685] 500 9685 84864 719 34
> 0 0 zeitgeist-daemo
> [ 9693] 500 9693 51569 231 36 0 0
> zeitgeist-fts
> [ 9697] 500 9697 66883 126 32 0 0
> gvfsd [ 9708] 500 9708 20166 23 10
> 0 0 cat [ 9729] 500 9729 32115 625
> 31 0 0 gconfd-2
> [ 9755] 500 9755 46906 117 30 0 0
> at-spi-bus-laun
> [ 9770] 500 9770 83934 1051 125 0 0
> kmozillahelper
> [10343] 30 10343 22265 542 45 0 0
> httpd2-prefork
> [10347] 30 10347 22265 541 45 0 0
> httpd2-prefork
> [10348] 30 10348 22267 545 45 0 0
> httpd2-prefork
> [10354] 30 10354 22267 544 45 0 0
> httpd2-prefork
> [10355] 30 10355 22267 543 45 0 0
> httpd2-prefork
> [10356] 30 10356 22267 544 45 0 0
> httpd2-prefork
> [10357] 30 10357 22267 544 45 0 0
> httpd2-prefork
> [10409] 500 10409 34921 136 37 0 0
> su [10421] 0 10421 24642 600 19 0
> 0 bash [10522] 500 10522 486624 5871 185
> 0 0 psi-plus
> [11743] 500 11743 35919 1358 38 0 0
> xterm [11745] 500 11745 24871 810 19
> 0 0 bash [11767] 500 11767 34922 136
> 37 0 0 su [11779] 502 11779 24583
> 543 18 0 0 bash [12412] 500 12412
> 35919 1358 39 0 0 xterm [12414] 500
> 12414 24871 824 19 0 0 bash
> [17530] 0 17530 63856 103 24 0 0
> rsyslogd [22468] 500 22468 117093 1537 133
> 0 0 kio_trash
> [22469] 500 22469 98653 1464 130 0 0
> kio_file
> [22699] 0 22699 15508 391 33 0 0
> openvpn [22718] 0 22718 9505 360 22
> 0 0 systemd-udevd
> [26825] 0 26825 11353 2198 26 0 0
> systemd-udevd
> [26826] 0 26826 11353 2198 26 0 0
> systemd-udevd
> [26827] 0 26827 11353 2198 26 0 0
> systemd-udevd
> [26828] 0 26828 11353 2198 26 0 0
> systemd-udevd
> [26829] 0 26829 11353 2198 26 0 0
> systemd-udevd
> [26830] 0 26830 11353 2198 26 0 0
> systemd-udevd
> [26831] 0 26831 11353 2198 26 0 0
> systemd-udevd
> [26832] 0 26832 11353 2199 26 0 0
> systemd-udevd
> [26833] 0 26833 11353 2199 26 0 0
> systemd-udevd
> [26834] 0 26834 11353 2199 26 0 0
> systemd-udevd
> [26835] 0 26835 11353 2199 26 0 0
> systemd-udevd
> [26836] 0 26836 11353 2199 26 0 0
> systemd-udevd
> [26837] 0 26837 11353 2199 26 0 0
> systemd-udevd
> [26838] 0 26838 11353 2199 26 0 0
> systemd-udevd
> [26839] 0 26839 11353 2199 26 0 0
> systemd-udevd
> [26840] 0 26840 11353 2200 26 0 0
> systemd-udevd
> [26841] 0 26841 11353 2200 26 0 0
> systemd-udevd
> [26842] 0 26842 11353 2200 26 0 0
> systemd-udevd
> [26843] 0 26843 11353 2200 26 0 0
> systemd-udevd
> [26844] 0 26844 11353 2200 26 0 0
> systemd-udevd
> [26845] 0 26845 11353 2200 26 0 0
> systemd-udevd
> [26846] 0 26846 11353 2200 26 0 0
> systemd-udevd
> [26847] 0 26847 11353 2201 26 0 0
> systemd-udevd
> [26848] 0 26848 11353 2201 26 0 0
> systemd-udevd
> [26849] 0 26849 11353 2201 26 0 0
> systemd-udevd
> [26850] 0 26850 11353 2201 26 0 0
> systemd-udevd
> [26851] 0 26851 11353 2201 26 0 0
> systemd-udevd
> [26852] 0 26852 11353 2201 26 0 0
> systemd-udevd
> [26853] 0 26853 11353 2201 26 0 0
> systemd-udevd
> [26854] 0 26854 11353 2202 26 0 0
> systemd-udevd
> [26855] 0 26855 11353 2202 26 0 0
> systemd-udevd
> [26856] 0 26856 11353 2202 26 0 0
> systemd-udevd
> [26857] 0 26857 11353 2202 26 0 0
> systemd-udevd
> [26858] 0 26858 11353 2202 26 0 0
> systemd-udevd
> [26859] 0 26859 11353 2202 26 0 0
> systemd-udevd
> [26860] 0 26860 11353 2202 26 0 0
> systemd-udevd
> [26861] 0 26861 11353 2203 26 0 0
> systemd-udevd
> [26862] 0 26862 11353 2203 26 0 0
> systemd-udevd
> [26863] 0 26863 11353 2203 26 0 0
> systemd-udevd
> [26864] 0 26864 11353 2203 26 0 0
> systemd-udevd
> [26865] 0 26865 11353 2203 26 0 0
> systemd-udevd
> [26866] 0 26866 11353 2203 26 0 0
> systemd-udevd
> [26867] 0 26867 11353 2204 26 0 0
> systemd-udevd
> [26868] 0 26868 11353 2204 26 0 0
> systemd-udevd
> [26869] 0 26869 11353 2204 26 0 0
> systemd-udevd
> [26870] 0 26870 11353 2204 26 0 0
> systemd-udevd
> [26871] 0 26871 11353 2204 26 0 0
> systemd-udevd
> [26872] 0 26872 11353 2204 26 0 0
> systemd-udevd
> [26873] 0 26873 11353 2204 26 0 0
> systemd-udevd
> [26874] 0 26874 11353 2205 26 0 0
> systemd-udevd
> [26875] 0 26875 11353 2205 26 0 0
> systemd-udevd
> [26876] 0 26876 11353 2205 26 0 0
> systemd-udevd
> [26877] 0 26877 11353 2205 26 0 0
> systemd-udevd
> [26878] 0 26878 11353 2205 26 0 0
> systemd-udevd
> [26879] 0 26879 11353 2205 26 0 0
> systemd-udevd
> [26880] 0 26880 11353 2205 26 0 0
> systemd-udevd
> [26881] 0 26881 11353 2206 26 0 0
> systemd-udevd
> [26882] 0 26882 11353 2206 26 0 0
> systemd-udevd
> [26883] 0 26883 11353 2206 26 0 0
> systemd-udevd
> [26884] 0 26884 11353 2206 26 0 0
> systemd-udevd
> [26885] 0 26885 11353 2206 26 0 0
> systemd-udevd
> [26886] 0 26886 11353 2206 26 0 0
> systemd-udevd
> [26887] 0 26887 11353 2206 26 0 0
> systemd-udevd
> [26888] 0 26888 11386 2207 26 0 0
> systemd-udevd
> [26889] 0 26889 11386 2207 26 0 0
> systemd-udevd
> [26890] 0 26890 11386 2207 26 0 0
> systemd-udevd
> [26891] 0 26891 11386 2207 26 0 0
> systemd-udevd
> [26892] 0 26892 11386 2207 26 0 0
> systemd-udevd
> [26893] 0 26893 11386 2207 26 0 0
> systemd-udevd
> [26894] 0 26894 11386 2208 26 0 0
> systemd-udevd
> [26895] 0 26895 11386 2208 26 0 0
> systemd-udevd
> [26896] 0 26896 11386 2208 26 0 0
> systemd-udevd
> [26897] 0 26897 11386 2208 26 0 0
> systemd-udevd
> [26898] 0 26898 11386 2208 26 0 0
> systemd-udevd
> [26899] 0 26899 11386 2208 26 0 0
> systemd-udevd
> [26900] 0 26900 11386 2208 26 0 0
> systemd-udevd
> [26901] 0 26901 11386 2209 26 0 0
> systemd-udevd
> [26902] 0 26902 11386 2209 26 0 0
> systemd-udevd
> [26903] 0 26903 11386 2209 26 0 0
> systemd-udevd
> [26904] 0 26904 11386 2209 26 0 0
> systemd-udevd
> [26905] 0 26905 11386 2209 26 0 0
> systemd-udevd
> [26906] 0 26906 11386 2209 26 0 0
> systemd-udevd
> [26907] 0 26907 11386 2209 26 0 0
> systemd-udevd
> [26908] 0 26908 11386 2210 26 0 0
> systemd-udevd
> [26909] 0 26909 11386 2210 26 0 0
> systemd-udevd
> [26910] 0 26910 11386 2210 26 0 0
> systemd-udevd
> [26911] 0 26911 11386 2210 26 0 0
> systemd-udevd
> [26912] 0 26912 11386 2210 26 0 0
> systemd-udevd
> [26913] 0 26913 11386 2210 26 0 0
> systemd-udevd
> [26914] 0 26914 11386 2210 26 0 0
> systemd-udevd
> [26915] 0 26915 11386 2211 26 0 0
> systemd-udevd
> [26916] 0 26916 11386 2211 26 0 0
> systemd-udevd
> [26917] 0 26917 11386 2211 26 0 0
> systemd-udevd
> [26918] 0 26918 11386 2211 26 0 0
> systemd-udevd
> [26919] 0 26919 11386 2211 26 0 0
> systemd-udevd
> [26920] 0 26920 11386 2211 26 0 0
> systemd-udevd
> [26921] 0 26921 11386 2212 26 0 0
> systemd-udevd
> [26922] 0 26922 11386 2212 26 0 0
> systemd-udevd
> [26923] 0 26923 11386 2212 26 0 0
> systemd-udevd
> [26924] 0 26924 11386 2212 26 0 0
> systemd-udevd
> [26925] 0 26925 11386 2212 26 0 0
> systemd-udevd
> [26926] 0 26926 11386 2212 26 0 0
> systemd-udevd
> [26927] 0 26927 11386 2212 26 0 0
> systemd-udevd
> [26928] 0 26928 11386 2213 26 0 0
> systemd-udevd
> [26929] 0 26929 11386 2213 26 0 0
> systemd-udevd
> [26930] 0 26930 11386 2213 26 0 0
> systemd-udevd
> [26931] 0 26931 11386 2213 26 0 0
> systemd-udevd
> [26932] 0 26932 11386 2213 26 0 0
> systemd-udevd
> [26933] 0 26933 11386 2213 26 0 0
> systemd-udevd
> [26934] 0 26934 11386 2213 26 0 0
> systemd-udevd
> [26935] 0 26935 11386 2214 26 0 0
> systemd-udevd
> [26936] 0 26936 11386 2214 26 0 0
> systemd-udevd
> [26937] 0 26937 11386 2214 26 0 0
> systemd-udevd
> [26938] 0 26938 11386 2214 26 0 0
> systemd-udevd
> [26939] 0 26939 11386 2214 26 0 0
> systemd-udevd
> [26940] 0 26940 11386 2214 26 0 0
> systemd-udevd
> [26941] 0 26941 11386 2215 26 0 0
> systemd-udevd
> [26942] 0 26942 11386 2215 26 0 0
> systemd-udevd
> [26943] 0 26943 11386 2215 26 0 0
> systemd-udevd
> [26944] 0 26944 11386 2215 26 0 0
> systemd-udevd
> [26945] 0 26945 11386 2215 26 0 0
> systemd-udevd
> [26946] 0 26946 11386 2215 26 0 0
> systemd-udevd
> [26947] 0 26947 11386 2215 26 0 0
> systemd-udevd
> [26948] 0 26948 11386 2216 26 0 0
> systemd-udevd
> [26949] 0 26949 11386 2216 26 0 0
> systemd-udevd
> [26950] 0 26950 11386 2216 26 0 0
> systemd-udevd
> [26951] 0 26951 11386 2216 26 0 0
> systemd-udevd
> [26952] 0 26952 11386 2216 26 0 0
> systemd-udevd
> [26953] 0 26953 11386 2216 26 0 0
> systemd-udevd
> [26954] 0 26954 11386 2216 26 0 0
> systemd-udevd
> [26955] 0 26955 11386 2217 26 0 0
> systemd-udevd
> [26956] 0 26956 11386 2217 26 0 0
> systemd-udevd
> [26957] 0 26957 11386 2217 26 0 0
> systemd-udevd
> [26958] 0 26958 11386 2217 26 0 0
> systemd-udevd
> [26959] 0 26959 11386 2217 26 0 0
> systemd-udevd
> [26960] 0 26960 11386 2217 26 0 0
> systemd-udevd
> [26961] 0 26961 11386 2217 26 0 0
> systemd-udevd
> [26962] 0 26962 11386 2218 26 0 0
> systemd-udevd
> [26963] 0 26963 11386 2218 26 0 0
> systemd-udevd
> [26964] 0 26964 11386 2218 26 0 0
> systemd-udevd
> [26965] 0 26965 11386 2218 26 0 0
> systemd-udevd
> [26966] 0 26966 11386 2218 26 0 0
> systemd-udevd
> [26967] 0 26967 11386 2218 26 0 0
> systemd-udevd
> [26968] 0 26968 11386 2219 26 0 0
> systemd-udevd
> [26969] 0 26969 11386 2219 26 0 0
> systemd-udevd
> [26970] 0 26970 11386 2219 26 0 0
> systemd-udevd
> [26971] 0 26971 11386 2219 26 0 0
> systemd-udevd
> [26972] 0 26972 11386 2219 26 0 0
> systemd-udevd
> [26973] 0 26973 11386 2219 26 0 0
> systemd-udevd
> [26974] 0 26974 11386 2219 26 0 0
> systemd-udevd
> [26975] 0 26975 11386 2220 26 0 0
> systemd-udevd
> [26976] 0 26976 11386 2220 26 0 0
> systemd-udevd
> [26977] 0 26977 11386 2220 26 0 0
> systemd-udevd
> [26978] 0 26978 11386 2220 26 0 0
> systemd-udevd
> [26979] 0 26979 11386 2220 26 0 0
> systemd-udevd
> [26980] 0 26980 11386 2220 26 0 0
> systemd-udevd
> [26981] 0 26981 11386 2220 26 0 0
> systemd-udevd
> [26982] 0 26982 24905 290 16 0 0
> htop [26983] 0 26983 11386 2221 26
> 0 0 systemd-udevd
> [26984] 0 26984 11386 2221 26 0 0
> systemd-udevd
> [26985] 0 26985 11386 2221 26 0 0
> systemd-udevd
> [26986] 0 26986 11386 2221 26 0 0
> systemd-udevd
> [26987] 0 26987 11386 2221 26 0 0
> systemd-udevd
> [26988] 0 26988 11386 2221 26 0 0
> systemd-udevd
> [26989] 0 26989 11386 2221 26 0 0
> systemd-udevd
> [26990] 0 26990 11386 2222 26 0 0
> systemd-udevd
> [26991] 0 26991 11386 2222 26 0 0
> systemd-udevd
> [26992] 0 26992 11386 2222 26 0 0
> systemd-udevd
> [26993] 0 26993 11386 2222 26 0 0
> systemd-udevd
> [26994] 0 26994 11386 2222 26 0 0
> systemd-udevd
> [26995] 0 26995 11386 2222 26 0 0
> systemd-udevd
> [26996] 0 26996 11386 2223 26 0 0
> systemd-udevd
> [26997] 0 26997 11386 2223 26 0 0
> systemd-udevd
> [26998] 0 26998 11386 2223 26 0 0
> systemd-udevd
> [26999] 0 26999 11386 2223 26 0 0
> systemd-udevd
> [27000] 0 27000 11386 2223 26 0 0
> systemd-udevd
> [27001] 0 27001 11386 2223 26 0 0
> systemd-udevd
> [27002] 0 27002 11386 2223 26 0 0
> systemd-udevd
> [27003] 0 27003 11386 2224 26 0 0
> systemd-udevd
> [27004] 0 27004 11386 2224 26 0 0
> systemd-udevd
> [27005] 0 27005 11386 2224 26 0 0
> systemd-udevd
> [27006] 0 27006 11386 2224 26 0 0
> systemd-udevd
> [27007] 0 27007 11386 2224 26 0 0
> systemd-udevd
> [27008] 0 27008 11386 2224 26 0 0
> systemd-udevd
> [27010] 0 27010 11386 2224 26 0 0
> systemd-udevd
> [27011] 0 27011 11386 2225 26 0 0
> systemd-udevd
> [27012] 0 27012 11386 2225 26 0 0
> systemd-udevd
> [27013] 0 27013 11386 2225 26 0 0
> systemd-udevd
> [27014] 0 27014 11386 2225 26 0 0
> systemd-udevd
> [27015] 0 27015 11386 2225 26 0 0
> systemd-udevd
> [27016] 0 27016 11386 2225 26 0 0
> systemd-udevd
> [27017] 0 27017 11386 2225 26 0 0
> systemd-udevd
> [27018] 0 27018 11386 2226 26 0 0
> systemd-udevd
> [27019] 0 27019 11386 2226 26 0 0
> systemd-udevd
> [27020] 0 27020 11386 2226 26 0 0
> systemd-udevd
> [27021] 0 27021 11386 2226 26 0 0
> systemd-udevd
> [27022] 0 27022 11386 2226 26 0 0
> systemd-udevd
> [27023] 0 27023 11386 2226 26 0 0
> systemd-udevd
> [27024] 0 27024 11386 2227 26 0 0
> systemd-udevd
> [27025] 0 27025 11386 2227 26 0 0
> systemd-udevd
> [27026] 0 27026 11386 2227 26 0 0
> systemd-udevd
> [27027] 0 27027 11386 2227 26 0 0
> systemd-udevd
> [27028] 0 27028 11386 2227 26 0 0
> systemd-udevd
> [27029] 0 27029 11386 2227 26 0 0
> systemd-udevd
> [27030] 0 27030 11386 2227 26 0 0
> systemd-udevd
> [27031] 0 27031 11386 2228 26 0 0
> systemd-udevd
> [27032] 0 27032 11386 2228 26 0 0
> systemd-udevd
> [27033] 0 27033 11386 2228 26 0 0
> systemd-udevd
> [27034] 0 27034 11386 2228 26 0 0
> systemd-udevd
> [27035] 0 27035 11386 2228 26 0 0
> systemd-udevd
> [27036] 0 27036 11386 2228 26 0 0
> systemd-udevd
> [27037] 0 27037 11386 2228 26 0 0
> systemd-udevd
> [27038] 0 27038 11386 2229 26 0 0
> systemd-udevd
> [27039] 0 27039 11386 2229 26 0 0
> systemd-udevd
> [27040] 0 27040 11386 2229 26 0 0
> systemd-udevd
> [27041] 0 27041 11386 2229 26 0 0
> systemd-udevd
> [27042] 0 27042 11386 2229 26 0 0
> systemd-udevd
> [27043] 0 27043 11386 2229 26 0 0
> systemd-udevd
> [27044] 0 27044 11386 2229 26 0 0
> systemd-udevd
> [27045] 0 27045 11386 2230 26 0 0
> systemd-udevd
> [27046] 0 27046 11386 2230 26 0 0
> systemd-udevd
> [27047] 0 27047 11386 2230 26 0 0
> systemd-udevd
> [27048] 0 27048 11386 2230 26 0 0
> systemd-udevd
> [27049] 0 27049 11386 2230 26 0 0
> systemd-udevd
> [27050] 0 27050 11386 2230 26 0 0
> systemd-udevd
> [27051] 0 27051 11386 2231 26 0 0
> systemd-udevd
> [27052] 0 27052 11386 2231 26 0 0
> systemd-udevd
> [27053] 0 27053 11386 2231 26 0 0
> systemd-udevd
> [27054] 0 27054 11386 2231 26 0 0
> systemd-udevd
> [27055] 0 27055 11386 2231 26 0 0
> systemd-udevd
> [27056] 0 27056 11386 2231 26 0 0
> systemd-udevd
> [27057] 0 27057 11386 2231 26 0 0
> systemd-udevd
> [27058] 0 27058 11386 2232 26 0 0
> systemd-udevd
> [27059] 0 27059 11386 2232 26 0 0
> systemd-udevd
> [27060] 0 27060 11386 2232 26 0 0
> systemd-udevd
> [27061] 0 27061 11386 2232 26 0 0
> systemd-udevd
> [27062] 0 27062 11386 2232 26 0 0
> systemd-udevd
> [27063] 0 27063 11386 2232 26 0 0
> systemd-udevd
> [27064] 0 27064 11386 2232 26 0 0
> systemd-udevd
> [27065] 0 27065 11386 2233 26 0 0
> systemd-udevd
> [27066] 0 27066 11386 2233 26 0 0
> systemd-udevd
> [27067] 0 27067 11386 2233 26 0 0
> systemd-udevd
> [27068] 0 27068 11386 2233 26 0 0
> systemd-udevd
> [27069] 0 27069 11386 2233 26 0 0
> systemd-udevd
> [27070] 0 27070 11386 2233 26 0 0
> systemd-udevd
> [27071] 0 27071 11386 2234 26 0 0
> systemd-udevd
> [27072] 0 27072 11386 2234 26 0 0
> systemd-udevd
> [27073] 0 27073 11386 2234 26 0 0
> systemd-udevd
> [27074] 0 27074 11386 2234 26 0 0
> systemd-udevd
> [27075] 0 27075 11386 2234 26 0 0
> systemd-udevd
> [27076] 0 27076 11386 2234 26 0 0
> systemd-udevd
> [27077] 0 27077 11386 2234 26 0 0
> systemd-udevd
> [27078] 0 27078 11386 2235 26 0 0
> systemd-udevd
> [27079] 0 27079 11386 2235 26 0 0
> systemd-udevd
> [27080] 0 27080 11386 2235 26 0 0
> systemd-udevd
> [27081] 0 27081 11386 2235 26 0 0
> systemd-udevd
> [27082] 0 27082 11386 2235 26 0 0
> systemd-udevd
> [27083] 0 27083 11386 2235 26 0 0
> systemd-udevd
> [27084] 0 27084 11386 2235 26 0 0
> systemd-udevd
> [27085] 0 27085 11386 2236 26 0 0
> systemd-udevd
> [27086] 0 27086 11386 2236 26 0 0
> systemd-udevd
> [27087] 0 27087 11386 2236 26 0 0
> systemd-udevd
> [27088] 0 27088 11386 2236 26 0 0
> systemd-udevd
> [27089] 0 27089 11386 2236 26 0 0
> systemd-udevd
> [27090] 0 27090 11386 2236 26 0 0
> systemd-udevd
> [27091] 0 27091 11386 2236 26 0 0
> systemd-udevd
> [27092] 0 27092 11386 2237 26 0 0
> systemd-udevd
> [27093] 0 27093 11386 2237 26 0 0
> systemd-udevd
> [27094] 0 27094 11386 2237 26 0 0
> systemd-udevd
> [27095] 0 27095 11386 2237 26 0 0
> systemd-udevd
> [27096] 0 27096 11386 2237 26 0 0
> systemd-udevd
> [27097] 0 27097 11386 2237 26 0 0
> systemd-udevd
> [27098] 0 27098 11386 2238 26 0 0
> systemd-udevd
> [27099] 0 27099 11386 2238 26 0 0
> systemd-udevd
> [27100] 0 27100 11386 2238 26 0 0
> systemd-udevd
> [27101] 0 27101 11386 2238 26 0 0
> systemd-udevd
> [27102] 0 27102 11386 2238 26 0 0
> systemd-udevd
> [27103] 0 27103 11386 2238 26 0 0
> systemd-udevd
> [27104] 0 27104 11386 2238 26 0 0
> systemd-udevd
> [27105] 0 27105 11386 2239 26 0 0
> systemd-udevd
> [27106] 0 27106 11386 2239 26 0 0
> systemd-udevd
> [27107] 0 27107 11386 2239 26 0 0
> systemd-udevd
> [27108] 0 27108 11386 2239 26 0 0
> systemd-udevd
> [27109] 0 27109 11386 2239 26 0 0
> systemd-udevd
> [27110] 0 27110 11386 2239 26 0 0
> systemd-udevd
> [27111] 0 27111 11386 2239 26 0 0
> systemd-udevd
> [27112] 0 27112 11419 2240 26 0 0
> systemd-udevd
> [27113] 0 27113 11419 2240 26 0 0
> systemd-udevd
> [27114] 0 27114 11419 2240 26 0 0
> systemd-udevd
> [27115] 0 27115 11419 2240 26 0 0
> systemd-udevd
> [27116] 0 27116 11419 2240 26 0 0
> systemd-udevd
> [27117] 0 27117 11419 2240 26 0 0
> systemd-udevd
> [27118] 0 27118 11419 2240 26 0 0
> systemd-udevd
> [27119] 0 27119 11419 2241 26 0 0
> systemd-udevd
> [27120] 0 27120 11419 2241 26 0 0
> systemd-udevd
> [27121] 0 27121 11419 2241 26 0 0
> systemd-udevd
> [27122] 0 27122 11419 2241 26 0 0
> systemd-udevd
> [27123] 0 27123 11419 2241 26 0 0
> systemd-udevd
> [27124] 0 27124 11419 2241 26 0 0
> systemd-udevd
> [27125] 0 27125 11419 2242 26 0 0
> systemd-udevd
> [27126] 0 27126 11419 2242 26 0 0
> systemd-udevd
> [27127] 0 27127 11419 2242 26 0 0
> systemd-udevd
> [27128] 0 27128 11419 2242 26 0 0
> systemd-udevd
> [27129] 0 27129 11419 2242 26 0 0
> systemd-udevd
> [27130] 0 27130 11419 2242 26 0 0
> systemd-udevd
> [27131] 0 27131 11419 2242 26 0 0
> systemd-udevd
> [27132] 0 27132 11419 2243 26 0 0
> systemd-udevd
> [27133] 0 27133 11419 2243 26 0 0
> systemd-udevd
> [27134] 0 27134 11419 2243 26 0 0
> systemd-udevd
> [27135] 0 27135 11419 2243 26 0 0
> systemd-udevd
> [27136] 0 27136 11419 2243 26 0 0
> systemd-udevd
> [27137] 0 27137 11419 2243 26 0 0
> systemd-udevd
> [27138] 0 27138 11419 2243 26 0 0
> systemd-udevd
> [27139] 0 27139 11419 2244 26 0 0
> systemd-udevd
> [27140] 0 27140 11419 2244 26 0 0
> systemd-udevd
> [27141] 0 27141 11419 2244 26 0 0
> systemd-udevd
> [27142] 0 27142 11419 2244 26 0 0
> systemd-udevd
> [27143] 0 27143 11419 2244 26 0 0
> systemd-udevd
> [27144] 0 27144 11419 2244 26 0 0
> systemd-udevd
> [27145] 0 27145 11419 2244 26 0 0
> systemd-udevd
> [27146] 0 27146 11419 2245 26 0 0
> systemd-udevd
> [27147] 0 27147 11419 2245 26 0 0
> systemd-udevd
> [27148] 0 27148 11419 2245 26 0 0
> systemd-udevd
> [27149] 0 27149 11419 2245 26 0 0
> systemd-udevd
> [27150] 0 27150 11419 2245 26 0 0
> systemd-udevd
> [27151] 0 27151 11419 2245 26 0 0
> systemd-udevd
> [27152] 0 27152 11419 2246 26 0 0
> systemd-udevd
> [27153] 0 27153 11419 2246 26 0 0
> systemd-udevd
> [27154] 0 27154 11419 2246 26 0 0
> systemd-udevd
> [27155] 0 27155 11419 2246 26 0 0
> systemd-udevd
> [27156] 0 27156 11419 2246 26 0 0
> systemd-udevd
> [27157] 0 27157 11419 2246 26 0 0
> systemd-udevd
> [27158] 0 27158 11419 2246 26 0 0
> systemd-udevd
> [27159] 0 27159 11419 2247 26 0 0
> systemd-udevd
> [27160] 0 27160 11419 2247 26 0 0
> systemd-udevd
> [27161] 0 27161 11419 2247 26 0 0
> systemd-udevd
> [27162] 0 27162 11419 2247 26 0 0
> systemd-udevd
> [27163] 0 27163 11419 2247 26 0 0
> systemd-udevd
> [27164] 0 27164 11419 2247 26 0 0
> systemd-udevd
> [27165] 0 27165 11419 2247 26 0 0
> systemd-udevd
> [27166] 0 27166 11419 2248 26 0 0
> systemd-udevd
> [27167] 0 27167 11419 2248 26 0 0
> systemd-udevd
> [27168] 0 27168 11419 2248 26 0 0
> systemd-udevd
> [27169] 0 27169 11419 2248 26 0 0
> systemd-udevd
> [27170] 0 27170 11419 2248 26 0 0
> systemd-udevd
> [27171] 0 27171 11419 2248 26 0 0
> systemd-udevd
> [27172] 0 27172 11419 2248 26 0 0
> systemd-udevd
> [27173] 0 27173 11419 2249 26 0 0
> systemd-udevd
> [27174] 0 27174 11419 2249 26 0 0
> systemd-udevd
> [27175] 0 27175 11419 2249 26 0 0
> systemd-udevd
> [27176] 0 27176 11419 2249 26 0 0
> systemd-udevd
> [27177] 0 27177 11419 2249 26 0 0
> systemd-udevd
> [27178] 0 27178 11419 2249 26 0 0
> systemd-udevd
> [27179] 0 27179 11419 2250 26 0 0
> systemd-udevd
> [27180] 0 27180 11419 2250 26 0 0
> systemd-udevd
> [27181] 0 27181 11419 2250 26 0 0
> systemd-udevd
> [27182] 0 27182 11419 2250 26 0 0
> systemd-udevd
> [27183] 0 27183 11419 2250 26 0 0
> systemd-udevd
> [27184] 0 27184 11419 2250 26 0 0
> systemd-udevd
> [27185] 0 27185 11419 2250 26 0 0
> systemd-udevd
> [27186] 0 27186 11419 2251 26 0 0
> systemd-udevd
> [27187] 0 27187 11419 2251 26 0 0
> systemd-udevd
> [27188] 0 27188 11419 2251 26 0 0
> systemd-udevd
> [27189] 0 27189 11419 2251 26 0 0
> systemd-udevd
> [27190] 0 27190 11419 2251 26 0 0
> systemd-udevd
> [27191] 0 27191 11419 2251 26 0 0
> systemd-udevd
> [27192] 0 27192 11419 2251 26 0 0
> systemd-udevd
> [27193] 0 27193 11419 2252 26 0 0
> systemd-udevd
> [27194] 0 27194 11419 2252 26 0 0
> systemd-udevd
> [27195] 0 27195 11419 2252 26 0 0
> systemd-udevd
> [27196] 0 27196 11419 2252 26 0 0
> systemd-udevd
> [27197] 0 27197 11419 2252 26 0 0
> systemd-udevd
> [27198] 0 27198 11419 2252 26 0 0
> systemd-udevd
> [27199] 0 27199 11419 2253 26 0 0
> systemd-udevd
> [27200] 0 27200 11419 2253 26 0 0
> systemd-udevd
> [27201] 0 27201 11419 2253 26 0 0
> systemd-udevd
> [27202] 0 27202 11419 2253 26 0 0
> systemd-udevd
> [27203] 0 27203 11419 2253 26 0 0
> systemd-udevd
> [27204] 0 27204 11419 2253 26 0 0
> systemd-udevd
> [27205] 0 27205 11419 2253 26 0 0
> systemd-udevd
> [27206] 0 27206 11419 2254 26 0 0
> systemd-udevd
> [27207] 0 27207 11419 2254 26 0 0
> systemd-udevd
> [27208] 0 27208 11419 2254 26 0 0
> systemd-udevd
> [27209] 0 27209 11419 2254 26 0 0
> systemd-udevd
> [27210] 0 27210 11419 2254 26 0 0
> systemd-udevd
> [27211] 0 27211 11419 2254 26 0 0
> systemd-udevd
> [27212] 0 27212 11419 2254 26 0 0
> systemd-udevd
> [27213] 0 27213 11419 2255 26 0 0
> systemd-udevd
> [27214] 0 27214 11419 2255 26 0 0
> systemd-udevd
> [27215] 0 27215 11419 2255 26 0 0
> systemd-udevd
> [27216] 0 27216 11419 2255 26 0 0
> systemd-udevd
> [27217] 0 27217 11419 2255 26 0 0
> systemd-udevd
> [27218] 0 27218 11419 2255 26 0 0
> systemd-udevd
> [27219] 0 27219 11419 2255 26 0 0
> systemd-udevd
> [27220] 0 27220 11419 2256 26 0 0
> systemd-udevd
> [27221] 0 27221 11419 2256 26 0 0
> systemd-udevd
> [27222] 0 27222 11419 2256 26 0 0
> systemd-udevd
> [27223] 0 27223 11419 2256 26 0 0
> systemd-udevd
> [27224] 0 27224 11419 2256 26 0 0
> systemd-udevd
> [27225] 0 27225 11419 2256 26 0 0
> systemd-udevd
> [27226] 0 27226 11419 2257 26 0 0
> systemd-udevd
> [27227] 0 27227 11419 2257 26 0 0
> systemd-udevd
> [27228] 0 27228 11419 2257 26 0 0
> systemd-udevd
> [27229] 0 27229 11419 2257 26 0 0
> systemd-udevd
> [27230] 0 27230 11419 2257 26 0 0
> systemd-udevd
> [27231] 0 27231 11419 2257 26 0 0
> systemd-udevd
> [27232] 0 27232 11419 2257 26 0 0
> systemd-udevd
> [27233] 0 27233 11419 2258 26 0 0
> systemd-udevd
> [27234] 0 27234 11419 2258 26 0 0
> systemd-udevd
> [27235] 0 27235 11419 2258 26 0 0
> systemd-udevd
> [27236] 0 27236 11419 2258 26 0 0
> systemd-udevd
> [27237] 0 27237 11419 2258 26 0 0
> systemd-udevd
> [27238] 0 27238 11419 2258 26 0 0
> systemd-udevd
> [27239] 0 27239 11419 2258 26 0 0
> systemd-udevd
> [27240] 0 27240 11419 2259 26 0 0
> systemd-udevd
> [27241] 0 27241 11419 2259 26 0 0
> systemd-udevd
> [27242] 0 27242 11419 2259 26 0 0
> systemd-udevd
> [27243] 0 27243 11419 2259 26 0 0
> systemd-udevd
> [27244] 0 27244 11419 2259 26 0 0
> systemd-udevd
> [27245] 0 27245 11419 2259 26 0 0
> systemd-udevd
> [27246] 0 27246 11419 2259 26 0 0
> systemd-udevd
> [27247] 0 27247 11419 2260 26 0 0
> systemd-udevd
> [27248] 0 27248 11419 2260 26 0 0
> systemd-udevd
> [27249] 0 27249 11419 2260 26 0 0
> systemd-udevd
> [27250] 0 27250 11419 2260 26 0 0
> systemd-udevd
> [27251] 0 27251 11419 2260 26 0 0
> systemd-udevd
> [27252] 0 27252 11419 2260 26 0 0
> systemd-udevd
> [27254] 0 27254 11419 2261 26 0 0
> systemd-udevd
> [27255] 0 27255 11419 2261 26 0 0
> systemd-udevd
> [27256] 0 27256 11419 2261 26 0 0
> systemd-udevd
> [27257] 0 27257 11419 2261 26 0 0
> systemd-udevd
> [27258] 0 27258 11419 2261 26 0 0
> systemd-udevd
> [27259] 0 27259 11419 2261 26 0 0
> systemd-udevd
> [27260] 0 27260 11419 2261 26 0 0
> systemd-udevd
> [27261] 0 27261 11419 2262 26 0 0
> systemd-udevd
> [27262] 0 27262 11419 2262 26 0 0
> systemd-udevd
> [27263] 0 27263 11419 2262 26 0 0
> systemd-udevd
> [27264] 0 27264 11419 2262 26 0 0
> systemd-udevd
> [27265] 0 27265 11419 2262 26 0 0
> systemd-udevd
> [27266] 0 27266 11419 2262 26 0 0
> systemd-udevd
> [27267] 0 27267 11419 2262 26 0 0
> systemd-udevd
> [27268] 0 27268 11419 2263 26 0 0
> systemd-udevd
> [27269] 0 27269 11419 2263 26 0 0
> systemd-udevd
> [27270] 0 27270 11419 2263 26 0 0
> systemd-udevd
> [27271] 0 27271 11419 2263 26 0 0
> systemd-udevd
> [27272] 0 27272 11419 2263 26 0 0
> systemd-udevd
> [27273] 0 27273 11419 2263 26 0 0
> systemd-udevd
> [27274] 0 27274 11419 2263 26 0 0
> systemd-udevd
> [27275] 0 27275 11419 2264 26 0 0
> systemd-udevd
> [27276] 0 27276 11419 2264 26 0 0
> systemd-udevd
> [27277] 0 27277 11419 2264 26 0 0
> systemd-udevd
> [27278] 0 27278 11419 2264 26 0 0
> systemd-udevd
> [27279] 0 27279 11419 2264 26 0 0
> systemd-udevd
> [27280] 0 27280 11419 2264 26 0 0
> systemd-udevd
> [27281] 0 27281 11419 2265 26 0 0
> systemd-udevd
> [27282] 0 27282 11419 2265 26 0 0
> systemd-udevd
> [27283] 0 27283 11419 2265 26 0 0
> systemd-udevd
> [27284] 0 27284 11419 2265 26 0 0
> systemd-udevd
> [27285] 0 27285 11419 2265 26 0 0
> systemd-udevd
> [27286] 0 27286 11419 2265 26 0 0
> systemd-udevd
> [27287] 0 27287 11419 2265 26 0 0
> systemd-udevd
> [27288] 0 27288 11419 2266 26 0 0
> systemd-udevd
> [27289] 0 27289 11419 2266 26 0 0
> systemd-udevd
> [27290] 0 27290 11419 2266 26 0 0
> systemd-udevd
> [27291] 0 27291 11419 2266 26 0 0
> systemd-udevd
> [27292] 0 27292 11419 2266 26 0 0
> systemd-udevd
> [27293] 0 27293 11419 2266 26 0 0
> systemd-udevd
> [27294] 0 27294 11419 2266 26 0 0
> systemd-udevd
> [27295] 0 27295 11419 2267 26 0 0
> systemd-udevd
> [27296] 0 27296 11419 2267 26 0 0
> systemd-udevd
> [27297] 0 27297 11419 2267 26 0 0
> systemd-udevd
> [27298] 0 27298 11419 2267 26 0 0
> systemd-udevd
> [27299] 0 27299 11419 2267 26 0 0
> systemd-udevd
> [27300] 0 27300 11419 2267 26 0 0
> systemd-udevd
> [27301] 0 27301 11419 2267 26 0 0
> systemd-udevd
> [27302] 0 27302 11419 2268 26 0 0
> systemd-udevd
> [27303] 0 27303 11419 2268 26 0 0
> systemd-udevd
> [27304] 0 27304 11419 2268 26 0 0
> systemd-udevd
> [27305] 0 27305 11419 2268 26 0 0
> systemd-udevd
> [27306] 0 27306 11419 2268 26 0 0
> systemd-udevd
> [27307] 0 27307 11419 2268 26 0 0
> systemd-udevd
> [27308] 0 27308 11419 2269 26 0 0
> systemd-udevd
> [27309] 0 27309 11419 2269 26 0 0
> systemd-udevd
> [27310] 0 27310 11419 2269 26 0 0
> systemd-udevd
> [27311] 0 27311 11419 2269 26 0 0
> systemd-udevd
> [27312] 0 27312 11419 2269 26 0 0
> systemd-udevd
> [27313] 0 27313 11419 2269 26 0 0
> systemd-udevd
> [27314] 0 27314 11419 2269 26 0 0
> systemd-udevd
> [27315] 0 27315 11419 2270 26 0 0
> systemd-udevd
> [27316] 0 27316 11419 2270 26 0 0
> systemd-udevd
> [27317] 0 27317 11419 2270 26 0 0
> systemd-udevd
> [27318] 0 27318 11419 2270 26 0 0
> systemd-udevd
> [27319] 0 27319 11419 2270 26 0 0
> systemd-udevd
> [27320] 0 27320 11419 2270 26 0 0
> systemd-udevd
> [27321] 0 27321 11419 2270 26 0 0
> systemd-udevd
> [27322] 0 27322 11419 2271 26 0 0
> systemd-udevd
> [27323] 0 27323 11419 2271 26 0 0
> systemd-udevd
> [27324] 0 27324 11419 2271 26 0 0
> systemd-udevd
> [27325] 0 27325 11419 2271 26 0 0
> systemd-udevd
> [27326] 0 27326 11419 2271 26 0 0
> systemd-udevd
> [27327] 0 27327 11419 2271 26 0 0
> systemd-udevd
> [27328] 0 27328 11419 2272 26 0 0
> systemd-udevd
> [27329] 0 27329 11419 2272 26 0 0
> systemd-udevd
> [27330] 0 27330 11419 2272 26 0 0
> systemd-udevd
> [27331] 0 27331 11419 2272 26 0 0
> systemd-udevd
> [27332] 0 27332 11419 2272 26 0 0
> systemd-udevd
> [27333] 0 27333 11419 2272 26 0 0
> systemd-udevd
> [27334] 0 27334 11419 2272 26 0 0
> systemd-udevd
> [27335] 0 27335 11452 2273 26 0 0
> systemd-udevd
> [27336] 0 27336 11452 2273 26 0 0
> systemd-udevd
> [27337] 0 27337 11452 2273 26 0 0
> systemd-udevd
> [27338] 0 27338 11452 2273 26 0 0
> systemd-udevd
> [27339] 0 27339 11452 2273 26 0 0
> systemd-udevd
> [27340] 0 27340 11452 2273 26 0 0
> systemd-udevd
> [27341] 0 27341 11452 2273 26 0 0
> systemd-udevd
> [27342] 0 27342 11452 2274 26 0 0
> systemd-udevd
> [27343] 0 27343 11452 2274 26 0 0
> systemd-udevd
> [27344] 0 27344 11452 2274 26 0 0
> systemd-udevd
> [27345] 0 27345 11452 2274 26 0 0
> systemd-udevd
> [27346] 0 27346 11452 2274 26 0 0
> systemd-udevd
> [27347] 0 27347 11452 2274 26 0 0
> systemd-udevd
> [27348] 0 27348 11452 2274 26 0 0
> systemd-udevd
> [27349] 0 27349 11452 2275 26 0 0
> systemd-udevd
> [27350] 0 27350 11452 2275 26 0 0
> systemd-udevd
> [27351] 0 27351 11452 2275 26 0 0
> systemd-udevd
> [27352] 0 27352 11452 2275 26 0 0
> systemd-udevd
> [27353] 0 27353 11452 2273 26 0 0
> systemd-udevd
> [27354] 0 27354 11452 2275 26 0 0
> systemd-udevd
> [27355] 0 27355 11452 2276 26 0 0
> systemd-udevd
> [27356] 0 27356 11452 2274 26 0 0
> systemd-udevd
> [27357] 0 27357 11452 2274 26 0 -1000
> systemd-udevd
> [27358] 0 27358 11453 2282 26 0 -1000
> systemd-udevd
> [27359] 0 27359 11453 2282 26 0 -1000
> systemd-udevd
> [27360] 0 27360 11453 2275 26 0 -1000
> systemd-udevd
> [27361] 0 27361 11453 2282 26 0 -1000
> systemd-udevd
> [27362] 0 27362 11453 2283 26 0 -1000
> systemd-udevd
> [27363] 0 27363 11453 2283 26 0 -1000
> systemd-udevd
> [27364] 0 27364 11453 2283 26 0 -1000
> systemd-udevd
> [27365] 0 27365 11453 2276 26 0 -1000
> systemd-udevd
> [27366] 0 27366 11453 2283 26 0 -1000
> systemd-udevd
> Out of memory: Kill process 9613 (firefox) score 52 or sacrifice child
> Killed process 9613 (firefox) total-vm:1578420kB, anon-rss:314072kB,
> file-rss:228kB
> XMPP::NetTracke invoked oom-killer: gfp_mask=0x201da, order=0,
> oom_score_adj=0
> XMPP::NetTracke cpuset=/ mems_allowed=0
> Pid: 10557, comm: XMPP::NetTracke Not tainted
> 3.7.0-rc5-next-20121115_64+ #1697
> Call Trace:
> [<ffffffff810e7e71>] ? cpuset_print_task_mems_allowed+0x91/0xa0
> [<ffffffff816a7b5b>] dump_header.isra.10+0x6b/0x1a7
> [<ffffffff812fd066>] ? ___ratelimit+0x96/0x110
> [<ffffffff8112485f>] oom_kill_process+0x1cf/0x320
> [<ffffffff8108b1d7>] ? has_ns_capability_noaudit+0x17/0x20
> [<ffffffff81124dc0>] out_of_memory+0x250/0x280
> [<ffffffff811295d7>] __alloc_pages_nodemask+0x857/0x920
> [<ffffffff8112365d>] filemap_fault+0x28d/0x440
> [<ffffffff811444fa>] __do_fault+0x6a/0x460
> [<ffffffff81147149>] handle_pte_fault+0x89/0x900
> [<ffffffff810b0176>] ? ttwu_do_activate.constprop.88+0x66/0x70
> [<ffffffff811482bb>] handle_mm_fault+0x26b/0x370
> [<ffffffff81071e15>] __do_page_fault+0x145/0x480
> [<ffffffff810c4fdc>] ? ktime_get_ts+0x4c/0x100
> [<ffffffff81180132>] ? poll_select_set_timeout+0x72/0x90
> [<ffffffff8107218e>] do_page_fault+0xe/0x10
> [<ffffffff816b03f2>] page_fault+0x22/0x30
> Mem-Info:
> DMA per-cpu:
> CPU 0: hi: 0, btch: 1 usd: 0
> CPU 1: hi: 0, btch: 1 usd: 0
> DMA32 per-cpu:
> CPU 0: hi: 186, btch: 31 usd: 0
> CPU 1: hi: 186, btch: 31 usd: 0
> Normal per-cpu:
> CPU 0: hi: 186, btch: 31 usd: 0
> CPU 1: hi: 186, btch: 31 usd: 23
> active_anon:1359088 inactive_anon:74743 isolated_anon:0
> active_file:74 inactive_file:909 isolated_file:125
> unevictable:0 dirty:0 writeback:0 unstable:0
> free:23985 slab_reclaimable:4484 slab_unreclaimable:9967
> mapped:13361 shmem:81578 pagetables:22923 bounce:0
> free_cma:0
> DMA free:15956kB min:176kB low:220kB high:264kB active_anon:0kB
> inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB
> isolated(anon):0kB isolated(file):0kB present:15956kB mlocked:0kB
> dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:0kB
> slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB
> bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0
> all_unreclaimable? yes
> lowmem_reserve[]: 0 2711 5866 5866
> DMA32 free:43736kB min:31152kB low:38940kB high:46728kB
> active_anon:2665552kB inactive_anon:14280kB active_file:0kB
> inactive_file:1684kB unevictable:0kB isolated(anon):0kB
> isolated(file):0kB present:2776260kB mlocked:0kB dirty:0kB
> writeback:0kB mapped:1036kB shmem:14532kB slab_reclaimable:1136kB
> slab_unreclaimable:10812kB kernel_stack:2416kB pagetables:32168kB
> unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB
> pages_scanned:84031 all_unreclaimable? yes
> lowmem_reserve[]: 0 0 3154 3154
> Normal free:36248kB min:36252kB low:45312kB high:54376kB
> active_anon:2770800kB inactive_anon:284692kB active_file:296kB
> inactive_file:1952kB unevictable:0kB isolated(anon):0kB
> isolated(file):500kB present:3230696kB mlocked:0kB dirty:0kB
> writeback:0kB mapped:52408kB shmem:311780kB slab_reclaimable:16800kB
> slab_unreclaimable:29056kB kernel_stack:5040kB pagetables:59524kB
> unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB
> pages_scanned:24064 all_unreclaimable? yes
> lowmem_reserve[]: 0 0 0 0
> DMA: 1*4kB (U) 2*8kB (U) 2*16kB (U) 1*32kB (U) 2*64kB (U) 1*128kB (U)
> 1*256kB (U) 0*512kB 1*1024kB (U) 1*2048kB (R) 3*4096kB (M) = 15956kB
> DMA32: 42*4kB (UEM) 49*8kB (UEM) 46*16kB (UEM) 20*32kB (UE) 26*64kB
> (UEM) 22*128kB (UE) 18*256kB (UEM) 40*512kB (UEM) 8*1024kB (U)
> 0*2048kB 1*4096kB (R) = 43792kB
> Normal: 514*4kB (UEM) 341*8kB (UEM) 443*16kB (UEM) 313*32kB (UEM)
> 100*64kB (EM) 44*128kB (EM) 1*256kB (M) 0*512kB 0*1024kB 1*2048kB (R)
> 0*4096kB = 36224kB
> 82803 total pagecache pages
> 0 pages in swap cache
> Swap cache stats: add 0, delete 0, find 0/0
> Free swap = 0kB
> Total swap = 0kB
> 1556479 pages RAM
> 49776 pages reserved
> 635828 pages shared
> 1393234 pages non-shared
>
> regards,
Already raised this issue on systemd mailing list. So systemd
upstream also knows about this.
--
Robert Milasan
L3 Support Engineer
SUSE Linux (http://www.suse.com)
email: rmilasan@suse.com
GPG fingerprint: B6FE F4A8 0FA3 3040 3402 6FE7 2F64 167C 1909 6D1A
^ permalink raw reply
* "tuntap: multiqueue support" causes udev fork bombs
From: Jiri Slaby @ 2012-11-28 10:25 UTC (permalink / raw)
To: jasowang; +Cc: David S. Miller, ML netdev, LKML, rmilasan, Jiri Slaby, maxk,
vtun
Hi,
with this commit:
commit c8d68e6be1c3b242f1c598595830890b65cea64a
Author: Jason Wang <jasowang@redhat.com>
Date: Wed Oct 31 19:46:00 2012 +0000
tuntap: multiqueue support
I see fork bombs from udev. It is trying to create 2048 processes. 1024
for tx, 1024 for rx. OOM killer indeed steps in and kills everything.
To trigger that it's enough for me to the following on a 6G of RAM machine:
# echo 3 >/proc/sys/vm/drop_caches
# /etc/init.d/openvpn restart
[ pid ] uid tgid total_vm rss nr_ptes swapents oom_score_adj name
[ 987] 0 987 11453 2276 28 0 -1000
systemd-udevd
[ 992] 0 992 487336 102 783 0 0
systemd-journal
[ 1877] 0 1877 36866 277 42 0 0 cupsd
[ 1881] 81 1881 7677 236 20 0 -900
dbus-daemon
[ 1894] 0 1894 7525 67 19 0 0 rpcbind
[ 1900] 0 1900 1860 809 8 0 0 haveged
[ 1902] 0 1902 8647 83 23 0 0
systemd-logind
[ 1918] 99 1918 4567 100 13 0 0
ksysguardd
[ 1919] 0 1919 55276 258 42 0 0 upowerd
[ 1942] 106 1942 104395 1835 76 0 0
pulseaudio
[ 1947] 117 1947 67472 423 33 0 0 polkitd
[ 1991] 0 1991 22199 39 13 0 0 agetty
[ 2034] 0 2034 22199 39 13 0 0 agetty
[ 2080] 0 2080 22199 39 13 0 0 agetty
[ 2105] 0 2105 22199 37 13 0 0 agetty
[ 2150] 0 2150 22199 39 13 0 0 agetty
[ 4118] 0 4118 2132 34 8 0 0 dhcpcd
[ 4319] 0 4319 24629 153 17 0 0 cron
[ 4339] 0 4339 95072 620 28 0 0
automount
[ 4340] 0 4340 15100 187 32 0 0 nmbd
[ 4377] 0 4377 13038 147 29 0 -1000 sshd
[ 4719] 25 4719 65189 4833 56 0 0 named
[ 4776] 8 4776 12262 144 25 0 0 exim
[ 4792] 498 4792 200033 2915 140 0 0 mpd
[ 4798] 0 4798 22239 515 46 0 0
httpd2-prefork
[ 4799] 30 4799 22267 544 45 0 0
httpd2-prefork
[ 4800] 0 4800 22199 38 13 0 0 agetty
[ 8480] 38 8480 8886 152 22 0 0 ntpd
[ 9210] 0 9210 19982 229 41 0 0
winbindd
[ 9236] 0 9236 41560 271 46 0 0 smbd
[ 9241] 0 9241 6148 51 17 0 0 kdm
[ 9258] 0 9258 50350 18924 102 0 0 Xorg
[ 9265] 0 9265 17737 126 40 0 0 kdm
[ 9275] 0 9275 20006 233 40 0 0
winbindd
[ 9276] 0 9276 20009 234 40 0 0
winbindd
[ 9277] 0 9277 19982 229 39 0 0
winbindd
[ 9278] 0 9278 41595 271 44 0 0 smbd
[ 9286] 500 9286 3212 32 12 0 0
ck-launch-sessi
[ 9334] 0 9334 261302 767 44 0 0
console-kit-dae
[ 9402] 500 9402 21982 80 13 0 0
startkde
[ 9405] 500 9405 5569 71 14 0 0
dbus-launch
[ 9406] 500 9406 7934 351 18 0 0
dbus-daemon
[ 9407] 500 9407 22464 52 11 0 0
gpg-agent
[ 9408] 500 9408 3116 79 9 0 0
ssh-agent
[ 9447] 500 9447 1021 21 6 0 -300
start_kdeinit
[ 9448] 500 9448 95847 1417 135 0 -300
kdeinit4
[ 9449] 500 9449 97074 1400 128 0 0
klauncher
[ 9451] 500 9451 217312 3643 232 0 0 kded4
[ 9454] 500 9454 5613 71 16 0 0
gam_server
[ 9461] 500 9461 118346 2242 166 0 0
kglobalaccel
[ 9465] 500 9465 106352 1222 127 0 0
kactivitymanage
[ 9468] 0 9468 86882 348 39 0 0 udisksd
[ 9474] 500 9474 1055 19 7 0 0
kwrapper4
[ 9475] 500 9475 139558 1967 173 0 0
ksmserver
[ 9479] 500 9479 274661 3121 206 0 0
knotify4
[ 9481] 500 9481 197330 8264 225 0 0 kwin
[ 9489] 500 9489 247392 15943 293 0 0
plasma-desktop
[ 9496] 500 9496 2462 94 10 0 0
ksysguardd
[ 9503] 500 9503 80747 985 123 0 0
kuiserver
[ 9506] 500 9506 49217 363 30 0 0
akonadi_control
[ 9508] 500 9508 319188 1502 70 0 0
akonadiserver
[ 9515] 500 9515 87701 848 101 0 0
akonadi_agent_l
[ 9517] 500 9517 87701 848 99 0 0
akonadi_agent_l
[ 9518] 500 9518 86733 840 100 0 0
akonadi_agent_l
[ 9519] 500 9519 86733 836 96 0 0
akonadi_agent_l
[ 9520] 500 9520 86733 839 104 0 0
akonadi_agent_l
[ 9521] 500 9521 86733 835 98 0 0
akonadi_agent_l
[ 9522] 500 9522 86649 1050 130 0 0
akonadi_kabc_re
[ 9523] 500 9523 87700 848 102 0 0
akonadi_agent_l
[ 9524] 500 9524 96933 1146 149 0 0
akonadi_maildis
[ 9526] 500 9526 86307 1039 130 0 0
akonadi_nepomuk
[ 9541] 500 9541 86080 827 98 0 0
akonadi_agent_l
[ 9542] 500 9542 86076 826 98 0 0
akonadi_agent_l
[ 9569] 500 9569 258392 4518 237 0 0 krunner
[ 9581] 500 9581 41396 6834 50 0 0 xterm
[ 9593] 500 9593 179383 3144 187 0 0 kmix
[ 9596] 500 9596 24871 824 19 0 0 bash
[ 9601] 500 9601 83376 959 122 0 0
nepomukcontroll
[ 9612] 500 9612 35918 1357 40 0 0 xterm
[ 9613] 500 9613 394605 78575 507 0 0 firefox
[ 9617] 500 9617 24819 769 17 0 0 bash
[ 9639] 500 9639 219529 3667 167 0 0 gmpc
[ 9642] 500 9642 322588 29782 310 0 0
thunderbird-bin
[ 9670] 500 9670 98277 518 78 0 0
zeitgeist-datah
[ 9674] 500 9674 106065 1042 134 0 0
polkit-kde-auth
[ 9677] 500 9677 121823 1986 172 0 0 klipper
[ 9685] 500 9685 84864 719 34 0 0
zeitgeist-daemo
[ 9693] 500 9693 51569 231 36 0 0
zeitgeist-fts
[ 9697] 500 9697 66883 126 32 0 0 gvfsd
[ 9708] 500 9708 20166 23 10 0 0 cat
[ 9729] 500 9729 32115 625 31 0 0
gconfd-2
[ 9755] 500 9755 46906 117 30 0 0
at-spi-bus-laun
[ 9770] 500 9770 83934 1051 125 0 0
kmozillahelper
[10343] 30 10343 22265 542 45 0 0
httpd2-prefork
[10347] 30 10347 22265 541 45 0 0
httpd2-prefork
[10348] 30 10348 22267 545 45 0 0
httpd2-prefork
[10354] 30 10354 22267 544 45 0 0
httpd2-prefork
[10355] 30 10355 22267 543 45 0 0
httpd2-prefork
[10356] 30 10356 22267 544 45 0 0
httpd2-prefork
[10357] 30 10357 22267 544 45 0 0
httpd2-prefork
[10409] 500 10409 34921 136 37 0 0 su
[10421] 0 10421 24642 600 19 0 0 bash
[10522] 500 10522 486624 5871 185 0 0
psi-plus
[11743] 500 11743 35919 1358 38 0 0 xterm
[11745] 500 11745 24871 810 19 0 0 bash
[11767] 500 11767 34922 136 37 0 0 su
[11779] 502 11779 24583 543 18 0 0 bash
[12412] 500 12412 35919 1358 39 0 0 xterm
[12414] 500 12414 24871 824 19 0 0 bash
[17530] 0 17530 63856 103 24 0 0
rsyslogd
[22468] 500 22468 117093 1537 133 0 0
kio_trash
[22469] 500 22469 98653 1464 130 0 0
kio_file
[22699] 0 22699 15508 391 33 0 0 openvpn
[22718] 0 22718 9505 360 22 0 0
systemd-udevd
[26825] 0 26825 11353 2198 26 0 0
systemd-udevd
[26826] 0 26826 11353 2198 26 0 0
systemd-udevd
[26827] 0 26827 11353 2198 26 0 0
systemd-udevd
[26828] 0 26828 11353 2198 26 0 0
systemd-udevd
[26829] 0 26829 11353 2198 26 0 0
systemd-udevd
[26830] 0 26830 11353 2198 26 0 0
systemd-udevd
[26831] 0 26831 11353 2198 26 0 0
systemd-udevd
[26832] 0 26832 11353 2199 26 0 0
systemd-udevd
[26833] 0 26833 11353 2199 26 0 0
systemd-udevd
[26834] 0 26834 11353 2199 26 0 0
systemd-udevd
[26835] 0 26835 11353 2199 26 0 0
systemd-udevd
[26836] 0 26836 11353 2199 26 0 0
systemd-udevd
[26837] 0 26837 11353 2199 26 0 0
systemd-udevd
[26838] 0 26838 11353 2199 26 0 0
systemd-udevd
[26839] 0 26839 11353 2199 26 0 0
systemd-udevd
[26840] 0 26840 11353 2200 26 0 0
systemd-udevd
[26841] 0 26841 11353 2200 26 0 0
systemd-udevd
[26842] 0 26842 11353 2200 26 0 0
systemd-udevd
[26843] 0 26843 11353 2200 26 0 0
systemd-udevd
[26844] 0 26844 11353 2200 26 0 0
systemd-udevd
[26845] 0 26845 11353 2200 26 0 0
systemd-udevd
[26846] 0 26846 11353 2200 26 0 0
systemd-udevd
[26847] 0 26847 11353 2201 26 0 0
systemd-udevd
[26848] 0 26848 11353 2201 26 0 0
systemd-udevd
[26849] 0 26849 11353 2201 26 0 0
systemd-udevd
[26850] 0 26850 11353 2201 26 0 0
systemd-udevd
[26851] 0 26851 11353 2201 26 0 0
systemd-udevd
[26852] 0 26852 11353 2201 26 0 0
systemd-udevd
[26853] 0 26853 11353 2201 26 0 0
systemd-udevd
[26854] 0 26854 11353 2202 26 0 0
systemd-udevd
[26855] 0 26855 11353 2202 26 0 0
systemd-udevd
[26856] 0 26856 11353 2202 26 0 0
systemd-udevd
[26857] 0 26857 11353 2202 26 0 0
systemd-udevd
[26858] 0 26858 11353 2202 26 0 0
systemd-udevd
[26859] 0 26859 11353 2202 26 0 0
systemd-udevd
[26860] 0 26860 11353 2202 26 0 0
systemd-udevd
[26861] 0 26861 11353 2203 26 0 0
systemd-udevd
[26862] 0 26862 11353 2203 26 0 0
systemd-udevd
[26863] 0 26863 11353 2203 26 0 0
systemd-udevd
[26864] 0 26864 11353 2203 26 0 0
systemd-udevd
[26865] 0 26865 11353 2203 26 0 0
systemd-udevd
[26866] 0 26866 11353 2203 26 0 0
systemd-udevd
[26867] 0 26867 11353 2204 26 0 0
systemd-udevd
[26868] 0 26868 11353 2204 26 0 0
systemd-udevd
[26869] 0 26869 11353 2204 26 0 0
systemd-udevd
[26870] 0 26870 11353 2204 26 0 0
systemd-udevd
[26871] 0 26871 11353 2204 26 0 0
systemd-udevd
[26872] 0 26872 11353 2204 26 0 0
systemd-udevd
[26873] 0 26873 11353 2204 26 0 0
systemd-udevd
[26874] 0 26874 11353 2205 26 0 0
systemd-udevd
[26875] 0 26875 11353 2205 26 0 0
systemd-udevd
[26876] 0 26876 11353 2205 26 0 0
systemd-udevd
[26877] 0 26877 11353 2205 26 0 0
systemd-udevd
[26878] 0 26878 11353 2205 26 0 0
systemd-udevd
[26879] 0 26879 11353 2205 26 0 0
systemd-udevd
[26880] 0 26880 11353 2205 26 0 0
systemd-udevd
[26881] 0 26881 11353 2206 26 0 0
systemd-udevd
[26882] 0 26882 11353 2206 26 0 0
systemd-udevd
[26883] 0 26883 11353 2206 26 0 0
systemd-udevd
[26884] 0 26884 11353 2206 26 0 0
systemd-udevd
[26885] 0 26885 11353 2206 26 0 0
systemd-udevd
[26886] 0 26886 11353 2206 26 0 0
systemd-udevd
[26887] 0 26887 11353 2206 26 0 0
systemd-udevd
[26888] 0 26888 11386 2207 26 0 0
systemd-udevd
[26889] 0 26889 11386 2207 26 0 0
systemd-udevd
[26890] 0 26890 11386 2207 26 0 0
systemd-udevd
[26891] 0 26891 11386 2207 26 0 0
systemd-udevd
[26892] 0 26892 11386 2207 26 0 0
systemd-udevd
[26893] 0 26893 11386 2207 26 0 0
systemd-udevd
[26894] 0 26894 11386 2208 26 0 0
systemd-udevd
[26895] 0 26895 11386 2208 26 0 0
systemd-udevd
[26896] 0 26896 11386 2208 26 0 0
systemd-udevd
[26897] 0 26897 11386 2208 26 0 0
systemd-udevd
[26898] 0 26898 11386 2208 26 0 0
systemd-udevd
[26899] 0 26899 11386 2208 26 0 0
systemd-udevd
[26900] 0 26900 11386 2208 26 0 0
systemd-udevd
[26901] 0 26901 11386 2209 26 0 0
systemd-udevd
[26902] 0 26902 11386 2209 26 0 0
systemd-udevd
[26903] 0 26903 11386 2209 26 0 0
systemd-udevd
[26904] 0 26904 11386 2209 26 0 0
systemd-udevd
[26905] 0 26905 11386 2209 26 0 0
systemd-udevd
[26906] 0 26906 11386 2209 26 0 0
systemd-udevd
[26907] 0 26907 11386 2209 26 0 0
systemd-udevd
[26908] 0 26908 11386 2210 26 0 0
systemd-udevd
[26909] 0 26909 11386 2210 26 0 0
systemd-udevd
[26910] 0 26910 11386 2210 26 0 0
systemd-udevd
[26911] 0 26911 11386 2210 26 0 0
systemd-udevd
[26912] 0 26912 11386 2210 26 0 0
systemd-udevd
[26913] 0 26913 11386 2210 26 0 0
systemd-udevd
[26914] 0 26914 11386 2210 26 0 0
systemd-udevd
[26915] 0 26915 11386 2211 26 0 0
systemd-udevd
[26916] 0 26916 11386 2211 26 0 0
systemd-udevd
[26917] 0 26917 11386 2211 26 0 0
systemd-udevd
[26918] 0 26918 11386 2211 26 0 0
systemd-udevd
[26919] 0 26919 11386 2211 26 0 0
systemd-udevd
[26920] 0 26920 11386 2211 26 0 0
systemd-udevd
[26921] 0 26921 11386 2212 26 0 0
systemd-udevd
[26922] 0 26922 11386 2212 26 0 0
systemd-udevd
[26923] 0 26923 11386 2212 26 0 0
systemd-udevd
[26924] 0 26924 11386 2212 26 0 0
systemd-udevd
[26925] 0 26925 11386 2212 26 0 0
systemd-udevd
[26926] 0 26926 11386 2212 26 0 0
systemd-udevd
[26927] 0 26927 11386 2212 26 0 0
systemd-udevd
[26928] 0 26928 11386 2213 26 0 0
systemd-udevd
[26929] 0 26929 11386 2213 26 0 0
systemd-udevd
[26930] 0 26930 11386 2213 26 0 0
systemd-udevd
[26931] 0 26931 11386 2213 26 0 0
systemd-udevd
[26932] 0 26932 11386 2213 26 0 0
systemd-udevd
[26933] 0 26933 11386 2213 26 0 0
systemd-udevd
[26934] 0 26934 11386 2213 26 0 0
systemd-udevd
[26935] 0 26935 11386 2214 26 0 0
systemd-udevd
[26936] 0 26936 11386 2214 26 0 0
systemd-udevd
[26937] 0 26937 11386 2214 26 0 0
systemd-udevd
[26938] 0 26938 11386 2214 26 0 0
systemd-udevd
[26939] 0 26939 11386 2214 26 0 0
systemd-udevd
[26940] 0 26940 11386 2214 26 0 0
systemd-udevd
[26941] 0 26941 11386 2215 26 0 0
systemd-udevd
[26942] 0 26942 11386 2215 26 0 0
systemd-udevd
[26943] 0 26943 11386 2215 26 0 0
systemd-udevd
[26944] 0 26944 11386 2215 26 0 0
systemd-udevd
[26945] 0 26945 11386 2215 26 0 0
systemd-udevd
[26946] 0 26946 11386 2215 26 0 0
systemd-udevd
[26947] 0 26947 11386 2215 26 0 0
systemd-udevd
[26948] 0 26948 11386 2216 26 0 0
systemd-udevd
[26949] 0 26949 11386 2216 26 0 0
systemd-udevd
[26950] 0 26950 11386 2216 26 0 0
systemd-udevd
[26951] 0 26951 11386 2216 26 0 0
systemd-udevd
[26952] 0 26952 11386 2216 26 0 0
systemd-udevd
[26953] 0 26953 11386 2216 26 0 0
systemd-udevd
[26954] 0 26954 11386 2216 26 0 0
systemd-udevd
[26955] 0 26955 11386 2217 26 0 0
systemd-udevd
[26956] 0 26956 11386 2217 26 0 0
systemd-udevd
[26957] 0 26957 11386 2217 26 0 0
systemd-udevd
[26958] 0 26958 11386 2217 26 0 0
systemd-udevd
[26959] 0 26959 11386 2217 26 0 0
systemd-udevd
[26960] 0 26960 11386 2217 26 0 0
systemd-udevd
[26961] 0 26961 11386 2217 26 0 0
systemd-udevd
[26962] 0 26962 11386 2218 26 0 0
systemd-udevd
[26963] 0 26963 11386 2218 26 0 0
systemd-udevd
[26964] 0 26964 11386 2218 26 0 0
systemd-udevd
[26965] 0 26965 11386 2218 26 0 0
systemd-udevd
[26966] 0 26966 11386 2218 26 0 0
systemd-udevd
[26967] 0 26967 11386 2218 26 0 0
systemd-udevd
[26968] 0 26968 11386 2219 26 0 0
systemd-udevd
[26969] 0 26969 11386 2219 26 0 0
systemd-udevd
[26970] 0 26970 11386 2219 26 0 0
systemd-udevd
[26971] 0 26971 11386 2219 26 0 0
systemd-udevd
[26972] 0 26972 11386 2219 26 0 0
systemd-udevd
[26973] 0 26973 11386 2219 26 0 0
systemd-udevd
[26974] 0 26974 11386 2219 26 0 0
systemd-udevd
[26975] 0 26975 11386 2220 26 0 0
systemd-udevd
[26976] 0 26976 11386 2220 26 0 0
systemd-udevd
[26977] 0 26977 11386 2220 26 0 0
systemd-udevd
[26978] 0 26978 11386 2220 26 0 0
systemd-udevd
[26979] 0 26979 11386 2220 26 0 0
systemd-udevd
[26980] 0 26980 11386 2220 26 0 0
systemd-udevd
[26981] 0 26981 11386 2220 26 0 0
systemd-udevd
[26982] 0 26982 24905 290 16 0 0 htop
[26983] 0 26983 11386 2221 26 0 0
systemd-udevd
[26984] 0 26984 11386 2221 26 0 0
systemd-udevd
[26985] 0 26985 11386 2221 26 0 0
systemd-udevd
[26986] 0 26986 11386 2221 26 0 0
systemd-udevd
[26987] 0 26987 11386 2221 26 0 0
systemd-udevd
[26988] 0 26988 11386 2221 26 0 0
systemd-udevd
[26989] 0 26989 11386 2221 26 0 0
systemd-udevd
[26990] 0 26990 11386 2222 26 0 0
systemd-udevd
[26991] 0 26991 11386 2222 26 0 0
systemd-udevd
[26992] 0 26992 11386 2222 26 0 0
systemd-udevd
[26993] 0 26993 11386 2222 26 0 0
systemd-udevd
[26994] 0 26994 11386 2222 26 0 0
systemd-udevd
[26995] 0 26995 11386 2222 26 0 0
systemd-udevd
[26996] 0 26996 11386 2223 26 0 0
systemd-udevd
[26997] 0 26997 11386 2223 26 0 0
systemd-udevd
[26998] 0 26998 11386 2223 26 0 0
systemd-udevd
[26999] 0 26999 11386 2223 26 0 0
systemd-udevd
[27000] 0 27000 11386 2223 26 0 0
systemd-udevd
[27001] 0 27001 11386 2223 26 0 0
systemd-udevd
[27002] 0 27002 11386 2223 26 0 0
systemd-udevd
[27003] 0 27003 11386 2224 26 0 0
systemd-udevd
[27004] 0 27004 11386 2224 26 0 0
systemd-udevd
[27005] 0 27005 11386 2224 26 0 0
systemd-udevd
[27006] 0 27006 11386 2224 26 0 0
systemd-udevd
[27007] 0 27007 11386 2224 26 0 0
systemd-udevd
[27008] 0 27008 11386 2224 26 0 0
systemd-udevd
[27010] 0 27010 11386 2224 26 0 0
systemd-udevd
[27011] 0 27011 11386 2225 26 0 0
systemd-udevd
[27012] 0 27012 11386 2225 26 0 0
systemd-udevd
[27013] 0 27013 11386 2225 26 0 0
systemd-udevd
[27014] 0 27014 11386 2225 26 0 0
systemd-udevd
[27015] 0 27015 11386 2225 26 0 0
systemd-udevd
[27016] 0 27016 11386 2225 26 0 0
systemd-udevd
[27017] 0 27017 11386 2225 26 0 0
systemd-udevd
[27018] 0 27018 11386 2226 26 0 0
systemd-udevd
[27019] 0 27019 11386 2226 26 0 0
systemd-udevd
[27020] 0 27020 11386 2226 26 0 0
systemd-udevd
[27021] 0 27021 11386 2226 26 0 0
systemd-udevd
[27022] 0 27022 11386 2226 26 0 0
systemd-udevd
[27023] 0 27023 11386 2226 26 0 0
systemd-udevd
[27024] 0 27024 11386 2227 26 0 0
systemd-udevd
[27025] 0 27025 11386 2227 26 0 0
systemd-udevd
[27026] 0 27026 11386 2227 26 0 0
systemd-udevd
[27027] 0 27027 11386 2227 26 0 0
systemd-udevd
[27028] 0 27028 11386 2227 26 0 0
systemd-udevd
[27029] 0 27029 11386 2227 26 0 0
systemd-udevd
[27030] 0 27030 11386 2227 26 0 0
systemd-udevd
[27031] 0 27031 11386 2228 26 0 0
systemd-udevd
[27032] 0 27032 11386 2228 26 0 0
systemd-udevd
[27033] 0 27033 11386 2228 26 0 0
systemd-udevd
[27034] 0 27034 11386 2228 26 0 0
systemd-udevd
[27035] 0 27035 11386 2228 26 0 0
systemd-udevd
[27036] 0 27036 11386 2228 26 0 0
systemd-udevd
[27037] 0 27037 11386 2228 26 0 0
systemd-udevd
[27038] 0 27038 11386 2229 26 0 0
systemd-udevd
[27039] 0 27039 11386 2229 26 0 0
systemd-udevd
[27040] 0 27040 11386 2229 26 0 0
systemd-udevd
[27041] 0 27041 11386 2229 26 0 0
systemd-udevd
[27042] 0 27042 11386 2229 26 0 0
systemd-udevd
[27043] 0 27043 11386 2229 26 0 0
systemd-udevd
[27044] 0 27044 11386 2229 26 0 0
systemd-udevd
[27045] 0 27045 11386 2230 26 0 0
systemd-udevd
[27046] 0 27046 11386 2230 26 0 0
systemd-udevd
[27047] 0 27047 11386 2230 26 0 0
systemd-udevd
[27048] 0 27048 11386 2230 26 0 0
systemd-udevd
[27049] 0 27049 11386 2230 26 0 0
systemd-udevd
[27050] 0 27050 11386 2230 26 0 0
systemd-udevd
[27051] 0 27051 11386 2231 26 0 0
systemd-udevd
[27052] 0 27052 11386 2231 26 0 0
systemd-udevd
[27053] 0 27053 11386 2231 26 0 0
systemd-udevd
[27054] 0 27054 11386 2231 26 0 0
systemd-udevd
[27055] 0 27055 11386 2231 26 0 0
systemd-udevd
[27056] 0 27056 11386 2231 26 0 0
systemd-udevd
[27057] 0 27057 11386 2231 26 0 0
systemd-udevd
[27058] 0 27058 11386 2232 26 0 0
systemd-udevd
[27059] 0 27059 11386 2232 26 0 0
systemd-udevd
[27060] 0 27060 11386 2232 26 0 0
systemd-udevd
[27061] 0 27061 11386 2232 26 0 0
systemd-udevd
[27062] 0 27062 11386 2232 26 0 0
systemd-udevd
[27063] 0 27063 11386 2232 26 0 0
systemd-udevd
[27064] 0 27064 11386 2232 26 0 0
systemd-udevd
[27065] 0 27065 11386 2233 26 0 0
systemd-udevd
[27066] 0 27066 11386 2233 26 0 0
systemd-udevd
[27067] 0 27067 11386 2233 26 0 0
systemd-udevd
[27068] 0 27068 11386 2233 26 0 0
systemd-udevd
[27069] 0 27069 11386 2233 26 0 0
systemd-udevd
[27070] 0 27070 11386 2233 26 0 0
systemd-udevd
[27071] 0 27071 11386 2234 26 0 0
systemd-udevd
[27072] 0 27072 11386 2234 26 0 0
systemd-udevd
[27073] 0 27073 11386 2234 26 0 0
systemd-udevd
[27074] 0 27074 11386 2234 26 0 0
systemd-udevd
[27075] 0 27075 11386 2234 26 0 0
systemd-udevd
[27076] 0 27076 11386 2234 26 0 0
systemd-udevd
[27077] 0 27077 11386 2234 26 0 0
systemd-udevd
[27078] 0 27078 11386 2235 26 0 0
systemd-udevd
[27079] 0 27079 11386 2235 26 0 0
systemd-udevd
[27080] 0 27080 11386 2235 26 0 0
systemd-udevd
[27081] 0 27081 11386 2235 26 0 0
systemd-udevd
[27082] 0 27082 11386 2235 26 0 0
systemd-udevd
[27083] 0 27083 11386 2235 26 0 0
systemd-udevd
[27084] 0 27084 11386 2235 26 0 0
systemd-udevd
[27085] 0 27085 11386 2236 26 0 0
systemd-udevd
[27086] 0 27086 11386 2236 26 0 0
systemd-udevd
[27087] 0 27087 11386 2236 26 0 0
systemd-udevd
[27088] 0 27088 11386 2236 26 0 0
systemd-udevd
[27089] 0 27089 11386 2236 26 0 0
systemd-udevd
[27090] 0 27090 11386 2236 26 0 0
systemd-udevd
[27091] 0 27091 11386 2236 26 0 0
systemd-udevd
[27092] 0 27092 11386 2237 26 0 0
systemd-udevd
[27093] 0 27093 11386 2237 26 0 0
systemd-udevd
[27094] 0 27094 11386 2237 26 0 0
systemd-udevd
[27095] 0 27095 11386 2237 26 0 0
systemd-udevd
[27096] 0 27096 11386 2237 26 0 0
systemd-udevd
[27097] 0 27097 11386 2237 26 0 0
systemd-udevd
[27098] 0 27098 11386 2238 26 0 0
systemd-udevd
[27099] 0 27099 11386 2238 26 0 0
systemd-udevd
[27100] 0 27100 11386 2238 26 0 0
systemd-udevd
[27101] 0 27101 11386 2238 26 0 0
systemd-udevd
[27102] 0 27102 11386 2238 26 0 0
systemd-udevd
[27103] 0 27103 11386 2238 26 0 0
systemd-udevd
[27104] 0 27104 11386 2238 26 0 0
systemd-udevd
[27105] 0 27105 11386 2239 26 0 0
systemd-udevd
[27106] 0 27106 11386 2239 26 0 0
systemd-udevd
[27107] 0 27107 11386 2239 26 0 0
systemd-udevd
[27108] 0 27108 11386 2239 26 0 0
systemd-udevd
[27109] 0 27109 11386 2239 26 0 0
systemd-udevd
[27110] 0 27110 11386 2239 26 0 0
systemd-udevd
[27111] 0 27111 11386 2239 26 0 0
systemd-udevd
[27112] 0 27112 11419 2240 26 0 0
systemd-udevd
[27113] 0 27113 11419 2240 26 0 0
systemd-udevd
[27114] 0 27114 11419 2240 26 0 0
systemd-udevd
[27115] 0 27115 11419 2240 26 0 0
systemd-udevd
[27116] 0 27116 11419 2240 26 0 0
systemd-udevd
[27117] 0 27117 11419 2240 26 0 0
systemd-udevd
[27118] 0 27118 11419 2240 26 0 0
systemd-udevd
[27119] 0 27119 11419 2241 26 0 0
systemd-udevd
[27120] 0 27120 11419 2241 26 0 0
systemd-udevd
[27121] 0 27121 11419 2241 26 0 0
systemd-udevd
[27122] 0 27122 11419 2241 26 0 0
systemd-udevd
[27123] 0 27123 11419 2241 26 0 0
systemd-udevd
[27124] 0 27124 11419 2241 26 0 0
systemd-udevd
[27125] 0 27125 11419 2242 26 0 0
systemd-udevd
[27126] 0 27126 11419 2242 26 0 0
systemd-udevd
[27127] 0 27127 11419 2242 26 0 0
systemd-udevd
[27128] 0 27128 11419 2242 26 0 0
systemd-udevd
[27129] 0 27129 11419 2242 26 0 0
systemd-udevd
[27130] 0 27130 11419 2242 26 0 0
systemd-udevd
[27131] 0 27131 11419 2242 26 0 0
systemd-udevd
[27132] 0 27132 11419 2243 26 0 0
systemd-udevd
[27133] 0 27133 11419 2243 26 0 0
systemd-udevd
[27134] 0 27134 11419 2243 26 0 0
systemd-udevd
[27135] 0 27135 11419 2243 26 0 0
systemd-udevd
[27136] 0 27136 11419 2243 26 0 0
systemd-udevd
[27137] 0 27137 11419 2243 26 0 0
systemd-udevd
[27138] 0 27138 11419 2243 26 0 0
systemd-udevd
[27139] 0 27139 11419 2244 26 0 0
systemd-udevd
[27140] 0 27140 11419 2244 26 0 0
systemd-udevd
[27141] 0 27141 11419 2244 26 0 0
systemd-udevd
[27142] 0 27142 11419 2244 26 0 0
systemd-udevd
[27143] 0 27143 11419 2244 26 0 0
systemd-udevd
[27144] 0 27144 11419 2244 26 0 0
systemd-udevd
[27145] 0 27145 11419 2244 26 0 0
systemd-udevd
[27146] 0 27146 11419 2245 26 0 0
systemd-udevd
[27147] 0 27147 11419 2245 26 0 0
systemd-udevd
[27148] 0 27148 11419 2245 26 0 0
systemd-udevd
[27149] 0 27149 11419 2245 26 0 0
systemd-udevd
[27150] 0 27150 11419 2245 26 0 0
systemd-udevd
[27151] 0 27151 11419 2245 26 0 0
systemd-udevd
[27152] 0 27152 11419 2246 26 0 0
systemd-udevd
[27153] 0 27153 11419 2246 26 0 0
systemd-udevd
[27154] 0 27154 11419 2246 26 0 0
systemd-udevd
[27155] 0 27155 11419 2246 26 0 0
systemd-udevd
[27156] 0 27156 11419 2246 26 0 0
systemd-udevd
[27157] 0 27157 11419 2246 26 0 0
systemd-udevd
[27158] 0 27158 11419 2246 26 0 0
systemd-udevd
[27159] 0 27159 11419 2247 26 0 0
systemd-udevd
[27160] 0 27160 11419 2247 26 0 0
systemd-udevd
[27161] 0 27161 11419 2247 26 0 0
systemd-udevd
[27162] 0 27162 11419 2247 26 0 0
systemd-udevd
[27163] 0 27163 11419 2247 26 0 0
systemd-udevd
[27164] 0 27164 11419 2247 26 0 0
systemd-udevd
[27165] 0 27165 11419 2247 26 0 0
systemd-udevd
[27166] 0 27166 11419 2248 26 0 0
systemd-udevd
[27167] 0 27167 11419 2248 26 0 0
systemd-udevd
[27168] 0 27168 11419 2248 26 0 0
systemd-udevd
[27169] 0 27169 11419 2248 26 0 0
systemd-udevd
[27170] 0 27170 11419 2248 26 0 0
systemd-udevd
[27171] 0 27171 11419 2248 26 0 0
systemd-udevd
[27172] 0 27172 11419 2248 26 0 0
systemd-udevd
[27173] 0 27173 11419 2249 26 0 0
systemd-udevd
[27174] 0 27174 11419 2249 26 0 0
systemd-udevd
[27175] 0 27175 11419 2249 26 0 0
systemd-udevd
[27176] 0 27176 11419 2249 26 0 0
systemd-udevd
[27177] 0 27177 11419 2249 26 0 0
systemd-udevd
[27178] 0 27178 11419 2249 26 0 0
systemd-udevd
[27179] 0 27179 11419 2250 26 0 0
systemd-udevd
[27180] 0 27180 11419 2250 26 0 0
systemd-udevd
[27181] 0 27181 11419 2250 26 0 0
systemd-udevd
[27182] 0 27182 11419 2250 26 0 0
systemd-udevd
[27183] 0 27183 11419 2250 26 0 0
systemd-udevd
[27184] 0 27184 11419 2250 26 0 0
systemd-udevd
[27185] 0 27185 11419 2250 26 0 0
systemd-udevd
[27186] 0 27186 11419 2251 26 0 0
systemd-udevd
[27187] 0 27187 11419 2251 26 0 0
systemd-udevd
[27188] 0 27188 11419 2251 26 0 0
systemd-udevd
[27189] 0 27189 11419 2251 26 0 0
systemd-udevd
[27190] 0 27190 11419 2251 26 0 0
systemd-udevd
[27191] 0 27191 11419 2251 26 0 0
systemd-udevd
[27192] 0 27192 11419 2251 26 0 0
systemd-udevd
[27193] 0 27193 11419 2252 26 0 0
systemd-udevd
[27194] 0 27194 11419 2252 26 0 0
systemd-udevd
[27195] 0 27195 11419 2252 26 0 0
systemd-udevd
[27196] 0 27196 11419 2252 26 0 0
systemd-udevd
[27197] 0 27197 11419 2252 26 0 0
systemd-udevd
[27198] 0 27198 11419 2252 26 0 0
systemd-udevd
[27199] 0 27199 11419 2253 26 0 0
systemd-udevd
[27200] 0 27200 11419 2253 26 0 0
systemd-udevd
[27201] 0 27201 11419 2253 26 0 0
systemd-udevd
[27202] 0 27202 11419 2253 26 0 0
systemd-udevd
[27203] 0 27203 11419 2253 26 0 0
systemd-udevd
[27204] 0 27204 11419 2253 26 0 0
systemd-udevd
[27205] 0 27205 11419 2253 26 0 0
systemd-udevd
[27206] 0 27206 11419 2254 26 0 0
systemd-udevd
[27207] 0 27207 11419 2254 26 0 0
systemd-udevd
[27208] 0 27208 11419 2254 26 0 0
systemd-udevd
[27209] 0 27209 11419 2254 26 0 0
systemd-udevd
[27210] 0 27210 11419 2254 26 0 0
systemd-udevd
[27211] 0 27211 11419 2254 26 0 0
systemd-udevd
[27212] 0 27212 11419 2254 26 0 0
systemd-udevd
[27213] 0 27213 11419 2255 26 0 0
systemd-udevd
[27214] 0 27214 11419 2255 26 0 0
systemd-udevd
[27215] 0 27215 11419 2255 26 0 0
systemd-udevd
[27216] 0 27216 11419 2255 26 0 0
systemd-udevd
[27217] 0 27217 11419 2255 26 0 0
systemd-udevd
[27218] 0 27218 11419 2255 26 0 0
systemd-udevd
[27219] 0 27219 11419 2255 26 0 0
systemd-udevd
[27220] 0 27220 11419 2256 26 0 0
systemd-udevd
[27221] 0 27221 11419 2256 26 0 0
systemd-udevd
[27222] 0 27222 11419 2256 26 0 0
systemd-udevd
[27223] 0 27223 11419 2256 26 0 0
systemd-udevd
[27224] 0 27224 11419 2256 26 0 0
systemd-udevd
[27225] 0 27225 11419 2256 26 0 0
systemd-udevd
[27226] 0 27226 11419 2257 26 0 0
systemd-udevd
[27227] 0 27227 11419 2257 26 0 0
systemd-udevd
[27228] 0 27228 11419 2257 26 0 0
systemd-udevd
[27229] 0 27229 11419 2257 26 0 0
systemd-udevd
[27230] 0 27230 11419 2257 26 0 0
systemd-udevd
[27231] 0 27231 11419 2257 26 0 0
systemd-udevd
[27232] 0 27232 11419 2257 26 0 0
systemd-udevd
[27233] 0 27233 11419 2258 26 0 0
systemd-udevd
[27234] 0 27234 11419 2258 26 0 0
systemd-udevd
[27235] 0 27235 11419 2258 26 0 0
systemd-udevd
[27236] 0 27236 11419 2258 26 0 0
systemd-udevd
[27237] 0 27237 11419 2258 26 0 0
systemd-udevd
[27238] 0 27238 11419 2258 26 0 0
systemd-udevd
[27239] 0 27239 11419 2258 26 0 0
systemd-udevd
[27240] 0 27240 11419 2259 26 0 0
systemd-udevd
[27241] 0 27241 11419 2259 26 0 0
systemd-udevd
[27242] 0 27242 11419 2259 26 0 0
systemd-udevd
[27243] 0 27243 11419 2259 26 0 0
systemd-udevd
[27244] 0 27244 11419 2259 26 0 0
systemd-udevd
[27245] 0 27245 11419 2259 26 0 0
systemd-udevd
[27246] 0 27246 11419 2259 26 0 0
systemd-udevd
[27247] 0 27247 11419 2260 26 0 0
systemd-udevd
[27248] 0 27248 11419 2260 26 0 0
systemd-udevd
[27249] 0 27249 11419 2260 26 0 0
systemd-udevd
[27250] 0 27250 11419 2260 26 0 0
systemd-udevd
[27251] 0 27251 11419 2260 26 0 0
systemd-udevd
[27252] 0 27252 11419 2260 26 0 0
systemd-udevd
[27254] 0 27254 11419 2261 26 0 0
systemd-udevd
[27255] 0 27255 11419 2261 26 0 0
systemd-udevd
[27256] 0 27256 11419 2261 26 0 0
systemd-udevd
[27257] 0 27257 11419 2261 26 0 0
systemd-udevd
[27258] 0 27258 11419 2261 26 0 0
systemd-udevd
[27259] 0 27259 11419 2261 26 0 0
systemd-udevd
[27260] 0 27260 11419 2261 26 0 0
systemd-udevd
[27261] 0 27261 11419 2262 26 0 0
systemd-udevd
[27262] 0 27262 11419 2262 26 0 0
systemd-udevd
[27263] 0 27263 11419 2262 26 0 0
systemd-udevd
[27264] 0 27264 11419 2262 26 0 0
systemd-udevd
[27265] 0 27265 11419 2262 26 0 0
systemd-udevd
[27266] 0 27266 11419 2262 26 0 0
systemd-udevd
[27267] 0 27267 11419 2262 26 0 0
systemd-udevd
[27268] 0 27268 11419 2263 26 0 0
systemd-udevd
[27269] 0 27269 11419 2263 26 0 0
systemd-udevd
[27270] 0 27270 11419 2263 26 0 0
systemd-udevd
[27271] 0 27271 11419 2263 26 0 0
systemd-udevd
[27272] 0 27272 11419 2263 26 0 0
systemd-udevd
[27273] 0 27273 11419 2263 26 0 0
systemd-udevd
[27274] 0 27274 11419 2263 26 0 0
systemd-udevd
[27275] 0 27275 11419 2264 26 0 0
systemd-udevd
[27276] 0 27276 11419 2264 26 0 0
systemd-udevd
[27277] 0 27277 11419 2264 26 0 0
systemd-udevd
[27278] 0 27278 11419 2264 26 0 0
systemd-udevd
[27279] 0 27279 11419 2264 26 0 0
systemd-udevd
[27280] 0 27280 11419 2264 26 0 0
systemd-udevd
[27281] 0 27281 11419 2265 26 0 0
systemd-udevd
[27282] 0 27282 11419 2265 26 0 0
systemd-udevd
[27283] 0 27283 11419 2265 26 0 0
systemd-udevd
[27284] 0 27284 11419 2265 26 0 0
systemd-udevd
[27285] 0 27285 11419 2265 26 0 0
systemd-udevd
[27286] 0 27286 11419 2265 26 0 0
systemd-udevd
[27287] 0 27287 11419 2265 26 0 0
systemd-udevd
[27288] 0 27288 11419 2266 26 0 0
systemd-udevd
[27289] 0 27289 11419 2266 26 0 0
systemd-udevd
[27290] 0 27290 11419 2266 26 0 0
systemd-udevd
[27291] 0 27291 11419 2266 26 0 0
systemd-udevd
[27292] 0 27292 11419 2266 26 0 0
systemd-udevd
[27293] 0 27293 11419 2266 26 0 0
systemd-udevd
[27294] 0 27294 11419 2266 26 0 0
systemd-udevd
[27295] 0 27295 11419 2267 26 0 0
systemd-udevd
[27296] 0 27296 11419 2267 26 0 0
systemd-udevd
[27297] 0 27297 11419 2267 26 0 0
systemd-udevd
[27298] 0 27298 11419 2267 26 0 0
systemd-udevd
[27299] 0 27299 11419 2267 26 0 0
systemd-udevd
[27300] 0 27300 11419 2267 26 0 0
systemd-udevd
[27301] 0 27301 11419 2267 26 0 0
systemd-udevd
[27302] 0 27302 11419 2268 26 0 0
systemd-udevd
[27303] 0 27303 11419 2268 26 0 0
systemd-udevd
[27304] 0 27304 11419 2268 26 0 0
systemd-udevd
[27305] 0 27305 11419 2268 26 0 0
systemd-udevd
[27306] 0 27306 11419 2268 26 0 0
systemd-udevd
[27307] 0 27307 11419 2268 26 0 0
systemd-udevd
[27308] 0 27308 11419 2269 26 0 0
systemd-udevd
[27309] 0 27309 11419 2269 26 0 0
systemd-udevd
[27310] 0 27310 11419 2269 26 0 0
systemd-udevd
[27311] 0 27311 11419 2269 26 0 0
systemd-udevd
[27312] 0 27312 11419 2269 26 0 0
systemd-udevd
[27313] 0 27313 11419 2269 26 0 0
systemd-udevd
[27314] 0 27314 11419 2269 26 0 0
systemd-udevd
[27315] 0 27315 11419 2270 26 0 0
systemd-udevd
[27316] 0 27316 11419 2270 26 0 0
systemd-udevd
[27317] 0 27317 11419 2270 26 0 0
systemd-udevd
[27318] 0 27318 11419 2270 26 0 0
systemd-udevd
[27319] 0 27319 11419 2270 26 0 0
systemd-udevd
[27320] 0 27320 11419 2270 26 0 0
systemd-udevd
[27321] 0 27321 11419 2270 26 0 0
systemd-udevd
[27322] 0 27322 11419 2271 26 0 0
systemd-udevd
[27323] 0 27323 11419 2271 26 0 0
systemd-udevd
[27324] 0 27324 11419 2271 26 0 0
systemd-udevd
[27325] 0 27325 11419 2271 26 0 0
systemd-udevd
[27326] 0 27326 11419 2271 26 0 0
systemd-udevd
[27327] 0 27327 11419 2271 26 0 0
systemd-udevd
[27328] 0 27328 11419 2272 26 0 0
systemd-udevd
[27329] 0 27329 11419 2272 26 0 0
systemd-udevd
[27330] 0 27330 11419 2272 26 0 0
systemd-udevd
[27331] 0 27331 11419 2272 26 0 0
systemd-udevd
[27332] 0 27332 11419 2272 26 0 0
systemd-udevd
[27333] 0 27333 11419 2272 26 0 0
systemd-udevd
[27334] 0 27334 11419 2272 26 0 0
systemd-udevd
[27335] 0 27335 11452 2273 26 0 0
systemd-udevd
[27336] 0 27336 11452 2273 26 0 0
systemd-udevd
[27337] 0 27337 11452 2273 26 0 0
systemd-udevd
[27338] 0 27338 11452 2273 26 0 0
systemd-udevd
[27339] 0 27339 11452 2273 26 0 0
systemd-udevd
[27340] 0 27340 11452 2273 26 0 0
systemd-udevd
[27341] 0 27341 11452 2273 26 0 0
systemd-udevd
[27342] 0 27342 11452 2274 26 0 0
systemd-udevd
[27343] 0 27343 11452 2274 26 0 0
systemd-udevd
[27344] 0 27344 11452 2274 26 0 0
systemd-udevd
[27345] 0 27345 11452 2274 26 0 0
systemd-udevd
[27346] 0 27346 11452 2274 26 0 0
systemd-udevd
[27347] 0 27347 11452 2274 26 0 0
systemd-udevd
[27348] 0 27348 11452 2274 26 0 0
systemd-udevd
[27349] 0 27349 11452 2275 26 0 0
systemd-udevd
[27350] 0 27350 11452 2275 26 0 0
systemd-udevd
[27351] 0 27351 11452 2275 26 0 0
systemd-udevd
[27352] 0 27352 11452 2275 26 0 0
systemd-udevd
[27353] 0 27353 11452 2273 26 0 0
systemd-udevd
[27354] 0 27354 11452 2275 26 0 0
systemd-udevd
[27355] 0 27355 11452 2276 26 0 0
systemd-udevd
[27356] 0 27356 11452 2274 26 0 0
systemd-udevd
[27357] 0 27357 11452 2274 26 0 -1000
systemd-udevd
[27358] 0 27358 11453 2282 26 0 -1000
systemd-udevd
[27359] 0 27359 11453 2282 26 0 -1000
systemd-udevd
[27360] 0 27360 11453 2275 26 0 -1000
systemd-udevd
[27361] 0 27361 11453 2282 26 0 -1000
systemd-udevd
[27362] 0 27362 11453 2283 26 0 -1000
systemd-udevd
[27363] 0 27363 11453 2283 26 0 -1000
systemd-udevd
[27364] 0 27364 11453 2283 26 0 -1000
systemd-udevd
[27365] 0 27365 11453 2276 26 0 -1000
systemd-udevd
[27366] 0 27366 11453 2283 26 0 -1000
systemd-udevd
Out of memory: Kill process 9613 (firefox) score 52 or sacrifice child
Killed process 9613 (firefox) total-vm:1578420kB, anon-rss:314072kB,
file-rss:228kB
XMPP::NetTracke invoked oom-killer: gfp_mask=0x201da, order=0,
oom_score_adj=0
XMPP::NetTracke cpuset=/ mems_allowed=0
Pid: 10557, comm: XMPP::NetTracke Not tainted
3.7.0-rc5-next-20121115_64+ #1697
Call Trace:
[<ffffffff810e7e71>] ? cpuset_print_task_mems_allowed+0x91/0xa0
[<ffffffff816a7b5b>] dump_header.isra.10+0x6b/0x1a7
[<ffffffff812fd066>] ? ___ratelimit+0x96/0x110
[<ffffffff8112485f>] oom_kill_process+0x1cf/0x320
[<ffffffff8108b1d7>] ? has_ns_capability_noaudit+0x17/0x20
[<ffffffff81124dc0>] out_of_memory+0x250/0x280
[<ffffffff811295d7>] __alloc_pages_nodemask+0x857/0x920
[<ffffffff8112365d>] filemap_fault+0x28d/0x440
[<ffffffff811444fa>] __do_fault+0x6a/0x460
[<ffffffff81147149>] handle_pte_fault+0x89/0x900
[<ffffffff810b0176>] ? ttwu_do_activate.constprop.88+0x66/0x70
[<ffffffff811482bb>] handle_mm_fault+0x26b/0x370
[<ffffffff81071e15>] __do_page_fault+0x145/0x480
[<ffffffff810c4fdc>] ? ktime_get_ts+0x4c/0x100
[<ffffffff81180132>] ? poll_select_set_timeout+0x72/0x90
[<ffffffff8107218e>] do_page_fault+0xe/0x10
[<ffffffff816b03f2>] page_fault+0x22/0x30
Mem-Info:
DMA per-cpu:
CPU 0: hi: 0, btch: 1 usd: 0
CPU 1: hi: 0, btch: 1 usd: 0
DMA32 per-cpu:
CPU 0: hi: 186, btch: 31 usd: 0
CPU 1: hi: 186, btch: 31 usd: 0
Normal per-cpu:
CPU 0: hi: 186, btch: 31 usd: 0
CPU 1: hi: 186, btch: 31 usd: 23
active_anon:1359088 inactive_anon:74743 isolated_anon:0
active_file:74 inactive_file:909 isolated_file:125
unevictable:0 dirty:0 writeback:0 unstable:0
free:23985 slab_reclaimable:4484 slab_unreclaimable:9967
mapped:13361 shmem:81578 pagetables:22923 bounce:0
free_cma:0
DMA free:15956kB min:176kB low:220kB high:264kB active_anon:0kB
inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB
isolated(anon):0kB isolated(file):0kB present:15956kB mlocked:0kB
dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:0kB
slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB
bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? yes
lowmem_reserve[]: 0 2711 5866 5866
DMA32 free:43736kB min:31152kB low:38940kB high:46728kB
active_anon:2665552kB inactive_anon:14280kB active_file:0kB
inactive_file:1684kB unevictable:0kB isolated(anon):0kB
isolated(file):0kB present:2776260kB mlocked:0kB dirty:0kB writeback:0kB
mapped:1036kB shmem:14532kB slab_reclaimable:1136kB
slab_unreclaimable:10812kB kernel_stack:2416kB pagetables:32168kB
unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB
pages_scanned:84031 all_unreclaimable? yes
lowmem_reserve[]: 0 0 3154 3154
Normal free:36248kB min:36252kB low:45312kB high:54376kB
active_anon:2770800kB inactive_anon:284692kB active_file:296kB
inactive_file:1952kB unevictable:0kB isolated(anon):0kB
isolated(file):500kB present:3230696kB mlocked:0kB dirty:0kB
writeback:0kB mapped:52408kB shmem:311780kB slab_reclaimable:16800kB
slab_unreclaimable:29056kB kernel_stack:5040kB pagetables:59524kB
unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB
pages_scanned:24064 all_unreclaimable? yes
lowmem_reserve[]: 0 0 0 0
DMA: 1*4kB (U) 2*8kB (U) 2*16kB (U) 1*32kB (U) 2*64kB (U) 1*128kB (U)
1*256kB (U) 0*512kB 1*1024kB (U) 1*2048kB (R) 3*4096kB (M) = 15956kB
DMA32: 42*4kB (UEM) 49*8kB (UEM) 46*16kB (UEM) 20*32kB (UE) 26*64kB
(UEM) 22*128kB (UE) 18*256kB (UEM) 40*512kB (UEM) 8*1024kB (U) 0*2048kB
1*4096kB (R) = 43792kB
Normal: 514*4kB (UEM) 341*8kB (UEM) 443*16kB (UEM) 313*32kB (UEM)
100*64kB (EM) 44*128kB (EM) 1*256kB (M) 0*512kB 0*1024kB 1*2048kB (R)
0*4096kB = 36224kB
82803 total pagecache pages
0 pages in swap cache
Swap cache stats: add 0, delete 0, find 0/0
Free swap = 0kB
Total swap = 0kB
1556479 pages RAM
49776 pages reserved
635828 pages shared
1393234 pages non-shared
regards,
--
js
suse labs
^ permalink raw reply
* Re: [PATCH v2 3/3] pppoatm: protect against freeing of vcc
From: David Woodhouse @ 2012-11-28 10:24 UTC (permalink / raw)
To: Krzysztof Mazur
Cc: David Laight, chas williams - CONTRACTOR, davem, netdev,
linux-kernel, nathan
In-Reply-To: <20121128100412.GA6269@shrek.podlesie.net>
[-- Attachment #1: Type: text/plain, Size: 774 bytes --]
On Wed, 2012-11-28 at 11:04 +0100, Krzysztof Mazur wrote:
>
> The ->close() routine can just abort any pending rx/tx and just wait
> for completion of currently running rx/tx code. That shouldn't take
> long.
If it's been submitted to the hardware for DMA, it can't do that very
easily.
And if I can't be bothered to write code to go through the entire damn
queue and inspect every packet to see if it's a data packet and check
the VCI/VPI and try to steal it, it can't be done for the software queue
either :)
The queue ought to be short; if it isn't, then we already screwed up.
The close therefore should be quick, and it *doesn't* have to be
instant.
If someone wants to return immediately, there's always
vcc_release_async()...
--
dwmw2
[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 6171 bytes --]
^ permalink raw reply
* Re: [PATCH v3 8/7] pppoatm: fix missing wakeup in pppoatm_send()
From: David Woodhouse @ 2012-11-28 10:19 UTC (permalink / raw)
To: Krzysztof Mazur; +Cc: chas williams - CONTRACTOR, netdev, linux-kernel, davem
In-Reply-To: <20121128095843.GA8974@shrek.podlesie.net>
[-- Attachment #1: Type: text/plain, Size: 2560 bytes --]
On Wed, 2012-11-28 at 10:58 +0100, Krzysztof Mazur wrote:
> ok, I think that we should just drop that patch, with test_bit()
> I think it's no longer an optimization.
After another cup of tea, it now uses test_and_clear_bit()... and
doesn't break the carefully crafted handling of the BLOCKED bit in the
normal flow control case, by setting it at the nospace: label!
From b2cf6a466697ecf19061cb11b8f4ec5bb381550a Mon Sep 17 00:00:00 2001
From: David Woodhouse <David.Woodhouse@intel.com>
Date: Wed, 28 Nov 2012 10:15:05 +0000
Subject: [PATCH] pppoatm: optimise PPP channel wakeups after sock_owned_by_user()
We don't need to schedule the wakeup tasklet on *every* unlock; only if we
actually blocked the channel in the first place.
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
---
net/atm/pppoatm.c | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/net/atm/pppoatm.c b/net/atm/pppoatm.c
index 446a7f0..172e44e 100644
--- a/net/atm/pppoatm.c
+++ b/net/atm/pppoatm.c
@@ -113,7 +113,17 @@ static void pppoatm_release_cb(struct atm_vcc *atmvcc)
{
struct pppoatm_vcc *pvcc = atmvcc_to_pvcc(atmvcc);
- tasklet_schedule(&pvcc->wakeup_tasklet);
+ /*
+ * As in pppoatm_pop(), it's safe to clear the BLOCKED bit here because
+ * the wakeup *can't* race with pppoatm_send(). They both hold the PPP
+ * channel's ->downl lock. And the potential race with *setting* it,
+ * which leads to the double-check dance in pppoatm_may_send(), doesn't
+ * exist here. In the sock_owned_by_user() case in pppoatm_send(), we
+ * set the BLOCKED bit while the socket is still locked. We know that
+ * ->release_cb() can't be called until that's done.
+ */
+ if (test_and_clear_bit(BLOCKED, &pvcc->blocked))
+ tasklet_schedule(&pvcc->wakeup_tasklet);
if (pvcc->old_release_cb)
pvcc->old_release_cb(atmvcc);
}
@@ -292,8 +302,15 @@ static int pppoatm_send(struct ppp_channel *chan, struct sk_buff *skb)
vcc = ATM_SKB(skb)->vcc;
bh_lock_sock(sk_atm(vcc));
- if (sock_owned_by_user(sk_atm(vcc)))
+ if (sock_owned_by_user(sk_atm(vcc))) {
+ /*
+ * Needs to happen (and be flushed, hence test_and_) before we unlock
+ * the socket. It needs to be seen by the time our ->release_cb gets
+ * called.
+ */
+ test_and_set_bit(BLOCKED, &pvcc->blocked);
goto nospace;
+ }
if (test_bit(ATM_VF_RELEASED, &vcc->flags)
|| test_bit(ATM_VF_CLOSE, &vcc->flags)
|| !test_bit(ATM_VF_READY, &vcc->flags)) {
--
1.8.0
--
dwmw2
[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 6171 bytes --]
^ permalink raw reply related
* Re: [PATCH 1/2] smsc75xx: refactor entering suspend modes
From: Steve Glendinning @ 2012-11-28 10:16 UTC (permalink / raw)
To: Bjørn Mork; +Cc: Alan Stern, netdev, linux-usb, David Miller
In-Reply-To: <874nka3wgx.fsf@nemi.mork.no>
Hi Bjorn,
On 28 November 2012 09:31, Bjørn Mork <bjorn@mork.no> wrote:
>
> Remote wakeup will not be enabled on system suspend unless the user (or
> a userspace program on the users behalf) has requested it.
If a user types "ethtool -s eth2 wol p" they *are* explicitly
requesting the ethernet device to bring the system out of suspend, so
I think the ethernet driver should set the feature automatically.
from drivers/base/power/wakeup.c:
* By default, most devices should leave wakeup disabled. The exceptions are
* devices that everyone expects to be wakeup sources: keyboards, power buttons,
* possibly network interfaces, etc.
Steve
^ permalink raw reply
* Re: [PATCH v6 2/6] PM / Runtime: introduce pm_runtime_set_memalloc_noio()
From: Rafael J. Wysocki @ 2012-11-28 10:15 UTC (permalink / raw)
To: Ming Lei
Cc: linux-pm, linux-kernel, Alan Stern, Oliver Neukum, Minchan Kim,
Greg Kroah-Hartman, Jens Axboe, David S. Miller, Andrew Morton,
netdev, linux-usb, linux-mm
In-Reply-To: <CACVXFVOk45wr8jv3w=KO7uTThGSTSkq0FRsPD6p_AyQZLWGQJg@mail.gmail.com>
On Wednesday, November 28, 2012 05:47:18 PM Ming Lei wrote:
> On Wed, Nov 28, 2012 at 5:29 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> >
> > But it doesn't have to walk the children. Moreover, with counters it only
>
> Yeah, I got it, it is the advantage of counter, but with extra 'int'
> field introduced
> in 'struct device'.
>
> > needs to walk the whole path if all devices in it need to be updated. For
> > example, if you call pm_runtime_set_memalloc_noio(dev, true) for a device
> > whose parent's counter is greater than zero already, you don't need to
> > walk the path above the parent.
>
> We still can do it with the flag only, pm_runtime_set_memalloc_noio(dev, true)
> can return immediately if one parent or the 'dev' flag is true.
>
> But considered that the pm_runtime_set_memalloc_noio(dev, false) is only
> called in a very infrequent path(network/block device->remove()), looks the
> introduced cost isn't worthy of the obtained advantage.
>
> So could you accept not introducing counter? and I will update with the
> above improvement you suggested.
Well, please see my other message I sent a while ago. :-)
Thanks,
Rafael
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply
* Re: [RFC PATCH] tcp: introduce raw access to experimental options
From: Einar Lueck @ 2012-11-28 10:12 UTC (permalink / raw)
To: David Miller; +Cc: netdev, frankbla, raspl, ubacher, samudrala
In-Reply-To: <50ACE496.20705@linux.vnet.ibm.com>
On 11/21/2012 03:26 PM, Einar Lueck wrote:
> On 11/16/2012 07:44 PM, David Miller wrote:
>>
>> Unprivileged access to set and fetch these things? I don't think
>> that's a good idea.
>>
>> Also, your code has a lot of coding style errors.
>>
>
> Would a restriction to a CAP_NET_ADMIN like privilege level address and
> resolve your concerns?
>
> Thx,
> Einar.
Would CAP_NET_ADMIN address your concerns? If would go ahead then and
work on a corresponding new version of the patch.
Thx,
Einar.
^ permalink raw reply
* Re: [PATCH v6 2/6] PM / Runtime: introduce pm_runtime_set_memalloc_noio()
From: Rafael J. Wysocki @ 2012-11-28 10:06 UTC (permalink / raw)
To: Ming Lei
Cc: linux-pm, linux-kernel, Alan Stern, Oliver Neukum, Minchan Kim,
Greg Kroah-Hartman, Jens Axboe, David S. Miller, Andrew Morton,
netdev, linux-usb, linux-mm
In-Reply-To: <CACVXFVP=3s3pawyEbogjb=PfbSeD1B+LFk7g04FAMkGuXDQUbQ@mail.gmail.com>
On Wednesday, November 28, 2012 11:57:19 AM Ming Lei wrote:
> On Wed, Nov 28, 2012 at 5:19 AM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > On Saturday, November 24, 2012 08:59:14 PM Ming Lei wrote:
> >> The patch introduces the flag of memalloc_noio in 'struct dev_pm_info'
> >> to help PM core to teach mm not allocating memory with GFP_KERNEL
> >> flag for avoiding probable deadlock.
> >>
> >> As explained in the comment, any GFP_KERNEL allocation inside
> >> runtime_resume() or runtime_suspend() on any one of device in
> >> the path from one block or network device to the root device
> >> in the device tree may cause deadlock, the introduced
> >> pm_runtime_set_memalloc_noio() sets or clears the flag on
> >> device in the path recursively.
> >>
> >> Cc: Alan Stern <stern@rowland.harvard.edu>
> >> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
> >> Signed-off-by: Ming Lei <ming.lei@canonical.com>
> >> ---
> >> v5:
> >> - fix code style error
> >> - add comment on clear the device memalloc_noio flag
> >> v4:
> >> - rename memalloc_noio_resume as memalloc_noio
> >> - remove pm_runtime_get_memalloc_noio()
> >> - add comments on pm_runtime_set_memalloc_noio
> >> v3:
> >> - introduce pm_runtime_get_memalloc_noio()
> >> - hold one global lock on pm_runtime_set_memalloc_noio
> >> - hold device power lock when accessing memalloc_noio_resume
> >> flag suggested by Alan Stern
> >> - implement pm_runtime_set_memalloc_noio without recursion
> >> suggested by Alan Stern
> >> v2:
> >> - introduce pm_runtime_set_memalloc_noio()
> >> ---
> >> drivers/base/power/runtime.c | 60 ++++++++++++++++++++++++++++++++++++++++++
> >> include/linux/pm.h | 1 +
> >> include/linux/pm_runtime.h | 3 +++
> >> 3 files changed, 64 insertions(+)
> >>
> >> diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
> >> index 3148b10..3e198a0 100644
> >> --- a/drivers/base/power/runtime.c
> >> +++ b/drivers/base/power/runtime.c
> >> @@ -124,6 +124,66 @@ unsigned long pm_runtime_autosuspend_expiration(struct device *dev)
> >> }
> >> EXPORT_SYMBOL_GPL(pm_runtime_autosuspend_expiration);
> >>
> >> +static int dev_memalloc_noio(struct device *dev, void *data)
> >> +{
> >> + return dev->power.memalloc_noio;
> >> +}
> >> +
> >> +/*
> >> + * pm_runtime_set_memalloc_noio - Set a device's memalloc_noio flag.
> >> + * @dev: Device to handle.
> >> + * @enable: True for setting the flag and False for clearing the flag.
> >> + *
> >> + * Set the flag for all devices in the path from the device to the
> >> + * root device in the device tree if @enable is true, otherwise clear
> >> + * the flag for devices in the path whose siblings don't set the flag.
> >> + *
> >
> > Please use counters instead of walking the whole path every time. Ie. in
> > addition to the flag add a counter to store the number of the device's
> > children having that flag set.
>
> Thanks for your review.
>
> IMO, pm_runtime_set_memalloc_noio() is only called in
> probe() and release() of block device and network device, which is
> in a very infrequent path, so I am wondering if it is worthy of introducing
> another counter for all devices.
Well, it may be unfrequent, but does it mean it has to do things that may
be avoided (ie. walking the children of every node in the path in some cases)?
I don't really think that the counters would cost us that much anyway.
> Also looks the current implementation of pm_runtime_set_memalloc_noio()
> is simple and clean enough with the flag, IMO.
I know you always know better. :-)
> > I would use the flag only to store the information that
> > pm_runtime_set_memalloc_noio(dev, true) has been run for this device directly
> > and I'd use a counter for everything else.
> >
> > That is, have power.memalloc_count that would be incremented when (1)
> > pm_runtime_set_memalloc_noio(dev, true) is called for that device and (2) when
> > power.memalloc_count for one of its children changes from 0 to 1 (and
> > analogously for decrementation). Then, check the counter in rpm_callback().
>
> Sorry, could you explain in a bit detail why we need the counter? Looks only
> checking the flag in rpm_callback() is enough, doesn't it?
Why would I want to use power.memalloc_count in addition to the
power.memalloc_noio flag?
Consider this:
pm_runtime_set_memalloc_noio(dev):
return if power.memalloc_noio is set
set power.memalloc_noio
loop:
increment power.memalloc_count
if power.memalloc_count is 1 now switch to parent and go to loop
pm_runtime_clear_memalloc_noio(dev):
return if power.memalloc_noio is unset
unset power.memalloc_noio
loop:
decrement power.memalloc_count
if power.memalloc_count is 0 now switch to parent and go to loop
Looks kind of simpler, doesn't it?
And why rpm_callback() should check power.memalloc_count instead of the count?
Because power.memalloc_noio will only be set for devices that
pm_runtime_set_memalloc_noio(dev) was called for directly (not necessarily for
the parents).
And that works even if someone calls any of them twice in a row for the same
device (presumably by mistake) and doesn't have to make any assumptions
about devices it is called for.
> > Besides, don't you need to check children for the arg device itself?
>
> It isn't needed since the children of network/block device can't be
> involved of the deadlock in runtime PM path.
>
> Also, the function is only called by network device or block device
> subsystem, both the two kind of device are class device and should
> have no children.
OK, so not walking the arg device's children is an optimization related to
some assumptions regarding who's supposed to use this routine. That should
be clearly documented.
However, I'd prefer it not to make such assumptions in the first place.
> >> + * The function should only be called by block device, or network
> >> + * device driver for solving the deadlock problem during runtime
> >> + * resume/suspend:
> >> + *
> >> + * If memory allocation with GFP_KERNEL is called inside runtime
> >> + * resume/suspend callback of any one of its ancestors(or the
> >> + * block device itself), the deadlock may be triggered inside the
> >> + * memory allocation since it might not complete until the block
> >> + * device becomes active and the involed page I/O finishes. The
> >> + * situation is pointed out first by Alan Stern. Network device
> >> + * are involved in iSCSI kind of situation.
> >> + *
> >> + * The lock of dev_hotplug_mutex is held in the function for handling
> >> + * hotplug race because pm_runtime_set_memalloc_noio() may be called
> >> + * in async probe().
> >> + *
> >> + * The function should be called between device_add() and device_del()
> >> + * on the affected device(block/network device).
> >> + */
> >> +void pm_runtime_set_memalloc_noio(struct device *dev, bool enable)
> >> +{
> >> + static DEFINE_MUTEX(dev_hotplug_mutex);
> >
> > What's the mutex for?
>
> It is for avoiding hotplug race, for example, without the mutex,
> another child may set the flag between the time device_for_each_child()
> runs and the next loop iteration in pm_runtime_set_memalloc_noio(false).
OK
Thanks,
Rafael
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply
* Re: [PATCH v2 3/3] pppoatm: protect against freeing of vcc
From: Krzysztof Mazur @ 2012-11-28 10:04 UTC (permalink / raw)
To: David Laight
Cc: chas williams - CONTRACTOR, David Woodhouse, davem, netdev,
linux-kernel, nathan
In-Reply-To: <AE90C24D6B3A694183C094C60CF0A2F6026B70C9@saturn3.aculab.com>
On Wed, Nov 28, 2012 at 09:21:37AM -0000, David Laight wrote:
> > On Tue, 27 Nov 2012 18:02:29 +0000
> > David Woodhouse <dwmw2@infradead.org> wrote:
> >
> > > In solos-pci at least, the ops->close() function doesn't flush all
> > > pending skbs for this vcc before returning. So can be a tasklet
> > > somewhere which has loaded the address of the vcc->pop function from one
> > > of them, and is going to call it in some unspecified amount of time.
> > >
> > > Should we make the device's ->close function wait for all TX and RX skbs
> > > for this vcc to complete?
> >
> > the driver's close routine should wait for any of the pending tx and rx
> > to complete. take a look at the he.c in driver/atm
>
> I'm not sure that sleeping for long periods in close() is always a
> good idea. If the process is event driven it will be unable to
> handle events on other fd until the close completes.
> This may be known not to be true in this case, but is more generally
> a problem.
> In this case the close should probably (IMHO at least) only sleep
> while pending tx and rx are aborted/discarded.
>
> Even when it might make sense to sleep in close until tx drains
> there needs to be a finite timeout before it become abortive.
>
The ->close() routine can just abort any pending rx/tx and just wait
for completion of currently running rx/tx code. That shouldn't take
long.
Krzysiek
^ permalink raw reply
* Re: [PATCH] br2684: don't send frames on not-ready vcc
From: David Woodhouse @ 2012-11-28 9:58 UTC (permalink / raw)
To: Krzysztof Mazur
Cc: chas williams - CONTRACTOR, davem, netdev, linux-kernel, nathan
In-Reply-To: <20121128080804.GA23175@shrek.podlesie.net>
[-- Attachment #1: Type: text/plain, Size: 624 bytes --]
On Wed, 2012-11-28 at 09:08 +0100, Krzysztof Mazur wrote:
>
> I think you might need also an equivalent of
> "[PATCH v3 3/7] pppoatm: allow assign only on a connected socket".
>
> I'm not sure yet. In will test if I can trigger that Oops on pppoatm
> without that patch. Testing vcc flags might be sufficient - that's
> what I did in the first patch, but you asked what about SOCK_CONNECTED,
> and I think it was really needed.
Even if the READY check avoids the oops, I think the patch makes sense.
Especially as it makes things consistent with pppoatm. I've applied it
to the tree. Thanks.
--
dwmw2
[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 6171 bytes --]
^ permalink raw reply
* Re: [PATCH v3 8/7] pppoatm: fix missing wakeup in pppoatm_send()
From: Krzysztof Mazur @ 2012-11-28 9:58 UTC (permalink / raw)
To: David Woodhouse; +Cc: chas williams - CONTRACTOR, netdev, linux-kernel, davem
In-Reply-To: <1354094649.21562.34.camel@shinybook.infradead.org>
On Wed, Nov 28, 2012 at 09:24:09AM +0000, David Woodhouse wrote:
> On Wed, 2012-11-28 at 09:12 +0100, Krzysztof Mazur wrote:
> > On Wed, Nov 28, 2012 at 12:48:17AM +0000, David Woodhouse wrote:
> > > On Tue, 2012-11-27 at 10:23 -0500, chas williams - CONTRACTOR wrote:
> > > > yes, but dont call it 8/7 since that doesnt make sense.
> > >
> > > It made enough sense when it was a single patch appended to a thread of
> > > 7 other patches from Krzysztof. But now it's all got a little more
> > > complex, so I've tried to collect together the latest version of
> > > everything we've discussed:
> >
> > There was also discussion about patch 9/7 "pppoatm: wakeup after ATM
> > unlock only when it's needed".
>
> True. Is that really necessary? How often is the lock actually taken? Is
> it once per packet that PPP sends (which is mostly just LCP
> echo/response during an active connection)? And does that really warrant
> the optimisation?
>
> This is a tasklet that we used to run after absolutely *every* packet,
> remember. Optimising *that* made sense, but I'm less sure it's worth the
> added complexity for this case. As I have a vague recollection that we
> decided we couldn't use the existing BLOCKED bit for it... or can we?
>
> Can this work? Feel free to replace that test_bit() and the
> corresponding comment, with a test_and_clear_bit() and a new comment
> explaining *why* it's safe... while I go make another cup of tea.
>
ok, I think that we should just drop that patch, with test_bit()
I think it's no longer an optimization.
Krzysiek
^ permalink raw reply
* [PATCH] bonding: rlb mode of bond should not alter ARP originating via bridge
From: Zheng Li @ 2012-11-28 9:57 UTC (permalink / raw)
To: netdev, fubar, andy; +Cc: linux-kernel, davem, joe.jin, zheng.x.li
Do not modify or load balance ARP packets passing through balance-alb
mode (wherein the ARP did not originate locally, and arrived via a bridge).
Modifying pass-through ARP replies causes an incorrect MAC address
to be placed into the ARP packet, rendering peers unable to communicate
with the actual destination from which the ARP reply originated.
Load balancing pass-through ARP requests causes an entry to be
created for the peer in the rlb table, and bond_alb_monitor will
occasionally issue ARP updates to all peers in the table instrucing them
as to which MAC address they should communicate with; this occurs when
some event sets rx_ntt. In the bridged case, however, the MAC address
used for the update would be the MAC of the slave, not the actual source
MAC of the originating destination. This would render peers unable to
communicate with the destinations beyond the bridge.
Signed-off-by: Zheng Li <zheng.x.li@oracle.com>
Cc: Jay Vosburgh <fubar@us.ibm.com>
Cc: Andy Gospodarek <andy@greyhouse.net>
Cc: "David S. Miller" <davem@davemloft.net>
---
drivers/net/bonding/bond_alb.c | 6 ++++++
drivers/net/bonding/bonding.h | 13 +++++++++++++
2 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
index e15cc11..6fecb52 100644
--- a/drivers/net/bonding/bond_alb.c
+++ b/drivers/net/bonding/bond_alb.c
@@ -694,6 +694,12 @@ static struct slave *rlb_arp_xmit(struct sk_buff *skb, struct bonding *bond)
struct arp_pkt *arp = arp_pkt(skb);
struct slave *tx_slave = NULL;
+ /* Don't modify or load balance ARPs that do not originate locally
+ * (e.g.,arrive via a bridge).
+ */
+ if (!bond_slave_has_mac(bond, arp->mac_src))
+ return NULL;
+
if (arp->op_code == htons(ARPOP_REPLY)) {
/* the arp must be sent on the selected
* rx channel
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h
index f8af2fc..6dded56 100644
--- a/drivers/net/bonding/bonding.h
+++ b/drivers/net/bonding/bonding.h
@@ -22,6 +22,7 @@
#include <linux/in6.h>
#include <linux/netpoll.h>
#include <linux/inetdevice.h>
+#include <linux/etherdevice.h>
#include "bond_3ad.h"
#include "bond_alb.h"
@@ -450,6 +451,18 @@ static inline void bond_destroy_proc_dir(struct bond_net *bn)
}
#endif
+static inline struct slave *bond_slave_has_mac(struct bonding *bond,
+ const u8 *mac)
+{
+ int i = 0;
+ struct slave *tmp;
+
+ bond_for_each_slave(bond, tmp, i)
+ if (ether_addr_equal_64bits(mac, tmp->dev->dev_addr))
+ return tmp;
+
+ return NULL;
+}
/* exported from bond_main.c */
extern int bond_net_id;
--
1.7.6.5
^ permalink raw reply related
* Re: [PATCH v6 2/6] PM / Runtime: introduce pm_runtime_set_memalloc_noio()
From: Ming Lei @ 2012-11-28 9:47 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: linux-pm, linux-kernel, Alan Stern, Oliver Neukum, Minchan Kim,
Greg Kroah-Hartman, Jens Axboe, David S. Miller, Andrew Morton,
netdev, linux-usb, linux-mm
In-Reply-To: <1408044.6czCGhbHJH@vostro.rjw.lan>
On Wed, Nov 28, 2012 at 5:29 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>
> But it doesn't have to walk the children. Moreover, with counters it only
Yeah, I got it, it is the advantage of counter, but with extra 'int'
field introduced
in 'struct device'.
> needs to walk the whole path if all devices in it need to be updated. For
> example, if you call pm_runtime_set_memalloc_noio(dev, true) for a device
> whose parent's counter is greater than zero already, you don't need to
> walk the path above the parent.
We still can do it with the flag only, pm_runtime_set_memalloc_noio(dev, true)
can return immediately if one parent or the 'dev' flag is true.
But considered that the pm_runtime_set_memalloc_noio(dev, false) is only
called in a very infrequent path(network/block device->remove()), looks the
introduced cost isn't worthy of the obtained advantage.
So could you accept not introducing counter? and I will update with the
above improvement you suggested.
Thanks,
--
Ming Lei
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply
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