Re: [RFC PATCH 02/35] libceph: Rename alignment to offset

David Howells
2025-03-14T20:02:01Z

Viacheslav Dubeyko <Slava.Dubeyko@ibm.com> wrote:

> > struct {
> > struct page **pages;
>
> Do we still operate by pages here? It looks like we need to rework it somehow.

One of the points of these patches is to rework this, working towards reducing
everything to just an iterator where possible, using a segmented list as the
actual buffers.

One of the things hopefully to be discussed at LSF/MM is how we might combine
struct folio_queue, struct bvec[] and struct scatterlist into something that
can hold references to more general pieces of memory and not just folios - and
that might be something we can use here for handing buffers about.

Anyway, my aim is to get all references to pages and folios (as far as
possible) out of 9p, afs, cifs and ceph - delegating all of that to netfslib
for ceph (rbd is slightly different - but I've completed the transformation
there).

Netfslib will pass an iterator to each subrequest describing the buffer, and
we might need to go from there to another iterator describing a bounce buffer
for transport encryption, but from there, we should pass the iterator directly
to the socket.

Further, I would like to make it so that we can link these buffers together
such that we can fabricate an entire message within a single iterator - and
then we no longer need to cork the TCP socket.

David