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

Commit edd1d98e authored by Conner Huff's avatar Conner Huff Committed by Gerrit - the friendly Code Review server
Browse files

drivers: rmnet: perf: Automatic flush after chain



For newer targets which employ dl marker v2 logic,
we are able to blindly flush at the end of skb
chains since the chains are up to 20x times
longer than past targets. To differentiate
between targets we check to see if dl marker
v2 is in use during flush decisions at the
end of a chain.

Change-Id: I0a8f4745dd6dfba5ce5585010d7e5cae3cf4f486
Signed-off-by: default avatarConner Huff <chuff@codeaurora.org>
parent f72d8da6
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ MODULE_PARM_DESC(rmnet_perf_core_num_skbs_max, "Num skbs max held from HW");
/* Toggle to flush all coalesced packets when physical device is out of
 * packets
 */
unsigned long int rmnet_perf_core_bm_flush_on = 0;
unsigned long int rmnet_perf_core_bm_flush_on = 1;
module_param(rmnet_perf_core_bm_flush_on, ulong, 0644);
MODULE_PARM_DESC(rmnet_perf_core_bm_flush_on, "turn on bm flushing");

@@ -455,7 +455,7 @@ void rmnet_perf_core_ps_on(void *port)
/* DL marker on, we can try to coalesce more packets */
void rmnet_perf_core_ps_off(void *port)
{
	rmnet_perf_core_bm_flush_on = 0;
	rmnet_perf_core_bm_flush_on = 1;
}

void
@@ -912,7 +912,8 @@ void rmnet_perf_core_deaggregate(struct sk_buff *skb,
	/* if we ran out of data and should have gotten an end marker,
	 * then we can flush everything
	 */
	if (!rmnet_perf_core_bm_flush_on ||
	if (port->data_format == RMNET_INGRESS_FORMAT_DL_MARKER_V2 ||
	    !rmnet_perf_core_bm_flush_on ||
	    (int) perf->core_meta->bm_state->expect_packets <= 0) {
		rmnet_perf_opt_flush_all_flow_nodes();
		rmnet_perf_core_free_held_skbs();