Message ID | 20180828112845.10805-1-koen.vandeputte@ncentric.com |
---|---|
State | Accepted |
Delegated to: | John Crispin |
Headers | show |
Series | [OpenWrt-Devel] mediatek: remove duplicate RPS patch | expand |
On 28/08/18 13:28, Koen Vandeputte wrote: > 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") thanks, i forgot about that :-) John > Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> > --- > .../0048-net-core-add-RPS-balancer.patch | 90 ------------------- > 1 file changed, 90 deletions(-) > delete mode 100644 target/linux/mediatek/patches-4.14/0048-net-core-add-RPS-balancer.patch > > 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 6cb5fa74955b..000000000000 > --- 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
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 6cb5fa74955b..000000000000 --- 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
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> --- .../0048-net-core-add-RPS-balancer.patch | 90 ------------------- 1 file changed, 90 deletions(-) delete mode 100644 target/linux/mediatek/patches-4.14/0048-net-core-add-RPS-balancer.patch