All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Simmons <jsimmons@infradead.org>
To: lustre-devel@lists.lustre.org
Subject: [lustre-devel] [PATCH 00/24] lustre - more cleanups including module reduction.
Date: Thu, 21 Jun 2018 03:57:49 +0100 (BST)	[thread overview]
Message-ID: <alpine.LFD.2.21.1806210354260.3886@casper.infradead.org> (raw)
In-Reply-To: <DM3PR1101MB1213DDB7FC857EE6B1444153CB760@DM3PR1101MB1213.namprd11.prod.outlook.com>


> Huh?? Very little of the client is used on the server.? The vast majority of the client is llite, vvp, then lov,?osc, and?mdc.? These are
> not used on the servers at all, the modules won't even be loaded.
> 
> 
> Servers are definitely *not* clients of one another in the sense of "Lustre clients".? They interact with each other, but in a manner very
> different from client to server.
> 
> The ldlm and ptlrpc layers are *partly* shared, and of course, the networking from lnet down is.? But that's not "the client".
> 
> The statement that the server layer is a middle layer on top of the client code doesn't make any sense to me.? It's like this:
> 
> 
> vfs
> client code
> 
> ptlrpc
> 
> networking
> 
> ------ PHYSICAL BOUNDARY --------
> networking
> 
> ptlrpc
> 
> server code
> 
> ldiskfs
> 
> 
> 
> with LDLM also being explicitly shared, though client & server code is not all shared.? Very little to nothing outside of the networking &
> ldlm layers is shared.

When I first started this (pre 2.3 days) that is how it was explained to 
me. I just took it at face value but when it comes to the separation as I 
don't have a clue. Patrick since you have a better grasp of the 
architecture can you provide details to Neil. Perhaps to documentation on
this separation if it exist.

