From: Ansuel Smith <ansuelsmth@gmail.com>
To: Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: netdev@vger.kernel.org, "David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>, Andrew Lunn <andrew@lunn.ch>,
Vivien Didelot <vivien.didelot@gmail.com>,
Florian Fainelli <f.fainelli@gmail.com>
Subject: Re: [RFC PATCH net-next 0/7] DSA master state tracking
Date: Thu, 9 Dec 2021 04:05:59 +0100 [thread overview]
Message-ID: <61b17299.1c69fb81.8ef9.8daa@mx.google.com> (raw)
In-Reply-To: <20211208223230.3324822-1-vladimir.oltean@nxp.com>
On Thu, Dec 09, 2021 at 12:32:23AM +0200, Vladimir Oltean wrote:
> This patch set is provided solely for review purposes (therefore not to
> be applied anywhere) and for Ansuel to test whether they resolve the
> slowdown reported here:
> https://patchwork.kernel.org/project/netdevbpf/cover/20211207145942.7444-1-ansuelsmth@gmail.com/
>
> It does conflict with net-next due to other patches that are in my tree,
> and which were also posted here and would need to be picked ("Rework DSA
> bridge TX forwarding offload API"):
> https://patchwork.kernel.org/project/netdevbpf/cover/20211206165758.1553882-1-vladimir.oltean@nxp.com/
>
> Additionally, for Ansuel's work there is also a logical dependency with
> this series ("Replace DSA dp->priv with tagger-owned storage"):
> https://patchwork.kernel.org/project/netdevbpf/cover/20211208200504.3136642-1-vladimir.oltean@nxp.com/
>
> To get both dependency series, the following commands should be sufficient:
> git b4 20211206165758.1553882-1-vladimir.oltean@nxp.com
> git b4 20211208200504.3136642-1-vladimir.oltean@nxp.com
>
> where "git b4" is an alias in ~/.gitconfig:
> [b4]
> midmask = https://lore.kernel.org/r/%s
> [alias]
> b4 = "!f() { b4 am -t -o - $@ | git am -3; }; f"
>
> The patches posted here are mainly to offer a consistent
> "master_up"/"master_going_down" chain of events to switches, without
> duplicates, and always starting with "master_up" and ending with
> "master_going_down". This way, drivers should know when they can perform
> Ethernet-based register access.
>
> Vladimir Oltean (7):
> net: dsa: only bring down user ports assigned to a given DSA master
> net: dsa: refactor the NETDEV_GOING_DOWN master tracking into separate
> function
> net: dsa: use dsa_tree_for_each_user_port in
> dsa_tree_master_going_down()
> net: dsa: provide switch operations for tracking the master state
> net: dsa: stop updating master MTU from master.c
> net: dsa: hold rtnl_mutex when calling dsa_master_{setup,teardown}
> net: dsa: replay master state events in
> dsa_tree_{setup,teardown}_master
>
> include/net/dsa.h | 8 +++++++
> net/dsa/dsa2.c | 52 ++++++++++++++++++++++++++++++++++++++++++++--
> net/dsa/dsa_priv.h | 11 ++++++++++
> net/dsa/master.c | 29 +++-----------------------
> net/dsa/slave.c | 32 +++++++++++++++-------------
> net/dsa/switch.c | 29 ++++++++++++++++++++++++++
> 6 files changed, 118 insertions(+), 43 deletions(-)
>
> --
> 2.25.1
>
I applied this patch and it does work correctly. Sadly the problem is
not solved and still the packet are not tracked correctly. What I notice
is that everything starts to work as soon as the master is set to
promiiscuous mode. Wonder if we should track that event instead of
simple up?
Here is a bootlog [0]. I added some log when the function timeouts and when
master up is actually called.
Current implementation for this is just a bool that is set to true on
master up and false on master going down. (final version should use
locking to check if an Ethernet transation is in progress)
[0] https://pastebin.com/7w2kgG7a
--
Ansuel
next prev parent reply other threads:[~2021-12-09 3:06 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-08 22:32 [RFC PATCH net-next 0/7] DSA master state tracking Vladimir Oltean
2021-12-08 22:32 ` [RFC PATCH net-next 1/7] net: dsa: only bring down user ports assigned to a given DSA master Vladimir Oltean
2021-12-08 22:32 ` [RFC PATCH net-next 2/7] net: dsa: refactor the NETDEV_GOING_DOWN master tracking into separate function Vladimir Oltean
2021-12-08 22:32 ` [RFC PATCH net-next 3/7] net: dsa: use dsa_tree_for_each_user_port in dsa_tree_master_going_down() Vladimir Oltean
2021-12-08 22:32 ` [RFC PATCH net-next 4/7] net: dsa: provide switch operations for tracking the master state Vladimir Oltean
2021-12-08 22:32 ` [RFC PATCH net-next 5/7] net: dsa: stop updating master MTU from master.c Vladimir Oltean
2021-12-08 22:32 ` [RFC PATCH net-next 6/7] net: dsa: hold rtnl_mutex when calling dsa_master_{setup,teardown} Vladimir Oltean
2021-12-08 22:32 ` [RFC PATCH net-next 7/7] net: dsa: replay master state events in dsa_tree_{setup,teardown}_master Vladimir Oltean
2021-12-09 3:05 ` Ansuel Smith [this message]
2021-12-09 14:28 ` [RFC PATCH net-next 0/7] DSA master state tracking Vladimir Oltean
2021-12-09 14:44 ` Ansuel Smith
2021-12-09 17:33 ` Vladimir Oltean
2021-12-09 17:44 ` Ansuel Smith
2021-12-09 17:56 ` Vladimir Oltean
2021-12-09 18:16 ` Ansuel Smith
2021-12-09 17:57 ` Vladimir Oltean
2021-12-09 18:34 ` Ansuel Smith
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=61b17299.1c69fb81.8ef9.8daa@mx.google.com \
--to=ansuelsmth@gmail.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=vivien.didelot@gmail.com \
--cc=vladimir.oltean@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.