chelsio/chtls: Utilizing multiple rxq/txq to process requests
patch adds a logic to utilize multiple queues to process requests. The queue selection logic uses a round-robin distribution technique using a counter. Signed-off-by: Ayush Sawal <ayush.sawal@chelsio.com> Signed-off-by: Vinay Kumar Yadav <vinay.yadav@chelsio.com> Link: https://lore.kernel.org/r/20201102162832.22344-1-vinay.yadav@chelsio.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
873b807c98
commit
a74e44a111
|
@ -235,6 +235,7 @@ struct chtls_dev {
|
|||
struct list_head na_node;
|
||||
unsigned int send_page_order;
|
||||
int max_host_sndbuf;
|
||||
u32 round_robin_cnt;
|
||||
struct key_map kmap;
|
||||
unsigned int cdev_state;
|
||||
};
|
||||
|
|
|
@ -1217,8 +1217,9 @@ static struct sock *chtls_recv_sock(struct sock *lsk,
|
|||
csk->sndbuf = csk->snd_win;
|
||||
csk->ulp_mode = ULP_MODE_TLS;
|
||||
step = cdev->lldi->nrxq / cdev->lldi->nchan;
|
||||
csk->rss_qid = cdev->lldi->rxq_ids[port_id * step];
|
||||
rxq_idx = port_id * step;
|
||||
rxq_idx += cdev->round_robin_cnt++ % step;
|
||||
csk->rss_qid = cdev->lldi->rxq_ids[rxq_idx];
|
||||
csk->txq_idx = (rxq_idx < cdev->lldi->ntxq) ? rxq_idx :
|
||||
port_id * step;
|
||||
csk->sndbuf = newsk->sk_sndbuf;
|
||||
|
|
Loading…
Reference in New Issue