Message ID | 20210212151220.84106-2-maxime.chevallier@bootlin.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: mvneta: Implement basic MQPrio support | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | warning | 1 maintainers not CCed: kuba@kernel.org |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 2 this patch: 2 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 21 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 2 this patch: 2 |
netdev/header_inline | success | Link |
netdev/stable | success | Stable not CCed |
> According to Errata #23 "The per-CPU GbE interrupt is limited to Core > 0", we can't use the per-cpu interrupt mechanism on the Armada 3700 > familly. > > This is correctly checked for RSS configuration, but the initial queue > mapping is still done by having the queues spread across all the CPUs in > the system, both in the init path and in the cpu_hotplug path. Hello Maxime! This patch looks like a bug fix for Armada 3700 SoC. What about marking this commit with Fixes line? E.g.: Fixes: 2636ac3cc2b4 ("net: mvneta: Add network support for Armada 3700 SoC")
Hi Pali, On Mon, 15 Feb 2021 00:50:58 +0100 Pali Rohár <pali@kernel.org> wrote: >> According to Errata #23 "The per-CPU GbE interrupt is limited to Core >> 0", we can't use the per-cpu interrupt mechanism on the Armada 3700 >> familly. >> >> This is correctly checked for RSS configuration, but the initial queue >> mapping is still done by having the queues spread across all the CPUs in >> the system, both in the init path and in the cpu_hotplug path. > >Hello Maxime! > >This patch looks like a bug fix for Armada 3700 SoC. What about marking >this commit with Fixes line? E.g.: > > Fixes: 2636ac3cc2b4 ("net: mvneta: Add network support for Armada 3700 SoC") Yes you're correct, I'll add that to the V2 ! Thanks for the review, Maxime
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index 6290bfb6494e..8e410fafff8d 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c @@ -3428,7 +3428,9 @@ static int mvneta_txq_sw_init(struct mvneta_port *pp, return -ENOMEM; /* Setup XPS mapping */ - if (txq_number > 1) + if (pp->neta_armada3700) + cpu = 0; + else if (txq_number > 1) cpu = txq->id % num_present_cpus(); else cpu = pp->rxq_def % num_present_cpus(); @@ -4206,6 +4208,11 @@ static int mvneta_cpu_online(unsigned int cpu, struct hlist_node *node) node_online); struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu); + /* Armada 3700's per-cpu interrupt for mvneta is broken, all interrupts + * are routed to CPU 0, so we don't need all the cpu-hotplug support + */ + if (pp->neta_armada3700) + return 0; spin_lock(&pp->lock); /*
According to Errata #23 "The per-CPU GbE interrupt is limited to Core 0", we can't use the per-cpu interrupt mechanism on the Armada 3700 familly. This is correctly checked for RSS configuration, but the initial queue mapping is still done by having the queues spread across all the CPUs in the system, both in the init path and in the cpu_hotplug path. Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com> --- drivers/net/ethernet/marvell/mvneta.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)