SPRACT8 September 2020 66AK2H06 , 66AK2H12 , 66AK2H14
The idea of interrupt coalescing is experimented on the PC side in Section 4.4.2. This can also be achieved by letting the ACK packets accumulated to certain levels for one-time processing, in case that PC is unable to throttle the ACK packet generation.
This feature is supported by the K2H and explained in the (KeyStone Architecture Multicore Navigator User's Guide) under field Interrupt Pacing Mode with 4 options:
The interrupt pacing mode works with another parameter timerLoadCount, which counts down a global timer ticks to delay interrupt. The pacing mode is configured in the setup_rx_queue() of driver code nimu_eth.c:
accCfg.timerLoadCount = 0;
accCfg.interruptPacingMode = Qmss_AccPacingMode_LAST_INTERRUPT;
After some trials with different settings and cross-checking with Processor SDK Linux K2H usage in:
The NIMU driver code is updated with the following:
accCfg.timerLoadCount = 2; /* 50us/ACC_DEFAULT_PERIOD(25us by firmware) = 2 */
accCfg.interruptPacingMode = Qmss_AccPacingMode_FIRST_NEW_PACKET;