diff options
author | Koen Vandeputte <koen.vandeputte@ncentric.com> | 2018-08-28 13:28:45 +0200 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2018-08-28 14:57:15 +0200 |
commit | 23366b6dc6bb81c9c0e0bd7c91832a5bf0e5dbc2 (patch) | |
tree | cc44c674c72338e89f1df91c6e05f5f499270752 | |
parent | a9d73531921ef4755e2cbd6e9e7e36c59b00655c (diff) | |
download | upstream-23366b6dc6bb81c9c0e0bd7c91832a5bf0e5dbc2.tar.gz upstream-23366b6dc6bb81c9c0e0bd7c91832a5bf0e5dbc2.tar.bz2 upstream-23366b6dc6bb81c9c0e0bd7c91832a5bf0e5dbc2.zip |
mediatek: remove duplicate RPS patch
Commit 7af1fb9faafb ("kernel: add a RPS balancer") introduces a RPS balancer
for all targets.
In the past however, this patch was already introduced for target "mediatek"
in commit 7762c07c8898 ("mediatek: bump to v4.14")
Remove the separate copy of the patch within the mediatek target,
which otherwise is applied twice and results in a build error.
Fixes: 7af1fb9faafb ("kernel: add a RPS balancer")
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
-rw-r--r-- | target/linux/mediatek/patches-4.14/0048-net-core-add-RPS-balancer.patch | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/target/linux/mediatek/patches-4.14/0048-net-core-add-RPS-balancer.patch b/target/linux/mediatek/patches-4.14/0048-net-core-add-RPS-balancer.patch deleted file mode 100644 index 6cb5fa7495..0000000000 --- a/target/linux/mediatek/patches-4.14/0048-net-core-add-RPS-balancer.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 3e969c9695b45e1a052d43b367096ec99f2f0aac Mon Sep 17 00:00:00 2001 -From: John Crispin <john@phrozen.org> -Date: Thu, 10 Aug 2017 15:58:29 +0200 -Subject: [PATCH 48/57] net: core: add RPS balancer - -Signed-off-by: John Crispin <john@phrozen.org> ---- - net/core/dev.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 56 insertions(+), 1 deletion(-) - ---- a/net/core/dev.c -+++ b/net/core/dev.c -@@ -3636,6 +3636,58 @@ set_rps_cpu(struct net_device *dev, stru - return rflow; - } - -+#define RPS_TBL_SIZE_SHIFT 10 -+#define RPS_TBL_SIZE (1 << RPS_TBL_SIZE_SHIFT) -+struct rps_table { -+ int core; -+ struct timer_list expire; -+}; -+static struct rps_table rps_table[RPS_TBL_SIZE]; -+static int rps_table_last_core; -+ -+static void rps_table_expire(unsigned long data) -+{ -+ struct rps_table *entry = (struct rps_table *) data; -+ -+ entry->core = -1; -+} -+ -+static int rps_table_core(struct rps_map *map) -+{ -+ int i; -+ -+ for (i = 0; i < map->len; i++) { -+ int cpu = map->cpus[(rps_table_last_core + i + 1) % map->len]; -+ if (cpu_online(cpu)) { -+ rps_table_last_core = cpu; -+ return cpu; -+ } -+ } -+ return map->cpus[0]; -+} -+ -+static int rps_table_lookup(struct rps_map *map, u32 hash) -+{ -+ int bucket = hash & 0x3ff; -+ -+ if (rps_table[bucket].core < 0) -+ rps_table[bucket].core = rps_table_core(map); -+ mod_timer(&rps_table[bucket].expire, jiffies + HZ); -+ -+ return rps_table[bucket].core; -+} -+ -+static void rps_table_init(void) -+{ -+ int i; -+ -+ for (i = 0; i < RPS_TBL_SIZE; i++) { -+ rps_table[i].core = -1; -+ setup_timer(&rps_table[i].expire, rps_table_expire, -+ (unsigned long) &rps_table[i]); -+ } -+} -+ - /* - * get_rps_cpu is called from netif_receive_skb and returns the target - * CPU from the RPS map of the receiving queue for a given skb. -@@ -3725,7 +3777,7 @@ static int get_rps_cpu(struct net_device - try_rps: - - if (map) { -- tcpu = map->cpus[reciprocal_scale(hash, map->len)]; -+ tcpu = rps_table_lookup(map, hash); - if (cpu_online(tcpu)) { - cpu = tcpu; - goto done; -@@ -8810,6 +8862,9 @@ static int __init net_dev_init(void) - sd->backlog.weight = weight_p; - } - -+ if (IS_ENABLED(CONFIG_RPS)) -+ rps_table_init(); -+ - dev_boot_phase = 0; - - /* The loopback device is special if any other network devices |