On 01/09/2017 12:48 PM, Ido Schimmel wrote: > Hi Florian, > > On Mon, Jan 09, 2017 at 11:44:59AM -0800, Florian Fainelli wrote: >> Hi all, >> >> This patch series is to resolve a sleeping function called in atomic context >> debug splat that we observe with DSA. >> >> Let me know what you think, I was also wondering if we should just always >> make switchdev_port_vlan_fill() set SWITCHDEV_F_DEFER, but was afraid this >> could cause invalid contexts to be used for rocker, mlxsw, i40e etc. > > Isn't this a bit of overkill? All the drivers you mention fill the VLAN > dump from their cache and don't require sleeping. Even b53 that you > mention in the last patch does that, but reads the PVID from the device, > which entails taking a mutex.
Correct. > > Can't you just cache the PVID as well? I think this will solve your > problem. Didn't look too much into the b53 code, so maybe I'm missing > something. Seems that mv88e6xxx has a similar problem. I suppose we could indeed cache the PVID for b53, but for mv88e6xxx it seems like we need to perform a bunch of VTU operations, and those access HW registers, Andrew, Vivien, how do you want to solve that, do we want to introduce a general VLAN cache somewhere in switchdev/DSA/driver? Thanks Ido! -- Florian