[lustre-devel] [PATCH 00/24] lustre - more cleanups including module reduction.

NeilBrown neilb at suse.com
Wed Jun 20 19:54:58 PDT 2018


On Thu, Jun 21 2018, James Simmons wrote:

>> 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

Why would you do that?  SUBDIRS= is for building external modules.
What are you trying to achieve?

>
> do lmv.a and the other *.a files get relinked int lustre.ko ?

It isn't "lmv.a", it is ".../lustre/lmv/mod.a".

>  
>> 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.

Can you be specific about what things (or just one thing) that the next
patch breaks?  I haven't seen anything in my testing.
The only problem I've seen is that kvmalloc(GFP_NOFS) has been changed to
silently become kmalloc(GFP_NOFS) so there are memory allocation
problems.

>
>>       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.

Specifically??...

Thanks,
NeilBrown
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20180621/ed188aeb/attachment.sig>


More information about the lustre-devel mailing list