All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruce Fields <bfields@fieldses.org>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH v1 1/2] NFSD: Clean up write argument XDR decoders
Date: Fri, 23 Mar 2018 22:40:47 -0400	[thread overview]
Message-ID: <20180324024047.GW4288@fieldses.org> (raw)
In-Reply-To: <ABCD8B94-C1F9-475A-AF45-53DC3EAEFB41@oracle.com>

On Fri, Mar 23, 2018 at 06:37:51PM -0400, Chuck Lever wrote:
> 
> 
> > On Mar 23, 2018, at 5:55 PM, Chuck Lever <chuck.lever@oracle.com> wrote:
> > 
> > 
> > 
> >> On Mar 23, 2018, at 5:32 PM, J. Bruce Fields <bfields@fieldses.org> wrote:
> >> 
> >> If I understand correctly, in the v4 case you change the way the page
> >> data is passed by using rq_arg.pages instead of a list of pages for each
> >> write.
> >> 
> >> I don't think that handles the case of compounds with multiple writes.
> >> 
> >> If all the writes are contained in a page, then you may be OK, since the
> >> wr_head iovec is all the information you need to pass the write data
> >> from the xdr code to the proc code.
> >> 
> >> But if there are multiple larger writes, you also need to know where the
> >> page data is.  You're depending on rq_arg.pages for that, but there's
> >> only one of those per compound.
> > 
> > I thought we were going to handle that case by chaining xdr_bufs--
> > one per NFSv4 WRITE operation. There has to be some structured way
> > to pass distinct write payloads up to the NFS server, otherwise
> > direct placement is impossible.
> 
> Thinking on this a little more, I think you are saying the new shared
> decoder is adequate for NFSv2 and NFSv3, but not for NFSv4.

Yes, it would be a regression in the v4 case, but not in the v2 or v3
cases.

> Would you
> accept a patch that kept the NFSv2 and NFSv3 parts of this patch, but
> dropped the NFSv4-related hunks?
> 
> Likewise for the symlink decoder patch?

I'll have to take another look, but, could be.

> And we can still use a transport call-out in the XDR decoders, just as
> we have discussed. (I think I've misremembered our discussion about
> chaining xdr_bufs).

Maybe chaining xdr bufs would make sense, I haven't thought about it.

But we currently handle multiple IOs per compound without chaining xdr
bufs.

--b.

  reply	other threads:[~2018-03-24  2:40 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-19 18:56 [PATCH v1 0/2] NFS decoder clean-ups, redux Chuck Lever
2018-03-19 18:56 ` [PATCH v1 1/2] NFSD: Clean up write argument XDR decoders Chuck Lever
2018-03-23 21:32   ` J. Bruce Fields
2018-03-23 21:55     ` Chuck Lever
2018-03-23 22:37       ` Chuck Lever
2018-03-24  2:40         ` Bruce Fields [this message]
2018-03-24 16:00           ` Chuck Lever
2018-03-19 18:56 ` [PATCH v1 2/2] NFSD: Clean up symlink " Chuck Lever

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180324024047.GW4288@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.