diff options
Diffstat (limited to 'drivers/rmnet/shs/rmnet_shs.h')
-rw-r--r-- | drivers/rmnet/shs/rmnet_shs.h | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/drivers/rmnet/shs/rmnet_shs.h b/drivers/rmnet/shs/rmnet_shs.h index 3632b3c..f6ce09e 100644 --- a/drivers/rmnet/shs/rmnet_shs.h +++ b/drivers/rmnet/shs/rmnet_shs.h @@ -19,6 +19,8 @@ #ifndef _RMNET_SHS_H_ #define _RMNET_SHS_H_ +#include "rmnet_shs_freq.h" + #include <../drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h> #include <../drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h> #include <../drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h> @@ -32,6 +34,7 @@ #define RMNET_SHS_MAX_SKB_INACTIVE_TSEC 30 #define MAX_SILVER_CORES 4 #define MAX_CPUS 8 +#define PERF_MASK 0xF0 /* RPS mask change's Default core for orphaned CPU flows */ #define MAIN_CORE 0 @@ -51,14 +54,14 @@ //#define RMNET_SHS_UDP_PPS_SILVER_CORE_UPPER_THRESH 90000 //#define RMNET_SHS_TCP_PPS_SILVER_CORE_UPPER_THRESH 90000 -#define SHS_TRACE_ERR(...) if (rmnet_shs_debug) \ - trace_rmnet_shs_err(__VA_ARGS__) +#define SHS_TRACE_ERR(...) \ + do { if (rmnet_shs_debug) trace_rmnet_shs_err(__VA_ARGS__); } while (0) -#define SHS_TRACE_HIGH(...) if (rmnet_shs_debug) \ - trace_rmnet_shs_high(__VA_ARGS__) +#define SHS_TRACE_HIGH(...) \ + do { if (rmnet_shs_debug) trace_rmnet_shs_high(__VA_ARGS__); } while (0) -#define SHS_TRACE_LOW(...) if (rmnet_shs_debug) \ - trace_rmnet_shs_low(__VA_ARGS__) +#define SHS_TRACE_LOW(...) \ + do { if (rmnet_shs_debug) trace_rmnet_shs_low(__VA_ARGS__); } while (0) #define RMNET_SHS_MAX_SILVER_CORE_BURST_CAPACITY 204800 @@ -74,6 +77,9 @@ #define RMNET_SHS_UDP_PPS_PERF_CPU_LTHRESH 40000 #define RMNET_SHS_TCP_PPS_PERF_CPU_LTHRESH (40000*RMNET_SHS_TCP_COALESCING_RATIO) +#define RMNET_SHS_UDP_PPS_HEADROOM 20000 +#define RMNET_SHS_GOLD_BALANCING_THRESH (RMNET_SHS_UDP_PPS_PERF_CPU_UTHRESH / 2) + struct core_flush_s { struct hrtimer core_timer; struct work_struct work; @@ -89,8 +95,8 @@ struct rmnet_shs_cfg_s { struct rmnet_port *port; struct core_flush_s core_flush[MAX_CPUS]; u64 core_skbs[MAX_CPUS]; - long int num_bytes_parked; - long int num_pkts_parked; + long num_bytes_parked; + long num_pkts_parked; u32 is_reg_dl_mrk_ind; u16 num_flows; u8 is_pkt_parked; @@ -298,6 +304,10 @@ int rmnet_shs_get_mask_len(u8 mask); int rmnet_shs_chk_and_flush_node(struct rmnet_shs_skbn_s *node, u8 force_flush, u8 ctxt); +void rmnet_shs_dl_hdr_handler_v2(struct rmnet_map_dl_ind_hdr *dlhdr, + struct rmnet_map_control_command_header *qcmd); +void rmnet_shs_dl_trl_handler_v2(struct rmnet_map_dl_ind_trl *dltrl, + struct rmnet_map_control_command_header *qcmd); void rmnet_shs_dl_hdr_handler(struct rmnet_map_dl_ind_hdr *dlhdr); void rmnet_shs_dl_trl_handler(struct rmnet_map_dl_ind_trl *dltrl); void rmnet_shs_assign(struct sk_buff *skb, struct rmnet_port *port); |