On Tue, 7 Jul 2020 09:10:38 -0700 Shannon Nelson wrote:
> On 7/6/20 10:33 AM, Jakub Kicinski wrote:
> > On Thu, 2 Jul 2020 16:39:17 -0700 Shannon Nelson wrote:
> >> The queue reset pattern is used in a couple different places,
> >> only slightly different from each other, and could cause
> >> issues if one gets changed and the other didn't. This puts
> >> them together so that only one version is needed, yet each
> >> can have slighty different effects by passing in a pointer
> >> to a work function to do whatever configuration twiddling is
> >> needed in the middle of the reset.
> >>
> >> Fixes: 4d03e00a2140 ("ionic: Add initial ethtool support")
> >> Signed-off-by: Shannon Nelson <[email protected]>
> > Is this fixing anything?
>
> Yes, this fixes issues seen similar to what was fixed with b59eabd23ee5
> ("ionic: tame the watchdog timer on reconfig") where under loops of
> changing parameters we could occasionally bump into the netdev watchdog.
User-visible bug should always be part of the commit message for a fix,
please amend.
> > I think the pattern of having a separate structure describing all the
> > parameters and passing that into reconfig is a better path forward,
> > because it's easier to take that forward in the correct direction of
> > allocating new resources before old ones are freed. IOW not doing a
> > full close/open.
> >
> > E.g. nfp_net_set_ring_size().
>
> This has been suggested before and looks great when you know you've got
> the resources for dual allocations. In our case this code is also used
> inside our device where memory is tight: we are much more likely to have
> allocation issues if we try to allocate everything without first
> releasing what we already have.
Are you saying that inside the device the memory allocated for the
rings is close to the amount of max free memory? I find that hard to
believe.
> I agree there is room for evolution, and we have patches coming that
> change some of how we allocate our memory, but we're not quite ready to
> rewrite what we have, or to split the two driver cases yet.