svn commit: r291744 - in head/sys: conf modules

Bryan Drewery bdrewery at FreeBSD.org
Fri Dec 4 18:20:26 UTC 2015


On 12/4/2015 9:50 AM, John Baldwin wrote:
> On Friday, December 04, 2015 04:27:21 AM Bryan Drewery wrote:
>> Author: bdrewery
>> Date: Fri Dec  4 04:27:21 2015
>> New Revision: 291744
>> URL: https://svnweb.freebsd.org/changeset/base/291744
>>
>> Log:
>>   Calculate MPATH for sys/modules to save 92% time in a basic 'obj' tree-walk.
>>   
>>   Sponsored by:	EMC / Isilon Storage Division
>>
>> Modified:
>>   head/sys/conf/kmod.mk
>>   head/sys/modules/Makefile
>>
>> Modified: head/sys/conf/kmod.mk
>> ==============================================================================
>> --- head/sys/conf/kmod.mk	Fri Dec  4 03:54:18 2015	(r291743)
>> +++ head/sys/conf/kmod.mk	Fri Dec  4 04:27:21 2015	(r291744)
>> @@ -370,8 +370,10 @@ vnode_if_typedef.h:
>>  .endif
>>  
>>  # Build _if.[ch] from _if.m, and clean them when we're done.
>> +# This is duplicated in sys/modules/Makefile.
>>  .if !defined(__MPATH)
>>  __MPATH!=find ${SYSDIR:tA}/ -name \*_if.m
>> +.export __MPATH
>>  .endif
>>  _MFILES=${__MPATH:T:O}
>>  _MPATH=${__MPATH:H:O:u}
> 
> It's also duplicated in sys/conf/kern.pre.mk which uses this to export it:
> 
> # Calculate path for .m files early, if needed.
> .if !defined(__MPATH)
> __MPATH!=find ${S:tA}/ -name \*_if.m
> .endif
> ....
> MKMODULESENV+=  __MPATH="${__MPATH}"
> 

Ah.

I do want to consolidate this logic. Further I want to only generate
these files *ONCE* and not for every sub-directory that needs them. It's
on my list to tackle soon. I'll put that one out for review.

> So, the comment should probably reference the two other places that will pass
> an __MPATH down (kern.pre.mk and sys/modules/Makefile).
> 
> Note though that you should only be seeing this if you are building modules
> outside of a kernel build (e.g. MODULES_WITH_WORLD).  modules built as part of
> a kernel build will inherit __MPATH from kern.pre.mk.
> 
> When I ran a buildkernel with truss -af and grepp'd for all the execve's of
> /usr/bin/find I only found about 6 for a GENERIC kernel, so I believe that
> the kern.pre.mk bits were working already.
> 

I've been running a lot of manual builds against sys/modules to verify
various changes. I actually have not been running buildworld much lately.

-- 
Regards,
Bryan Drewery

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20151204/863a98a8/attachment.bin>


More information about the svn-src-head mailing list