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>
This commit is contained in:
parent
b349e0b5ec
commit
697fefc7c1
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue