Re: [PATCH rdma-rc 2/2] RDMA/core: Initialize lock when allocate a rdma_hw_stats structure
From: Leon Romanovsky
Date: Tue Oct 26 2021 - 08:21:47 EST
On Tue, Oct 26, 2021 at 09:05:54AM -0300, Jason Gunthorpe wrote:
> On Tue, Oct 26, 2021 at 11:27:57AM +0300, Leon Romanovsky wrote:
> > On Mon, Oct 25, 2021 at 11:50:43AM -0300, Jason Gunthorpe wrote:
> > > On Sun, Oct 24, 2021 at 09:08:21AM +0300, Leon Romanovsky wrote:
> > > > From: Mark Zhang <markzhang@xxxxxxxxxx>
> > > >
> > > > Initialize the rdma_hw_stats "lock" field when do allocation, to fix the
> > > > warning below. Then we don't need to initialize it in sysfs, remove it.
> > >
> > > This is a fine cleanup, but this does not describe the bug properly,
> > > or have the right fixes line..
> >
> > I think that this Fixes line should be instead.
> > Fixes: 0a0800ce2a6a ("RDMA/core: Add a helper API rdma_free_hw_stats_struct")
>
> No, I don't think so, it should be the commit that added
> alloc_and_bind()
The alloc_and_bind() is a merge between other functions. The issue existed
even before. It is worth to stop at some point to dig and IMHO proposed Fixes
line is good enough (at least for me).
>
> > > The issue is here:
> > >
> > > static struct rdma_counter *alloc_and_bind(struct ib_device *dev, u32 port,
> > > struct ib_qp *qp,
> > > enum rdma_nl_counter_mode mode)
> > > {
> > > counter->stats = dev->ops.counter_alloc_stats(counter);
> > > if (!counter->stats)
> > > goto err_stats;
> > >
> > > Which does not init counter->stat's mutex.
> >
> > This is exactly what Mark is doing here.
> >
> > alloc_and_bind()
> > -> dev->ops.counter_alloc_stats
> > -> mlx5_ib_counter_alloc_stats
> > -> do_alloc_stats()
> > -> rdma_alloc_hw_stats_struct()
> > -> mutex_init(&stats->lock); <- Mark's change.
>
> Yes, I know, the patch is fine, the commit message just needs to be
> accurate
>
> > > And trim the oops reports, don't include the usless ? fns, timestamps
> > > or other junk.
> >
> > I don't like when people "beatify" kernel reports, many times whey are
> > removing too much information.
>
> There is too much junk in the raw oops messages
Right, but it is better to have more info than to much trimmed one.
Thanks
>
> Jason