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

Commit c03d67b6 authored by Subash Abhinov Kasiviswanathan's avatar Subash Abhinov Kasiviswanathan Committed by Gerrit - the friendly Code Review server
Browse files

Revert "drivers: net: rmnet: task boost"



This reverts commit 7402a858.
Requirement changed to not do task boost directly from kernel.

Change-Id: I7b87734899219cac89b5b25a61d6a708da81da32
Acked-by: default avatarWeiyi Chen <weiyic@qti.qualcomm.com>
Signed-off-by: default avatarSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>
parent 8d9cbae5
Loading
Loading
Loading
Loading
+4 −17
Original line number Original line Diff line number Diff line
@@ -39,9 +39,6 @@


/* Local Definitions and Declarations */
/* Local Definitions and Declarations */


#define RMNET_SCHED_BOOST_THRESH  (500000000)
bool rmnet_sched_boost;

enum {
enum {
	IFLA_RMNET_DFC_QOS = __IFLA_RMNET_MAX,
	IFLA_RMNET_DFC_QOS = __IFLA_RMNET_MAX,
	IFLA_RMNET_UL_AGG_PARAMS,
	IFLA_RMNET_UL_AGG_PARAMS,
@@ -609,7 +606,7 @@ void rmnet_init_qmi_pt(void *port, void *qmi)
}
}
EXPORT_SYMBOL(rmnet_init_qmi_pt);
EXPORT_SYMBOL(rmnet_init_qmi_pt);


void rmnet_get_stats(void *port, u64 *rx, u64 *tx)
void rmnet_get_packets(void *port, u64 *rx, u64 *tx)
{
{
	struct rmnet_priv *priv;
	struct rmnet_priv *priv;
	struct rmnet_pcpu_stats *ps;
	struct rmnet_pcpu_stats *ps;
@@ -630,14 +627,14 @@ void rmnet_get_stats(void *port, u64 *rx, u64 *tx)
			ps = per_cpu_ptr(priv->pcpu_stats, cpu);
			ps = per_cpu_ptr(priv->pcpu_stats, cpu);
			do {
			do {
				start = u64_stats_fetch_begin_irq(&ps->syncp);
				start = u64_stats_fetch_begin_irq(&ps->syncp);
				*tx += ps->stats.tx_bytes;
				*tx += ps->stats.tx_pkts;
				*rx += ps->stats.rx_bytes;
				*rx += ps->stats.rx_pkts;
			} while (u64_stats_fetch_retry_irq(&ps->syncp, start));
			} while (u64_stats_fetch_retry_irq(&ps->syncp, start));
		}
		}
	}
	}
	rcu_read_unlock();
	rcu_read_unlock();
}
}
EXPORT_SYMBOL(rmnet_get_stats);
EXPORT_SYMBOL(rmnet_get_packets);


