From mboxrd@z Thu Jan 1 00:00:00 1970 From: James Simmons Date: Thu, 21 Jun 2018 03:57:49 +0100 (BST) Subject: [lustre-devel] [PATCH 00/24] lustre - more cleanups including module reduction. In-Reply-To: References: <152904663333.10587.10934053155404014785.stgit@noble>, Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: lustre-devel@lists.lustre.org > 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 > >