Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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;
+2 −1
Original line number Diff line number Diff line
@@ -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;