Re: [PATCH rdma-next] RDMA/mlx5: Decrease stack usage in mlx5_ib_create_cq()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Sep 02, 2018 at 02:42:38PM -0600, Jason Gunthorpe wrote:
> On Tue, Aug 28, 2018 at 02:12:44PM +0300, Leon Romanovsky wrote:
> > From: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> >
> > Change on stack allocation to be dynamically allocated structure to fix
> > the following compilation warning.
> >
> > drivers/infiniband/hw/mlx5/cq.c: In function _mlx5_ib_create_cq_:
> > drivers/infiniband/hw/mlx5/cq.c:1091:1: warning: the frame size of 1064
> > bytes is larger than 1024 bytes [-Wframe-larger-than=]
> >  }
> >  ^
> >
> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> >  drivers/infiniband/hw/mlx5/cq.c | 49 ++++++++++++++++++++++++-----------------
> >  1 file changed, 29 insertions(+), 20 deletions(-)
> >
> > diff --git a/drivers/infiniband/hw/mlx5/cq.c b/drivers/infiniband/hw/mlx5/cq.c
> > index 088205d7f1a1..ada77c9e4b6b 100644
> > +++ b/drivers/infiniband/hw/mlx5/cq.c
> > @@ -778,7 +778,7 @@ static int create_cq_user(struct mlx5_ib_dev *dev, struct ib_udata *udata,
> >  			  int entries, u32 **cqb,
> >  			  int *cqe_size, int *index, int *inlen)
> >  {
> > -	struct mlx5_ib_create_cq ucmd = {};
> > +	struct mlx5_ib_create_cq *ucmd;
>
> This is a 24 byte structure, it seems silly to allocate that alone on
> the heap.
>
> How did the stack frame get to 1064 bytes big? I can't get anywhere
> near that by eyeballing the stack usage in create_cq_user and
> mlx5_ib_create_cq..

1.
Before this patch
_ kernel git:(rdma-next) objdump -d drivers/infiniband/hw/mlx5/mlx5_ib.ko | scripts/checkstack.pl | grep mlx5_ib_create_cq
0x00014da2 mlx5_ib_create_cq [mlx5_ib]:                 1064

After this patch
_ kernel git:(rdma-next) objdump -d drivers/infiniband/hw/mlx5/mlx5_ib.ko | scripts/checkstack.pl | grep mlx5_ib_create_cq
0x00014da2 mlx5_ib_create_cq [mlx5_ib]:                 992

2.
Main consumer of stack in create_cq_user() is mlx5_ib_cont_pages() with
reverted patch in question and empty mlx5_ib_cont_pages():
0x00014da2 mlx5_ib_create_cq [mlx5_ib]:                 848

However I prefer do not touch mlx5_ib_cont_pages() without real bug.

Thanks

>
> Jason

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux