On Tue, Jun 5, 2018 at 4:38 AM, Amritha Nambiar
<[email protected]> wrote:
> This patch adds support to pick Tx queue based on the Rx queue(s) map
> configuration set by the admin through the sysfs attribute
> for each Tx queue. If the user configuration for receive queue(s) map
> does not apply, then the Tx queue selection falls back to CPU(s) map
> based selection and finally to hashing.
>
> Signed-off-by: Amritha Nambiar <[email protected]>
> Signed-off-by: Sridhar Samudrala <[email protected]>
> ---

>  int sysctl_tcp_max_orphans __read_mostly = NR_FILE;
>
> @@ -5574,6 +5575,7 @@ void tcp_finish_connect(struct sock *sk, struct sk_buff 
> *skb)
>         if (skb) {
>                 icsk->icsk_af_ops->sk_rx_dst_set(sk, skb);
>                 security_inet_conn_established(sk, skb);
> +               sk_mark_napi_id(sk, skb);
>         }

This and the call below should be in a standalone patch, as the mark
changes are not rxq-xps specific. Is the additional earlier marking really
required?

I would separate out the entire rxq caching with sk_rx_queue_mapping from
the refactoring of get_xps_queue. The two changes are quite independent.

>         tcp_init_transfer(sk, BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB);
> @@ -6402,6 +6404,7 @@ int tcp_conn_request(struct request_sock_ops *rsk_ops,
>         tcp_rsk(req)->snt_isn = isn;
>         tcp_rsk(req)->txhash = net_tx_rndhash();
>         tcp_openreq_init_rwin(req, sk, dst);
> +       sk_mark_rx_queue(req_to_sk(req), skb);

Reply via email to