Commit 697fefc7 authored by Intiyaz Basha's avatar Intiyaz Basha Committed by David S. Miller

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: default avatarIntiyaz Basha <intiyaz.basha@cavium.com>
Signed-off-by: default avatarFelix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b349e0b5
......@@ -712,9 +712,13 @@ union oct_txpciq {
u64 pkind:6;
u64 use_qpg:1;
u64 qpg:11;
u64 reserved:30;
u64 reserved0:10;
u64 ctrl_qpg:11;
u64 reserved:9;
#else
u64 reserved:30;
u64 reserved:9;
u64 ctrl_qpg:11;
u64 reserved0:10;
u64 qpg:11;
u64 use_qpg:1;
u64 pkind:6;
......
......@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment