Linux-NFS Archive on lore.kernel.org
 help / color / Atom feed
From: bfields@fieldses.org (J. Bruce Fields)
To: Trond Myklebust <trondmy@gmail.com>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH 00/19] Layoutget on OPEN
Date: Thu, 31 May 2018 14:59:20 -0400
Message-ID: <20180531185920.GA3557@fieldses.org> (raw)
In-Reply-To: <20180530180553.38769-1-trond.myklebust@hammerspace.com>

On Wed, May 30, 2018 at 02:05:34PM -0400, Trond Myklebust wrote:
> This patchset is something we've been sitting on for a couple of years
> in order to allow it to mature. It was mainly developed by Fred Isaman
> while he was working for Primary Data, but we've had a few bugfixes
> come in since then.
> The main reason for delaying the upstream merge was to ensure that
> adding layoutget to the OPEN compound was safe (does not cause existing
> layouts to be automatically revoked) and that it gives us a real
> performance benefit.

Do you have any of the performance data?

Or just a rough summary explaining when it helps most and by how much?

--b.

> 
> Fred Isaman (14):
>   pnfs: Remove redundant assignment from nfs4_proc_layoutget().
>   pnfs: Store return value of decode_layoutget for later processing
>   NFS4: move ctx into nfs4_run_open_task
>   pnfs: Add layout driver flag PNFS_LAYOUTGET_ON_OPEN
>   pnfs: refactor send_layoutget
>   pnfs: move allocations out of nfs4_proc_layoutget
>   pnfs: Add conditional encode/decode of LAYOUTGET within OPEN compound
>   pnfs: Move nfs4_opendata into nfs4_fs.h
>   pnfs: Change pnfs_alloc_init_layoutget_args call signature
>   pnfs: Add LAYOUTGET to OPEN of a new file
>   pnfs: Add LAYOUTGET to OPEN of an existing file
>   pnfs: Stop attempting LAYOUTGET on OPEN on failure
>   pnfs: Add barrier to prevent lgopen using LAYOUTGET during recall
>   pnfs: Fix manipulation of NFS_LAYOUT_FIRST_LAYOUTGET
> 
> Trond Myklebust (5):
>   NFSv4/pnfs: Ensure pnfs_parse_lgopen() won't try to parse
>     uninitialised data
>   NFSv4/pnfs: Don't switch off layoutget-on-open for transient errors
>   pNFS: Don't send LAYOUTGET on OPEN for read, if we already have cached
>     data
>   pnfs: Don't call commit on failed layoutget-on-open
>   pnfs: Don't release the sequence slot until we've processed layoutget
>     on open
> 
>  fs/nfs/callback_proc.c                 |   2 +
>  fs/nfs/flexfilelayout/flexfilelayout.c |   1 +
>  fs/nfs/nfs4_fs.h                       |  25 +++
>  fs/nfs/nfs4proc.c                      |  97 +++++----
>  fs/nfs/nfs4state.c                     |   8 +
>  fs/nfs/nfs4xdr.c                       |  65 +++++-
>  fs/nfs/pnfs.c                          | 266 +++++++++++++++++++++----
>  fs/nfs/pnfs.h                          |  28 ++-
>  include/linux/nfs_fs_sb.h              |   2 +
>  include/linux/nfs_xdr.h                |   4 +
>  10 files changed, 398 insertions(+), 100 deletions(-)
> 
> -- 
> 2.17.0
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply index

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-30 18:05 Trond Myklebust
2018-05-30 18:05 ` [PATCH 01/19] pnfs: Remove redundant assignment from nfs4_proc_layoutget() Trond Myklebust
2018-05-30 18:05   ` [PATCH 02/19] pnfs: Store return value of decode_layoutget for later processing Trond Myklebust
2018-05-30 18:05     ` [PATCH 03/19] NFS4: move ctx into nfs4_run_open_task Trond Myklebust
2018-05-30 18:05       ` [PATCH 04/19] pnfs: Add layout driver flag PNFS_LAYOUTGET_ON_OPEN Trond Myklebust
2018-05-30 18:05         ` [PATCH 05/19] pnfs: refactor send_layoutget Trond Myklebust
2018-05-30 18:05           ` [PATCH 06/19] pnfs: move allocations out of nfs4_proc_layoutget Trond Myklebust
2018-05-30 18:05             ` [PATCH 07/19] pnfs: Add conditional encode/decode of LAYOUTGET within OPEN compound Trond Myklebust
2018-05-30 18:05               ` [PATCH 08/19] pnfs: Move nfs4_opendata into nfs4_fs.h Trond Myklebust
2018-05-30 18:05                 ` [PATCH 09/19] pnfs: Change pnfs_alloc_init_layoutget_args call signature Trond Myklebust
2018-05-30 18:05                   ` [PATCH 10/19] pnfs: Add LAYOUTGET to OPEN of a new file Trond Myklebust
2018-05-30 18:05                     ` [PATCH 11/19] pnfs: Add LAYOUTGET to OPEN of an existing file Trond Myklebust
2018-05-30 18:05                       ` [PATCH 12/19] pnfs: Stop attempting LAYOUTGET on OPEN on failure Trond Myklebust
2018-05-30 18:05                         ` [PATCH 13/19] pnfs: Add barrier to prevent lgopen using LAYOUTGET during recall Trond Myklebust
2018-05-30 18:05                           ` [PATCH 14/19] pnfs: Fix manipulation of NFS_LAYOUT_FIRST_LAYOUTGET Trond Myklebust
2018-05-30 18:05                             ` [PATCH 15/19] NFSv4/pnfs: Ensure pnfs_parse_lgopen() won't try to parse uninitialised data Trond Myklebust
2018-05-30 18:05                               ` [PATCH 16/19] NFSv4/pnfs: Don't switch off layoutget-on-open for transient errors Trond Myklebust
2018-05-30 18:05                                 ` [PATCH 17/19] pNFS: Don't send LAYOUTGET on OPEN for read, if we already have cached data Trond Myklebust
2018-05-30 18:05                                   ` [PATCH 18/19] pnfs: Don't call commit on failed layoutget-on-open Trond Myklebust
2018-05-30 18:05                                     ` [PATCH 19/19] pnfs: Don't release the sequence slot until we've processed layoutget on open Trond Myklebust
2018-05-30 20:10         ` [PATCH 04/19] pnfs: Add layout driver flag PNFS_LAYOUTGET_ON_OPEN Olga Kornievskaia
2018-05-31 12:40           ` Trond Myklebust
2019-09-06 20:17             ` Olga Kornievskaia
2018-05-30 18:25 ` [PATCH 00/19] Layoutget on OPEN Olga Kornievskaia
2018-05-30 18:36   ` Trond Myklebust
2018-05-30 18:37     ` Olga Kornievskaia
2018-05-30 19:27       ` Olga Kornievskaia
2018-05-30 19:29         ` Olga Kornievskaia
2018-05-30 19:47           ` Olga Kornievskaia
2018-05-30 22:33             ` Trond Myklebust
2018-05-31 18:59 ` bfields [this message]
2018-06-01  0:28   ` Trond Myklebust

Reply instructions:

You may reply publically 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=20180531185920.GA3557@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trondmy@gmail.com \
    /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

Linux-NFS Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-nfs/0 linux-nfs/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-nfs linux-nfs/ https://lore.kernel.org/linux-nfs \
		linux-nfs@vger.kernel.org
	public-inbox-index linux-nfs

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-nfs


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git