History

net: mvpp2: use round-robin scheduling for TX queues on the same CPU

This commit allows each TXQ to be picked in a round-robin fashion by the PPv2 transmit scheduling mechanism. This is opposed to the default behaviour that prioritizes the highest numbered queues.

Maxime Chevallier committed 8 years ago

Commit 4251ea51 parent 0d283ab2 files · +4 −0Browse files

Unified · Split

2 files
  1. drivers/net/ethernet/marvell/mvpp2/mvpp2.h +1 −0
  2. drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +3 −0
drivers/net/ethernet/marvell/mvpp2/mvpp2.h+1−0
@@ -331,6 +331,7 @@ · 330 unmodified lines
331#define MVPP2_TXP_SCHED_ENQ_MASK 0xff331#define MVPP2_TXP_SCHED_ENQ_MASK 0xff
332#define MVPP2_TXP_SCHED_DISQ_OFFSET 8332#define MVPP2_TXP_SCHED_DISQ_OFFSET 8
333#define MVPP2_TXP_SCHED_CMD_1_REG 0x8010333#define MVPP2_TXP_SCHED_CMD_1_REG 0x8010
334#define MVPP2_TXP_SCHED_FIXED_PRIO_REG 0x8014
334#define MVPP2_TXP_SCHED_PERIOD_REG 0x8018335#define MVPP2_TXP_SCHED_PERIOD_REG 0x8018
335#define MVPP2_TXP_SCHED_MTU_REG 0x801c336#define MVPP2_TXP_SCHED_MTU_REG 0x801c
336#define MVPP2_TXP_MTU_MAX 0x7FFFF337#define MVPP2_TXP_MTU_MAX 0x7FFFF
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c+3−0
@@ -1448,6 +1448,9 @@ static void mvpp2_defaults_set(struct mvpp2_port *port) · 1447 unmodified lines
1448 tx_port_num);1448 tx_port_num);
1449 mvpp2_write(port->priv, MVPP2_TXP_SCHED_CMD_1_REG, 0);1449 mvpp2_write(port->priv, MVPP2_TXP_SCHED_CMD_1_REG, 0);
1450 1450
1451 /* Set TXQ scheduling to Round-Robin */
1452 mvpp2_write(port->priv, MVPP2_TXP_SCHED_FIXED_PRIO_REG, 0);
1453
1451 /* Close bandwidth for all queues */1454 /* Close bandwidth for all queues */
1452 for (queue = 0; queue < MVPP2_MAX_TXQ; queue++) {1455 for (queue = 0; queue < MVPP2_MAX_TXQ; queue++) {
1453 ptxq = mvpp2_txq_phys(port->id, queue);1456 ptxq = mvpp2_txq_phys(port->id, queue);