All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anna Schumaker <Anna.Schumaker@netapp.com>
To: Weston Andros Adamson <dros@primarydata.com>
Cc: Trond Myklebust <Trond.Myklebust@primarydata.com>,
	linux-nfs list <linux-nfs@vger.kernel.org>, <hch@infradead.org>
Subject: Re: [PATCH v2 00/17] NFS: Create a common path used by reads and writes
Date: Wed, 30 Apr 2014 12:21:27 -0400	[thread overview]
Message-ID: <53612307.1050502@netapp.com> (raw)
In-Reply-To: <737A757B-831D-423F-8559-318436CF25CB@primarydata.com>

On 04/30/2014 12:09 PM, Weston Andros Adamson wrote:
> On Apr 25, 2014, at 4:55 PM, Anna Schumaker <Anna.Schumaker@netapp.com> wrote:
> 
>> I noticed that much of the read and write code was almost identical, with
>> only minor differences in argument types and names.  These patches seek to
>> unify these two codepaths wherever possible in order to make future changes
>> easier.
>>
>> Table of contents:
>> 	Patches 01 - 05: Set up common data structures.
>> 	Patches 06 - 10: Set up a shared rpc_call_ops struct.
>> 	Patches 11 - 15: Set up a shared nfs_pageio_ops struct.
>>
>> Some of the commit setup was moved into common code, but I'm willing to
>> move this back into write.c if this looks to be a problem.
>>
>> Future work:
>> 	I have rough pNFS patches to combine the read and write paths in
>> 	pnfs.c.  They apply on top of Dros' multiple requests work and
>> 	should get more testing before I submit.
> 
> Good! I was going to ask about that.  pnfs_generic_pg_writepages  / 
> pnfs_generic_pg_readpagescan are extremely similar to nfs_generic_pg_pgios.
> 
>>
>> Testing:
>> 	I tested every version of NFS using the cthon and xfs tests without
>> 	hitting anything new.  Any extra testing would be great seeing how
>> 	the read and write paths are vitally important.
>>
>> Changes in v2:
>> 	Reorder data fields in the earlier patches to keep read-only and
>> 	write-only variables together.
>>
>> Questions?  Comments?  Thoughts?
> 
> Why did you make a new file pageio.c? pagelist.c seems like the right place for
> all of these changes. Or maybe merge them both into pageio.c?

I don't remember my reasoning for creating a new file, so I can put everything into pagelist.c if that would make more sense!

Anna

