aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dim/net_dim.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dim/net_dim.c')
-rw-r--r--lib/dim/net_dim.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/dim/net_dim.c b/lib/dim/net_dim.c
index 5bcc902c5388..a4db51c21266 100644
--- a/lib/dim/net_dim.c
+++ b/lib/dim/net_dim.c
@@ -5,6 +5,62 @@
5 5
6#include <linux/dim.h> 6#include <linux/dim.h>
7 7
8/*
9 * Net DIM profiles:
10 * There are different set of profiles for each CQ period mode.
11 * There are different set of profiles for RX/TX CQs.
12 * Each profile size must be of NET_DIM_PARAMS_NUM_PROFILES
13 */
14#define NET_DIM_PARAMS_NUM_PROFILES 5
15#define NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE 256
16#define NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE 128
17#define NET_DIM_DEF_PROFILE_CQE 1
18#define NET_DIM_DEF_PROFILE_EQE 1
19
20#define NET_DIM_RX_EQE_PROFILES { \
21 {1, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \
22 {8, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \
23 {64, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \
24 {128, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \
25 {256, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \
26}
27
28#define NET_DIM_RX_CQE_PROFILES { \
29 {2, 256}, \
30 {8, 128}, \
31 {16, 64}, \
32 {32, 64}, \
33 {64, 64} \
34}
35
36#define NET_DIM_TX_EQE_PROFILES { \
37 {1, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \
38 {8, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \
39 {32, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \
40 {64, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \
41 {128, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE} \
42}
43
44#define NET_DIM_TX_CQE_PROFILES { \
45 {5, 128}, \
46 {8, 64}, \
47 {16, 32}, \
48 {32, 32}, \
49 {64, 32} \
50}
51
52static const struct dim_cq_moder
53rx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = {
54 NET_DIM_RX_EQE_PROFILES,
55 NET_DIM_RX_CQE_PROFILES,
56};
57
58static const struct dim_cq_moder
59tx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = {
60 NET_DIM_TX_EQE_PROFILES,
61 NET_DIM_TX_CQE_PROFILES,
62};
63
8struct dim_cq_moder 64struct dim_cq_moder
9net_dim_get_rx_moderation(u8 cq_period_mode, int ix) 65net_dim_get_rx_moderation(u8 cq_period_mode, int ix)
10{ 66{