> > Here are a bunch more cleanups that will appear in my lustre-testing
> > tree shortly.
> >
> > The interesting stuff is some enhancements to kbuild to let us
> > build modules from multiple directories.
> > I've used that to clean up the build of ptlrpc+ldlm and to
> > merge libcfs and lnet into the one module - I've left the lnds
> > separate.
> 
> That looks pretty good. It doesn't apply to the stable lustre tree but I
> did try it out on lustre-testing. The module building does seem to
> function well. Only thing not clear is if do a
> 
> make SUBDIRS=drivers/staging/lustre/lustre/lmv modules
> 
> do lmv.a and the other *.a files get relinked int lustre.ko ?
> ?
> > I've haven't progressed further in lustre because I'm not sure which -
> > if any - modules are also used by the server.
> > I'd rather shared code was in a separate module to client-only.
> >
> > Which parts of lustre/lustre/* are also used by server?
> 
> Basically all the client code is reused on the server except for llite.
> The reason is each server type MDS, MGS, or OSS is treated as a client
> to each other. So in affect the server code is a middle layer level on
> top of the client code.
> 
> > After that, it is all fairly simple cleanups.
> >
> > I plan to submit the kbuild stuff upstream next week.
> >
> > Thanks,
> > NeilBrown
> >
> > ---
> >
> > NeilBrown (24):
> >?????? kbuild: detect directories in components of a module.
> >?????? kbuild: treat a directory listed in a composite object as foo/mod.a
> >?????? kbuild: support building of per-directory mod.a
> >?????? kbuild: disable KBUILD_MODNAME when building for mod.a
> >?????? kbuild: Add documentation for modobj-m
> >?????? lustre: build ldlm in the ldlm directory.
> >?????? lustre: merge libcfs module into lnet.
> 
> This seems to work when I tried the lustre-testing tree. I did see
> regression to related to this work in that tree.
> 
> >?????? lustre: use truncate_inode_page in place of truncate_complete_page
> >?????? lustre: don't use spare bits in iattr.ia_valid
> >?????? lustre: remove lustre_patchless_compat.h
> >?????? lustre: discard current_n*groups macros.
> >?????? lustre: discard LTIME_S macro
> >?????? lustre: discard NO_QUOTA and QUOTA_OK
> >?????? lustre: discard ext2* bit operations
> >?????? lustre: centralize TIMES_SET_FLAGS
> >?????? lustre: remove redefinition of module_init().
> >?????? lustre: remove lustre_compat.h
> 
> The first two patches of the above seem to break things. The first one was
> pointed out so I avoid issues in my testing by changing the patch to just
> move truncate_inode_page() to lustre_mdc.h for now. The next patch does
> break things.
> 
> >?????? lustre/lnet: move tracefile locking from linux-tracefile.c to tracefile.c
> >?????? lustre: open code cfs_trace_max_debug_mb() into cfs_trace_set_debug_mb()
> >?????? lustre: move tcd locking across to tracefile.c
> >?????? lustre: move remainder of linux-tracefile.c to tracefile.c
> >?????? lustre: fold cfs_tracefile_*_arch into their only callers.
> >?????? lustre: renamed CFS_TCD_TYPE_MAX to CFS_TCD_TYPE_CNT
> >?????? lustre: discard TCD_MAX_TYPES
> 
> I see breakage in this code as well.
> 
> >? Documentation/kbuild/makefiles.txt???????????????? |?? 65 +++++
> >? drivers/staging/lustre/lnet/Makefile?????????????? |??? 7 -
> >? drivers/staging/lustre/lnet/libcfs/Makefile??????? |??? 7 -
> >? drivers/staging/lustre/lnet/libcfs/debug.c???????? |??? 6
> >? .../staging/lustre/lnet/libcfs/linux-tracefile.c?? |? 258 --------------------
> >? drivers/staging/lustre/lnet/libcfs/module.c??????? |?? 26 +-
> >? drivers/staging/lustre/lnet/libcfs/tracefile.c???? |? 241 +++++++++++++++++--
> >? drivers/staging/lustre/lnet/libcfs/tracefile.h???? |?? 40 ---
> >? drivers/staging/lustre/lnet/lnet/Makefile????????? |?? 11 -
> >? drivers/staging/lustre/lnet/lnet/module.c????????? |??? 9 +
> >? drivers/staging/lustre/lustre/fid/lproc_fid.c????? |??? 1
> >? drivers/staging/lustre/lustre/fld/lproc_fld.c????? |??? 1
> >? drivers/staging/lustre/lustre/include/cl_object.h? |??? 6
> >? .../staging/lustre/lustre/include/lustre_compat.h? |?? 82 ------
> >? drivers/staging/lustre/lustre/include/lustre_net.h |??? 1
> >? .../lustre/include/lustre_patchless_compat.h?????? |?? 68 -----
> >? drivers/staging/lustre/lustre/include/obd.h??????? |??? 7 +
> >? .../staging/lustre/lustre/include/obd_support.h??? |??? 1
> >? drivers/staging/lustre/lustre/ldlm/Makefile??????? |?? 11 +
> >? drivers/staging/lustre/lustre/llite/dir.c????????? |??? 3
> >? drivers/staging/lustre/lustre/llite/file.c???????? |?? 36 +--
> >? drivers/staging/lustre/lustre/llite/lcommon_cl.c?? |?? 11 -
> >? .../staging/lustre/lustre/llite/llite_internal.h?? |?? 13 +
> >? drivers/staging/lustre/lustre/llite/llite_lib.c??? |?? 52 ++--
> >? drivers/staging/lustre/lustre/llite/namei.c??????? |?? 16 +
> >? drivers/staging/lustre/lustre/llite/vvp_io.c?????? |??? 8 -
> >? drivers/staging/lustre/lustre/llite/vvp_object.c?? |??? 6
> >? drivers/staging/lustre/lustre/lmv/lmv_intent.c???? |??? 6
> >? drivers/staging/lustre/lustre/lmv/lmv_obd.c??????? |?? 21 +-
> >? drivers/staging/lustre/lustre/lov/lov_io.c???????? |??? 3
> >? drivers/staging/lustre/lustre/lov/lov_obd.c??????? |??? 2
> >? drivers/staging/lustre/lustre/lov/lov_pack.c?????? |??? 1
> >? drivers/staging/lustre/lustre/lov/lov_page.c?????? |??? 1
> >? drivers/staging/lustre/lustre/mdc/mdc_lib.c??????? |?? 19 +
> >? drivers/staging/lustre/lustre/mdc/mdc_reint.c????? |??? 4
> >? drivers/staging/lustre/lustre/mdc/mdc_request.c??? |?? 12 -
> >? drivers/staging/lustre/lustre/obdclass/class_obd.c |??? 1
> >? drivers/staging/lustre/lustre/obdclass/llog.c????? |??? 7 -
> >? .../lustre/lustre/obdclass/lprocfs_status.c??????? |??? 1
> >? .../staging/lustre/lustre/obdclass/obd_config.c??? |??? 1
> >? drivers/staging/lustre/lustre/obdclass/obd_mount.c |??? 1
> >? drivers/staging/lustre/lustre/obdclass/obdo.c????? |?? 10 -
> >? .../staging/lustre/lustre/obdecho/echo_client.c??? |??? 1
> >? drivers/staging/lustre/lustre/osc/lproc_osc.c????? |??? 1
> >? drivers/staging/lustre/lustre/osc/osc_cache.c????? |??? 4
> >? drivers/staging/lustre/lustre/osc/osc_io.c???????? |?? 23 +-
> >? drivers/staging/lustre/lustre/osc/osc_quota.c????? |??? 4
> >? drivers/staging/lustre/lustre/osc/osc_request.c??? |??? 1
> >? drivers/staging/lustre/lustre/ptlrpc/Makefile????? |?? 12 -
> >? drivers/staging/lustre/lustre/ptlrpc/import.c????? |??? 1
> >? .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c??? |??? 1
> >? drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c???? |??? 1
> >? drivers/staging/lustre/lustre/ptlrpc/sec.c???????? |?? 15 +
> >? drivers/staging/lustre/lustre/ptlrpc/sec_plain.c?? |??? 1
> >? drivers/staging/lustre/lustre/ptlrpc/service.c???? |??? 1
> >? scripts/Makefile.build???????????????????????????? |?? 57 +++-
> >? scripts/Makefile.lib?????????????????????????????? |?? 63 +++--
> >? 57 files changed, 584 insertions(+), 685 deletions(-)
> >? delete mode 100644 drivers/staging/lustre/lnet/libcfs/linux-tracefile.c
> >? delete mode 100644 drivers/staging/lustre/lustre/include/lustre_compat.h
> >? delete mode 100644 drivers/staging/lustre/lustre/include/lustre_patchless_compat.h
> >? create mode 100644 drivers/staging/lustre/lustre/ldlm/Makefile
> >
> > --
> > Signature
> >
> >
> _______________________________________________
> lustre-devel mailing list
> lustre-devel at lists.lustre.org
> http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org
> 
> 

  reply	other threads:[~2018-06-21  2:57 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-15  7:11 [lustre-devel] [PATCH 00/24] lustre - more cleanups including module reduction NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 18/24] lustre/lnet: move tracefile locking from linux-tracefile.c to tracefile.c NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 17/24] lustre: remove lustre_compat.h NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 21/24] lustre: move remainder of linux-tracefile.c to tracefile.c NeilBrown
2018-06-21  1:37   ` James Simmons
2018-06-22  3:19     ` NeilBrown
2018-06-24 20:29       ` James Simmons
2018-06-24 23:25         ` NeilBrown
2018-06-25 21:52           ` James Simmons
2018-06-15  7:11 ` [lustre-devel] [PATCH 03/24] kbuild: support building of per-directory mod.a NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 16/24] lustre: remove redefinition of module_init() NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 06/24] lustre: build ldlm in the ldlm directory NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 05/24] kbuild: Add documentation for modobj-m NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 11/24] lustre: discard current_n*groups macros NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 04/24] kbuild: disable KBUILD_MODNAME when building for mod.a NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 24/24] lustre: discard TCD_MAX_TYPES NeilBrown
2018-06-21  1:38   ` James Simmons
2018-06-21  4:28     ` NeilBrown
2018-06-24 20:37       ` James Simmons
2018-06-24 23:26         ` NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 13/24] lustre: discard NO_QUOTA and QUOTA_OK NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 01/24] kbuild: detect directories in components of a module NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 22/24] lustre: fold cfs_tracefile_*_arch into their only callers NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 08/24] lustre: use truncate_inode_page in place of truncate_complete_page NeilBrown
2018-06-16  0:17   ` James Simmons
2018-06-16  0:52     ` NeilBrown
2018-06-16  0:59       ` Oleg Drokin
2018-06-18  2:03         ` NeilBrown
2018-06-25  0:02           ` [lustre-devel] [PATCH 1/3] lustre: use generic_error_remove_page() NeilBrown
2018-06-25  0:02             ` [lustre-devel] [PATCH 2/3] lustre: use delete_from_page_cache() for directory pages NeilBrown
2018-06-25  0:03               ` [lustre-devel] [PATCH 3/3] lustre: discard truncate_complete_page() NeilBrown
2018-06-26  0:19                 ` James Simmons
2018-06-25  0:38               ` [lustre-devel] [PATCH 2/3] lustre: use delete_from_page_cache() for directory pages Oleg Drokin
2018-06-26  0:18               ` James Simmons
2018-06-25  0:38             ` [lustre-devel] [PATCH 1/3] lustre: use generic_error_remove_page() Oleg Drokin
2018-06-25  1:57               ` NeilBrown
2018-06-26  0:26                 ` James Simmons
2018-06-26  0:14             ` James Simmons
2018-06-15  7:11 ` [lustre-devel] [PATCH 15/24] lustre: centralize TIMES_SET_FLAGS NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 07/24] lustre: merge libcfs module into lnet NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 09/24] lustre: don't use spare bits in iattr.ia_valid NeilBrown
2018-06-21  1:35   ` James Simmons
2018-06-21  4:19     ` NeilBrown
2018-06-22  2:23       ` NeilBrown
2018-06-24 20:33         ` James Simmons
2018-06-24 23:50           ` NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 20/24] lustre: move tcd locking across to tracefile.c NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 10/24] lustre: remove lustre_patchless_compat.h NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 19/24] lustre: open code cfs_trace_max_debug_mb() into cfs_trace_set_debug_mb() NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 02/24] kbuild: treat a directory listed in a composite object as foo/mod.a NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 14/24] lustre: discard ext2* bit operations NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 12/24] lustre: discard LTIME_S macro NeilBrown
2018-06-15  7:11 ` [lustre-devel] [PATCH 23/24] lustre: renamed CFS_TCD_TYPE_MAX to CFS_TCD_TYPE_CNT NeilBrown
2018-06-21  1:48 ` [lustre-devel] [PATCH 00/24] lustre - more cleanups including module reduction James Simmons
2018-06-21  2:29   ` Patrick Farrell
2018-06-21  2:57     ` James Simmons [this message]
2018-06-21  7:22       ` Andreas Dilger
2018-06-21 12:28         ` Patrick Farrell
2018-06-24 20:35           ` James Simmons
2018-06-24 23:40           ` NeilBrown
2018-06-26  1:13             ` James Simmons
2018-06-26 13:51               ` Patrick Farrell
2018-06-27  3:08                 ` NeilBrown
2018-06-27  4:00                   ` Cory Spitz
2018-06-28  1:26                     ` NeilBrown
2018-06-27 11:01                   ` Andreas Dilger
2018-06-27 12:06                     ` Patrick Farrell
2018-06-28  1:59                       ` NeilBrown
2018-06-28  2:35                         ` Patrick Farrell
2018-06-28 23:12                           ` Andreas Dilger
2018-07-05 23:47                             ` James Simmons
2018-07-06  0:01                               ` Doug Oucharek
2018-06-28 15:03                         ` Cory Spitz
2018-06-28 17:03                           ` Doug Oucharek
2018-07-04 17:54                             ` Alexey Lyashkov
2018-06-28  1:39                     ` NeilBrown
2018-06-21  3:00     ` NeilBrown
2018-06-21  3:42       ` Patrick Farrell
2018-06-24 20:39       ` James Simmons
2018-06-21  2:54   ` NeilBrown
2018-06-24 20:46     ` James Simmons
2018-06-24 23:58       ` NeilBrown

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=alpine.LFD.2.21.1806210354260.3886@casper.infradead.org \
    --to=jsimmons@infradead.org \
    --cc=lustre-devel@lists.lustre.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.