void  rmnet_set_powersave_format(void *port)
void  rmnet_set_powersave_format(void *port)
{
{
@@ -705,16 +702,6 @@ int rmnet_get_powersave_notif(void *port)
EXPORT_SYMBOL(rmnet_get_powersave_notif);
EXPORT_SYMBOL(rmnet_get_powersave_notif);
#endif
#endif


/* Set data rates (in bits/s) */
void rmnet_set_data_rates(void *port, u64 rx_rate, u64 tx_rate)
{
	if (((struct rmnet_port *)port)->data_format & RMNET_FORMAT_TASK_BOOST)
		WRITE_ONCE(rmnet_sched_boost,
			   (tx_rate >= RMNET_SCHED_BOOST_THRESH) ?
				true : false);
}
EXPORT_SYMBOL(rmnet_set_data_rates);

/* Startup/Shutdown */
/* Startup/Shutdown */


static int __init rmnet_init(void)
static int __init rmnet_init(void)
+0 −2
Original line number Original line Diff line number Diff line
@@ -14,8 +14,6 @@
#define RMNET_MAX_LOGICAL_EP 255
#define RMNET_MAX_LOGICAL_EP 255
#define RMNET_MAX_VEID 4
#define RMNET_MAX_VEID 4


extern bool rmnet_sched_boost;

struct rmnet_endpoint {
struct rmnet_endpoint {
	u8 mux_id;
	u8 mux_id;
	struct net_device *egress_dev;
	struct net_device *egress_dev;
+0 −3
Original line number Original line Diff line number Diff line
@@ -22,9 +22,6 @@ RMNET_INGRESS_FORMAT_DL_MARKER_V2)
#define RMNET_INGRESS_FORMAT_PS                 BIT(27)
#define RMNET_INGRESS_FORMAT_PS                 BIT(27)
#define RMNET_FORMAT_PS_NOTIF                   BIT(26)
#define RMNET_FORMAT_PS_NOTIF                   BIT(26)


/* Task boost */
#define RMNET_FORMAT_TASK_BOOST                 BIT(25)

/* Replace skb->dev to a virtual rmnet device and pass up the stack */
/* Replace skb->dev to a virtual rmnet device and pass up the stack */
#define RMNET_EPMODE_VND (1)
#define RMNET_EPMODE_VND (1)
/* Pass the frame directly to another device with dev_queue_xmit() */
/* Pass the frame directly to another device with dev_queue_xmit() */
+0 −7
Original line number Original line Diff line number Diff line
@@ -8,7 +8,6 @@
#include <linux/etherdevice.h>
#include <linux/etherdevice.h>
#include <linux/if_arp.h>
#include <linux/if_arp.h>
#include <linux/ip.h>
#include <linux/ip.h>
#include <linux/sched.h>
#include <net/pkt_sched.h>
#include <net/pkt_sched.h>
#include "rmnet_config.h"
#include "rmnet_config.h"
#include "rmnet_handlers.h"
#include "rmnet_handlers.h"
@@ -20,9 +19,6 @@
#include <soc/qcom/qmi_rmnet.h>
#include <soc/qcom/qmi_rmnet.h>
#include <soc/qcom/rmnet_qmi.h>
#include <soc/qcom/rmnet_qmi.h>


/* Task boost time in ms */
#define RMNET_TASK_BOOST_PERIOD 10000

/* RX/TX Fixup */
/* RX/TX Fixup */


void rmnet_vnd_rx_fixup(struct net_device *dev, u32 skb_len)
void rmnet_vnd_rx_fixup(struct net_device *dev, u32 skb_len)
@@ -165,9 +161,6 @@ static u16 rmnet_vnd_select_queue(struct net_device *dev,
	struct rmnet_priv *priv = netdev_priv(dev);
	struct rmnet_priv *priv = netdev_priv(dev);
	int txq = 0;
	int txq = 0;


	if (READ_ONCE(rmnet_sched_boost))
		set_task_boost(1, RMNET_TASK_BOOST_PERIOD);

	if (priv->real_dev)
	if (priv->real_dev)
		txq = qmi_rmnet_get_queue(dev, skb);
		txq = qmi_rmnet_get_queue(dev, skb);


+10 −18
Original line number Original line Diff line number Diff line
@@ -787,8 +787,8 @@ static LIST_HEAD(ps_list);
struct rmnet_powersave_work {
struct rmnet_powersave_work {
	struct delayed_work work;
	struct delayed_work work;
	void *port;
	void *port;
	u64 old_rx_bytes;
	u64 old_rx_pkts;
	u64 old_tx_bytes;
	u64 old_tx_pkts;
};
};


void qmi_rmnet_ps_on_notify(void *port)
void qmi_rmnet_ps_on_notify(void *port)
@@ -874,9 +874,8 @@ static void qmi_rmnet_check_stats(struct work_struct *work)
{
{
	struct rmnet_powersave_work *real_work;
	struct rmnet_powersave_work *real_work;
	struct qmi_info *qmi;
	struct qmi_info *qmi;
	s64 rxd, txd;
	u64 rxd, txd;
	u64 rx, tx;
	u64 rx, tx;
	u64 rx_rate, tx_rate;
	bool dl_msg_active;
	bool dl_msg_active;


	real_work = container_of(to_delayed_work(work),
	real_work = container_of(to_delayed_work(work),
@@ -909,18 +908,11 @@ static void qmi_rmnet_check_stats(struct work_struct *work)
		goto end;
		goto end;
	}
	}


	rmnet_get_stats(real_work->port, &rx, &tx);
	rmnet_get_packets(real_work->port, &rx, &tx);
	rxd = rx - real_work->old_rx_bytes;
	rxd = rx - real_work->old_rx_pkts;
	txd = tx - real_work->old_tx_bytes;
	txd = tx - real_work->old_tx_pkts;
	real_work->old_rx_bytes = rx;
	real_work->old_rx_pkts = rx;
	real_work->old_tx_bytes = tx;
	real_work->old_tx_pkts = tx;

	if (rxd >= 0 && txd >= 0) {
		/* data rates in bits/s */
		rx_rate = (rxd * HZ / PS_INTERVAL) << 3;
		tx_rate = (txd * HZ / PS_INTERVAL) << 3;
		rmnet_set_data_rates(real_work->port, rx_rate, tx_rate);
	}


	dl_msg_active = qmi->dl_msg_active;
	dl_msg_active = qmi->dl_msg_active;
	qmi->dl_msg_active = false;
	qmi->dl_msg_active = false;
@@ -990,8 +982,8 @@ void qmi_rmnet_work_init(void *port)
	}
	}
	INIT_DEFERRABLE_WORK(&rmnet_work->work, qmi_rmnet_check_stats);
	INIT_DEFERRABLE_WORK(&rmnet_work->work, qmi_rmnet_check_stats);
	rmnet_work->port = port;
	rmnet_work->port = port;
	rmnet_get_stats(rmnet_work->port, &rmnet_work->old_rx_bytes,
	rmnet_get_packets(rmnet_work->port, &rmnet_work->old_rx_pkts,
			&rmnet_work->old_tx_bytes);
			  &rmnet_work->old_tx_pkts);


	rmnet_work_quit = false;
	rmnet_work_quit = false;
	qmi_rmnet_work_set_active(rmnet_work->port, 1);
	qmi_rmnet_work_set_active(rmnet_work->port, 1);
Loading