02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

10 Aug, 2017

1 commit

  • Two boots + a make defconfig, the first didn't have the redundant bit
    in, the second did:

    lock-classes: 1168 1169 [max: 8191]
    direct dependencies: 7688 5812 [max: 32768]
    indirect dependencies: 25492 25937
    all direct dependencies: 220113 217512
    dependency chains: 9005 9008 [max: 65536]
    dependency chain hlocks: 34450 34366 [max: 327680]
    in-hardirq chains: 55 51
    in-softirq chains: 371 378
    in-process chains: 8579 8579
    stack-trace entries: 108073 88474 [max: 524288]
    combined max dependencies: 178738560 169094640

    max locking depth: 15 15
    max bfs queue depth: 320 329

    cyclic checks: 9123 9190

    redundant checks: 5046
    redundant links: 1828

    find-mask forwards checks: 2564 2599
    find-mask backwards checks: 39521 39789

    So it saves nearly 2k links and a fair chunk of stack-trace entries, but
    as expected, makes no real difference on the indirect dependencies.

    At the same time, you see the max BFS depth increase, which is also
    expected, although it could easily be boot variance -- these numbers are
    not entirely stable between boots.

    The down side is that the cycles in the graph become larger and thus
    the reports harder to read.

    XXX: do we want this as a CONFIG variable, implied by LOCKDEP_SMALL?

    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Byungchul Park
    Cc: Linus Torvalds
    Cc: Mel Gorman
    Cc: Michal Hocko
    Cc: Nikolay Borisov
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: akpm@linux-foundation.org
    Cc: boqun.feng@gmail.com
    Cc: iamjoonsoo.kim@lge.com
    Cc: kernel-team@lge.com
    Cc: kirill@shutemov.name
    Cc: npiggin@gmail.com
    Cc: walken@google.com
    Link: http://lkml.kernel.org/r/20170303091338.GH6536@twins.programming.kicks-ass.net
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

19 Apr, 2017

1 commit

  • CONFIG_PROVE_LOCKING_SMALL shrinks the memory usage of lockdep so the
    kernel text, data, and bss fit in the required 32MB limit, but this
    option is not set for every config that enables lockdep.

    A 4.10 kernel fails to boot with the console output

    Kernel: Using 8 locked TLB entries for main kernel image.
    hypervisor_tlb_lock[2000000:0:8000000071c007c3:1]: errors with f
    Program terminated

    with these config options

    CONFIG_LOCKDEP=y
    CONFIG_LOCK_STAT=y
    CONFIG_PROVE_LOCKING=n

    To fix, rename CONFIG_PROVE_LOCKING_SMALL to CONFIG_LOCKDEP_SMALL, and
    enable this option with CONFIG_LOCKDEP=y so we get the reduced memory
    usage every time lockdep is turned on.

    Tested that CONFIG_LOCKDEP_SMALL is set to 'y' if and only if
    CONFIG_LOCKDEP is set to 'y'. When other lockdep-related config options
    that select CONFIG_LOCKDEP are enabled (e.g. CONFIG_LOCK_STAT or
    CONFIG_PROVE_LOCKING), verified that CONFIG_LOCKDEP_SMALL is also
    enabled.

    Fixes: e6b5f1be7afe ("config: Adding the new config parameter CONFIG_PROVE_LOCKING_SMALL for sparc")
    Signed-off-by: Daniel Jordan
    Reviewed-by: Babu Moger
    Signed-off-by: David S. Miller

    Daniel Jordan
     

19 Nov, 2016

1 commit


18 Apr, 2014

1 commit

  • Fuzzing a recent kernel with a large configuration hits the static
    allocation limits and disables lockdep.

    This patch doubles the limits.

    Signed-off-by: Sasha Levin
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1389208906-24338-1-git-send-email-sasha.levin@oracle.com
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Sasha Levin
     

06 Nov, 2013

1 commit