RE: [[PATCH v1] 15/37] [CIFS] SMBD: Post a SMBD data transfer message with data payload
From: Long Li
Date: Wed Aug 30 2017 - 14:17:10 EST
> -----Original Message-----
> From: Christoph Hellwig [mailto:hch@xxxxxxxxxxxxx]
> Sent: Wednesday, August 30, 2017 1:52 AM
> To: Long Li <longli@xxxxxxxxxxxxx>
> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>; Steve French
> <sfrench@xxxxxxxxx>; linux-cifs@xxxxxxxxxxxxxxx; samba-
> technical@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [[PATCH v1] 15/37] [CIFS] SMBD: Post a SMBD data transfer
> message with data payload
>
> On Wed, Aug 30, 2017 at 02:17:56AM +0000, Long Li wrote:
> > I partially addressed this issue in the V3 patch. Most of the
> > duplicate code on sending path is merged.
> >
> > The difficulty with translating the buffer to pages is that: I don't
> > know how many pages will be translated, and how many struct page I
> > need to allocate in advance to hold them. I try to avoid memory
> > allocation in the I/O path as much as possible. So I keep two
> > functions of sending data: one for buffer and one for pages.
>
> You do: you'll always need speace for (len + PAGE_SIZE - 1) >> PAGE_SIZE
> pages.
>
> That being said: what callers even send you buffers? In general we should
> aim to work with pages for all allocations that aren't tiny.
I'll look through the code allocating the buffers, it probably can fit into one page. Will fix this.