[ewg] ofed autoconf.h

Steve Wise swise at opengridcomputing.com
Tue Apr 7 14:24:56 PDT 2009


I've been charged to resolve OFED bugs 1538 and 1578 dealing with 
autoconf.h.  I seek input from the OFA lists.

There are two issues:

Bug 1538) the ofed kernel configure script creates an autoconf.h file 
that is intended to be included _after_ the backing kernel autoconf.h.  
The ofed autoconf.h undefines  the CONFIG defines for all the ofed 
supplied modules, and then redefines the ones that are "turned on" by 
the config options (setup via install.pl).  This forces 
non-ofed/non-kernel.org kernel modules that are trying to build their 
rdma modules on top of ofed to include the backing kernel autoconf.h and 
then the ofed autoconf.h.  Bug 1538 requests that this be resolved 
somehow so all the kernel module has to do is simply include 
<linux/autoconf.h> and the ofed backport/includes will do the right 
thing.  Currently, this results in only the inclusion of the ofed 
autoconf.h.   It was suggested that we could add a "#include_next 
<linux/autoconf.h>" to the ofed file and thus include both, but that 
doesn't work because we need the backing kernel autoconf.h included 
first, and then the ofed one.

Bug 1578) for ofed modules that are not configured in, the ofed 
autoconf.h will #undef the CONFIG* defines for these modules.  So, for 
example, if you do not build in NFSRDMA with your ofed-1.4.1 
installation, then all the CONFIG_ defines for NFS will be #undefed in 
the ofed autoconf.h.  If a kernel module then builds against this 
autoconf.h, it will not have the NFS CONFIG defines set, even though the 
backing kernel _does_ have these set.   I think the idea originally was 
that the backing kernel didn't have any of these ofed modules.  But now 
almost all of them are indeed in the upstream kernel.  So should the 
ofed install really be #undefining these? 


A couple of questions:

1) do we think these should be resolved in ofed-1.4.1?  Maybe we should 
defer these to 1.5?

2) if we do want to fix them.  any ideas on how best to handle this? 

Here are my proposed solutions (dunno if they break anything)

1538:  change the ofed configure script to create a fully-populated 
autoconf.h that basically is a cat of the back kernel tree autoconf.h 
and the current ofed autoconf.h.  That way, modules will get everything 
when they include the ofed autoconf.h.

1578: I propose we don't #undef any modules that are not configured into 
the ofed build.  Thus if you don't build in NFSRDMA for ofed, the status 
of the NFS CONFIG* defines will be based on the backing kernel tree 
autoconf.h instead of always being turned off.


Comments?


Thanks,

Steve.




More information about the ewg mailing list