mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 02:52:56 +00:00
nvme-tcp: Set SO_PRIORITY for all host sockets
Enable ability to associate all sockets related to NVMf TCP traffic to a priority group that will perform optimized network processing for this traffic class. Maintain initial default behavior of using priority of zero. Signed-off-by: Kiran Patil <kiran.patil@intel.com> Signed-off-by: Mark Wunderlich <mark.wunderlich@intel.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Keith Busch <kbusch@kernel.org>
This commit is contained in:
parent
d3a9b0cadf
commit
9912ade355
@ -20,6 +20,16 @@
|
||||
|
||||
struct nvme_tcp_queue;
|
||||
|
||||
/* Define the socket priority to use for connections were it is desirable
|
||||
* that the NIC consider performing optimized packet processing or filtering.
|
||||
* A non-zero value being sufficient to indicate general consideration of any
|
||||
* possible optimization. Making it a module param allows for alternative
|
||||
* values that may be unique for some NIC implementations.
|
||||
*/
|
||||
static int so_priority;
|
||||
module_param(so_priority, int, 0644);
|
||||
MODULE_PARM_DESC(so_priority, "nvme tcp socket optimize priority");
|
||||
|
||||
enum nvme_tcp_send_state {
|
||||
NVME_TCP_SEND_CMD_PDU = 0,
|
||||
NVME_TCP_SEND_H2C_PDU,
|
||||
@ -1309,6 +1319,17 @@ static int nvme_tcp_alloc_queue(struct nvme_ctrl *nctrl,
|
||||
goto err_sock;
|
||||
}
|
||||
|
||||
if (so_priority > 0) {
|
||||
ret = kernel_setsockopt(queue->sock, SOL_SOCKET, SO_PRIORITY,
|
||||
(char *)&so_priority, sizeof(so_priority));
|
||||
if (ret) {
|
||||
dev_err(ctrl->ctrl.device,
|
||||
"failed to set SO_PRIORITY sock opt, ret %d\n",
|
||||
ret);
|
||||
goto err_sock;
|
||||
}
|
||||
}
|
||||
|
||||
/* Set socket type of service */
|
||||
if (nctrl->opts->tos >= 0) {
|
||||
opt = nctrl->opts->tos;
|
||||
|
Loading…
Reference in New Issue
Block a user