diff options
author | Intiyaz Basha | 2018-03-28 04:25:18 +0200 |
---|---|---|
committer | David S. Miller | 2018-03-29 20:13:49 +0200 |
commit | 697fefc7c1531f75ecd9623a4a4cbd47fab32ca8 (patch) | |
tree | cc466aa9d9bfd043d81752e886bcd2fea31647bf /drivers/net/ethernet/cavium/liquidio/request_manager.c | |
parent | Merge branch 'net-Allow-FIB-notifiers-to-fail-add-and-replace' (diff) | |
download | kernel-qcow2-linux-697fefc7c1531f75ecd9623a4a4cbd47fab32ca8.tar.gz kernel-qcow2-linux-697fefc7c1531f75ecd9623a4a4cbd47fab32ca8.tar.xz kernel-qcow2-linux-697fefc7c1531f75ecd9623a4a4cbd47fab32ca8.zip |
liquidio: Prioritize control messages
During heavy tx traffic, control messages (sent by liquidio driver to NIC
firmware) sometimes do not get processed in a timely manner. Reason is:
the low-level metadata of control messages and that of egress network
packets indicate that they have the same priority.
Fix it by setting a higher priority for control messages through the new
ctrl_qpg field in the oct_txpciq struct. It is the NIC firmware that does
the actual setting of priority by writing to the new ctrl_qpg field; the
host driver treats that value as opaque and just assigns it to pki_ih3->qpg
Signed-off-by: Intiyaz Basha <intiyaz.basha@cavium.com>
Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/cavium/liquidio/request_manager.c')
-rw-r--r-- | drivers/net/ethernet/cavium/liquidio/request_manager.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/cavium/liquidio/request_manager.c b/drivers/net/ethernet/cavium/liquidio/request_manager.c index 2766af05b89e..b1270355b0b1 100644 --- a/drivers/net/ethernet/cavium/liquidio/request_manager.c +++ b/drivers/net/ethernet/cavium/liquidio/request_manager.c @@ -628,7 +628,8 @@ octeon_prepare_soft_command(struct octeon_device *oct, pki_ih3->tag = LIO_CONTROL; pki_ih3->tagtype = ATOMIC_TAG; pki_ih3->qpg = - oct->instr_queue[sc->iq_no]->txpciq.s.qpg; + oct->instr_queue[sc->iq_no]->txpciq.s.ctrl_qpg; + pki_ih3->pm = 0x7; pki_ih3->sl = 8; |