Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Perform KABI checks in parallel #9341

Merged
merged 1 commit into from
Oct 1, 2019

Commits on Sep 26, 2019

  1. Perform KABI checks in parallel

    Reduce the time required for ./configure to perform the needed
    KABI checks by allowing kbuild to compile multiple test cases in
    parallel.  This was accomplished by splitting each test's source
    code from the logic handling whether that code could be compiled
    or not.
    
    By introducing this split it's possible to minimize the number of
    times kbuild needs to be invoked.  As importantly, it means all of
    the tests can be built in parallel.  This does require a little extra
    care since we expect some tests to fail, so the --keep-going (-k)
    option must be provided otherwise some tests may not get compiled.
    Furthermore, since a failure during the kbuild modpost phase will
    result in an early exit; the final linking phase is limited to tests
    which passed the initial compilation and produced an object file.
    
    Once everything has been built the configure script proceeds as
    previously.  The only significant difference is that it now merely
    needs to test for the existence of a .ko file to determine the
    result of a given test.  This vastly speeds up the entire process.
    
    New test cases should use ZFS_LINUX_TEST_SRC to declare their test
    source code and ZFS_LINUX_TEST_RESULT to check the result.  All of
    the existing kernel-*.m4 files have been updated accordingly, see
    config/kernel-current-time.m4 for a basic example.  The legacy
    ZFS_LINUX_TRY_COMPILE macro has been kept to handle special cases
    but it's use is not encouraged.
    
                      master (secs)   patched (secs)
                      -------------   ----------------
    autogen.sh        61              68
    configure         137             24  (~17% of current run time)
    make -j $(nproc)  44              44
    make rpms         287             150
    
    Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
    Issue openzfs#9132
    behlendorf committed Sep 26, 2019
    Configuration menu
    Copy the full SHA
    fc7c5fe View commit details
    Browse the repository at this point in the history