Re: [PATCH] nvme-tcp: Do not reset transport on data digest errors

From: Daniel Wagner
Date: Wed Aug 11 2021 - 06:31:50 EST


On Tue, Aug 10, 2021 at 06:02:36PM -0700, Sagi Grimberg wrote:
>
> > Hi Sagi,
> >
> > On Fri, Aug 06, 2021 at 12:42:00PM -0700, Sagi Grimberg wrote:
> > > > @@ -89,6 +89,7 @@ struct nvme_tcp_queue {
> > > > size_t data_remaining;
> > > > size_t ddgst_remaining;
> > > > unsigned int nr_cqe;
> > > > + u16 status;
> > >
> > > Why is this a queue member and not a request member?
> >
> > I was not sure if the TCP transport specific error handling should
> > impact all other transport (size of struct request). Also I tried to
> > avoid accessing cachelines which are not already in use. Except this I
> > don't see there should be no problem to put this to struct request.
>
> It is the correct place, lets see that it doesn't increase the struct.

It should not according pahole:

/* XXX 7 bytes hole, try to pack */

void * pdu; /* 144 8 */
int pdu_remaining; /* 152 4 */
int pdu_offset; /* 156 4 */
size_t data_remaining; /* 160 8 */
size_t ddgst_remaining; /* 168 8 */
unsigned int nr_cqe; /* 176 4 */
u16 status; /* 180 2 */

/* XXX 2 bytes hole, try to pack */

Daniel