> 
> -dros
> 
>>
>> Anna
>>
>>
>> Anna Schumaker (17):
>>  NFS: Create a common argument structure for reads and writes
>>  NFS: Create a common results structure for reads and writes
>>  NFS: Create a common read and write data struct
>>  NFS: Create a common read and write header struct
>>  NFS: Move the write verifier into the nfs_pgio_header
>>  NFS: Create a common pgio_alloc and pgio_release function
>>  NFS: Create a common rw_header_alloc and rw_header_free function
>>  NFS: Create a common pgio_rpc_prepare function
>>  NFS: Create a common nfs_pgio_result_common function
>>  NFS: Create a common rpc_call_ops struct
>>  NFS: Create a common rpcsetup function for reads and writes
>>  NFS: Create a common pgio_error function
>>  NFS: Create a generic_pgio function
>>  NFS: Create a common initiate_pgio() function
>>  NFS: Create a common multiple_pgios() function
>>  NFS: Create a common generic_pg_pgios()
>>  NFS: Create a common nfs_pageio_ops struct
>>
>> fs/nfs/Makefile                  |   2 +-
>> fs/nfs/blocklayout/blocklayout.c |  22 +-
>> fs/nfs/direct.c                  |   4 +-
>> fs/nfs/internal.h                |  31 ++-
>> fs/nfs/nfs2xdr.c                 |  14 +-
>> fs/nfs/nfs3proc.c                |  19 +-
>> fs/nfs/nfs3xdr.c                 |  16 +-
>> fs/nfs/nfs4_fs.h                 |   4 +-
>> fs/nfs/nfs4filelayout.c          |  40 ++--
>> fs/nfs/nfs4proc.c                |  52 ++---
>> fs/nfs/nfs4trace.h               |   8 +-
>> fs/nfs/nfs4xdr.c                 |  19 +-
>> fs/nfs/objlayout/objio_osd.c     |   6 +-
>> fs/nfs/objlayout/objlayout.c     |  16 +-
>> fs/nfs/objlayout/objlayout.h     |   8 +-
>> fs/nfs/pageio.c                  | 386 +++++++++++++++++++++++++++++++++++
>> fs/nfs/pagelist.c                |   2 +
>> fs/nfs/pnfs.c                    |  46 ++---
>> fs/nfs/pnfs.h                    |  10 +-
>> fs/nfs/proc.c                    |  19 +-
>> fs/nfs/read.c                    | 348 +++-----------------------------
>> fs/nfs/write.c                   | 425 +++++----------------------------------
>> include/linux/nfs_fs.h           |   3 +-
>> include/linux/nfs_page.h         |  13 ++
>> include/linux/nfs_xdr.h          |  95 +++------
>> 25 files changed, 662 insertions(+), 946 deletions(-)
>> create mode 100644 fs/nfs/pageio.c
>>
>> -- 
>> 1.9.2
>>
> 


      reply	other threads:[~2014-04-30 16:21 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-25 20:55 [PATCH v2 00/17] NFS: Create a common path used by reads and writes Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 01/17] NFS: Create a common argument structure for " Anna Schumaker
2014-05-02 13:20   ` Jeff Layton
2014-04-25 20:55 ` [PATCH v2 02/17] NFS: Create a common results " Anna Schumaker
2014-05-02 13:22   ` Jeff Layton
2014-04-25 20:55 ` [PATCH v2 03/17] NFS: Create a common read and write data struct Anna Schumaker
2014-05-02 18:59   ` Jeff Layton
2014-04-25 20:55 ` [PATCH v2 04/17] NFS: Create a common read and write header struct Anna Schumaker
2014-05-02 18:59   ` Jeff Layton
2014-05-02 19:03     ` Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 05/17] NFS: Move the write verifier into the nfs_pgio_header Anna Schumaker
2014-05-02 19:01   ` Jeff Layton
2014-04-25 20:55 ` [PATCH v2 06/17] NFS: Create a common pgio_alloc and pgio_release function Anna Schumaker
2014-05-02 19:06   ` Jeff Layton
2014-04-25 20:55 ` [PATCH v2 07/17] NFS: Create a common rw_header_alloc and rw_header_free function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 08/17] NFS: Create a common pgio_rpc_prepare function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 09/17] NFS: Create a common nfs_pgio_result_common function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 10/17] NFS: Create a common rpc_call_ops struct Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 11/17] NFS: Create a common rpcsetup function for reads and writes Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 12/17] NFS: Create a common pgio_error function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 13/17] NFS: Create a generic_pgio function Anna Schumaker
2014-04-30 16:13   ` Weston Andros Adamson
2014-04-30 16:22     ` Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 14/17] NFS: Create a common initiate_pgio() function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 15/17] NFS: Create a common multiple_pgios() function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 16/17] NFS: Create a common generic_pg_pgios() Anna Schumaker
2014-04-25 20:56 ` [PATCH v2 17/17] NFS: Create a common nfs_pageio_ops struct Anna Schumaker
2014-04-30 16:09 ` [PATCH v2 00/17] NFS: Create a common path used by reads and writes Weston Andros Adamson
2014-04-30 16:21   ` Anna Schumaker [this message]

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=53612307.1050502@netapp.com \
    --to=anna.schumaker@netapp.com \
    --cc=Trond.Myklebust@primarydata.com \
    --cc=dros@primarydata.com \
    --cc=hch@infradead.org \
    --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.