05 Apr, 2014

1 commit


03 Apr, 2014

1 commit

  • Pull main powerpc updates from Ben Herrenschmidt:
    "This time around, the powerpc merges are going to be a little bit more
    complicated than usual.

    This is the main pull request with most of the work for this merge
    window. I will describe it a bit more further down.

    There is some additional cpuidle driver work, however I haven't
    included it in this tree as it depends on some work in tip/timer-core
    which Thomas accidentally forgot to put in a topic branch. Since I
    didn't want to carry all of that tip timer stuff in powerpc -next, I
    setup a separate branch on top of Thomas tree with just that cpuidle
    driver in it, and Stephen has been carrying that in next separately
    for a while now. I'll send a separate pull request for it.

    Additionally, two new pieces in this tree add users for a sysfs API
    that Tejun and Greg have been deprecating in drivers-core-next.
    Thankfully Greg reverted the patch that removes the old API so this
    merge can happen cleanly, but once merged, I will send a patch
    adjusting our new code to the new API so that Greg can send you the
    removal patch.

    Now as for the content of this branch, we have a lot of perf work for
    power8 new counters including support for our new "nest" counters
    (also called 24x7) under pHyp (not natively yet).

    We have new functionality when running under the OPAL firmware
    (non-virtualized or KVM host), such as access to the firmware error
    logs and service processor dumps, system parameters and sensors, along
    with a hwmon driver for the latter.

    There's also a bunch of bug fixes accross the board, some LE fixes,
    and a nice set of selftests for validating our various types of copy
    loops.

    On the Freescale side, we see mostly new chip/board revisions, some
    clock updates, better support for machine checks and debug exceptions,
    etc..."

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (70 commits)
    powerpc/book3s: Fix CFAR clobbering issue in machine check handler.
    powerpc/compat: 32-bit little endian machine name is ppcle, not ppc
    powerpc/le: Big endian arguments for ppc_rtas()
    powerpc: Use default set of netfilter modules (CONFIG_NETFILTER_ADVANCED=n)
    powerpc/defconfigs: Enable THP in pseries defconfig
    powerpc/mm: Make sure a local_irq_disable prevent a parallel THP split
    powerpc: Rate-limit users spamming kernel log buffer
    powerpc/perf: Fix handling of L3 events with bank == 1
    powerpc/perf/hv_{gpci, 24x7}: Add documentation of device attributes
    powerpc/perf: Add kconfig option for hypervisor provided counters
    powerpc/perf: Add support for the hv 24x7 interface
    powerpc/perf: Add support for the hv gpci (get performance counter info) interface
    powerpc/perf: Add macros for defining event fields & formats
    powerpc/perf: Add a shared interface to get gpci version and capabilities
    powerpc/perf: Add 24x7 interface headers
    powerpc/perf: Add hv_gpci interface header
    powerpc: Add hvcalls for 24x7 and gpci (Get Performance Counter Info)
    sysfs: create bin_attributes under the requested group
    powerpc/perf: Enable BHRB access for EBB events
    powerpc/perf: Add BHRB constraint and IFM MMCRA handling for EBB
    ...

    Linus Torvalds
     

01 Apr, 2014

1 commit

  • Pull RCU updates from Ingo Molnar:
    "Main changes:

    - Torture-test changes, including refactoring of rcutorture and
    introduction of a vestigial locktorture.

    - Real-time latency fixes.

    - Documentation updates.

    - Miscellaneous fixes"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (77 commits)
    rcu: Provide grace-period piggybacking API
    rcu: Ensure kernel/rcu/rcu.h can be sourced/used stand-alone
    rcu: Fix sparse warning for rcu_expedited from kernel/ksysfs.c
    notifier: Substitute rcu_access_pointer() for rcu_dereference_raw()
    Documentation/memory-barriers.txt: Clarify release/acquire ordering
    rcutorture: Save kvm.sh output to log
    rcutorture: Add a lock_busted to test the test
    rcutorture: Place kvm-test-1-run.sh output into res directory
    rcutorture: Rename TREE_RCU-Kconfig.txt
    locktorture: Add kvm-recheck.sh plug-in for locktorture
    rcutorture: Gracefully handle NULL cleanup hooks
    locktorture: Add vestigial locktorture configuration
    rcutorture: Introduce "rcu" directory level underneath configs
    rcutorture: Rename kvm-test-1-rcu.sh
    rcutorture: Remove RCU dependencies from ver_functions.sh API
    rcutorture: Create CFcommon file for common Kconfig parameters
    rcutorture: Create config files for scripted test-the-test testing
    rcutorture: Add an rcu_busted to test the test
    locktorture: Add a lock-torture kernel module
    rcutorture: Abstract kvm-recheck.sh
    ...

    Linus Torvalds
     

11 Mar, 2014

1 commit


07 Mar, 2014

1 commit

  • Turn Anton's memcpy / copy_tofrom_user test into something that can
    live in tools/testing/selftests.

    It requires one turd in arch/powerpc/lib/memcpy_64.S, but it's pretty
    harmless IMHO.

    We are sailing very close to the wind with the feature macros. We define
    them to nothing, which currently means we get a few extra nops and
    include the unaligned calls.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     

27 Feb, 2014

1 commit

  • As mentioned at commit 5a5d8e48449, we can't terminate 'virsh console'
    with the default signal(INT). So it's better to set CLOSE_CONSOLE_SIGNAL
    in the kvm.conf.

    Link: http://lkml.kernel.org/r/8738jatylb.wl%satoru.takeuchi@gmail.com

    Signed-off-by: Satoru Takeuchi
    [ Typo fixed by ]
    Signed-off-by: MUNEDA Takahiro
    Signed-off-by: Steven Rostedt

    Satoru Takeuchi
     

24 Feb, 2014

13 commits


19 Feb, 2014

14 commits

  • Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • This commit adds a "(!)" flag after the number of CPUs required by a
    given test if that test requires more than the available number of CPUs.
    Note that these flags appear only when the number of CPUs is specified
    using the --cpus argument. In the absence of a --cpus argument, no
    tests are flagged.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • Running the standard set of rcutorture tests on 24 CPUs results in
    the following sub-optimal schedule:

    ----start batch----
    TREE07 16
    ----start batch----
    TREE08 16
    SRCU-P 8
    ----start batch----
    TREE01 8
    TREE02 8
    TREE03 8
    ----start batch----
    TREE04 8
    TREE05 8
    TREE06 8
    ----start batch----
    SRCU-N 4
    TINY01 1
    TINY02 1
    TREE09 1

    If one of the eight-CPU runs were to be moved into the first batch,
    the test suite would complete in four batches rather than five.

    This commit therefore uses a greedy algorithm to re-order the test
    entries so that the sequential batching will produce an optimal schedule
    in this case:

    ----start batch----
    TREE07 16
    SRCU-P 8
    ----start batch----
    TREE08 16
    TREE01 8
    ----start batch----
    TREE02 8
    TREE03 8
    TREE04 8
    ----start batch----
    TREE05 8
    TREE06 8
    SRCU-N 4
    TINY01 1
    TINY02 1
    TREE09 1

    Please note that this is still not an optimal bin-packing algorithm,
    however, it does produce optimal solutions for most common scenarios.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • This commit fixes handling numbering of multiple runs of the same test
    so as to disambiguate output.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • Actual rcutorture tests take considerable time and machine resources,
    so it is inconvenient to actually do an rcutorture run when optimizing
    the bin-packing algorithm. This commit therefore adds a --dryrun
    argument, which defaults to doing a run, but for which "sched"
    says to simply print the run schedule and "script" dumps the script
    without running it.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • The message complains about a build directory when it should instead
    be complaining about the results directory, so this commit fixes it.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • The rcutorture tests run by default range from using one CPU to using
    sixteen of them. Therefore, rcutorture testing could be sped up
    significantly simply by running the kernels in parallel. Building
    them in parallel is not all that helpful: "make -j" is usually a
    better bet. So this commit takes a new "--cpus" argument that
    specifies how many CPUs rcutorture is permitted to use for its
    parallel runs. The default of zero does sequential runs as before.

    The bin-packing is minimal, and will be grossly suboptimal for
    some configurations. However, powers of two work reasonably well.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • Both SRCU-P and SRCU-N specify eight CPUs, which results in four
    iterations for a parallel run on 32 CPUs. This commit reduces SRCU-N
    to four CPUs (but leaving SRCU-P at eight) to speed up parallel runs,
    while maintaining essentially the same test coverage.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • Currently, most qemu flags are calculated in kvm-test-1-rcu.sh,
    except that -nographics is set up by kvm.sh. This commit promotes
    one-stop shopping by consolidating the determination of qemu flags into
    kvm-test-1-rcu.sh.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • Parallel rcutorture runs is valuable on large systems, but it is not a
    good idea to do (say) five builds in parallel if each build believes it
    has the whole system at its disposal, especially if the system is shared.
    It is also bad to restrict the build to (say) a single CPU just because
    the corresponding rcutorture run uses only a single CPU. This commit
    therefore adds a kvm-test-1-rcu.sh ability to pause after the build
    completes, which will allow kvm.sh to do a number of builds serially
    (with each build thus having the full system at its disposal), then
    allow the rcutorture runs to proceed in parallel.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • Currently, most boot flags are calculated in kvm-test-1-rcu.sh, except
    that rcutorture.test_no_idle_hz and rcutorture.verbose are set up by
    kvm.sh. This commit promotes one-stop shopping by consolidating the
    determination of boot flags into kvm-test-1-rcu.sh.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • Although the script name and arguments are logged in the results directory,
    it is more convenient to see it in the output. This commit therefore
    adds the output of this information.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     
  • Sometime problems can manifest themselves as unusually slow grace periods.
    This commit therefore prints the number of rcutorture updates during the
    test and the number per second. These statistics are harvested from the
    config.out and qemu-cmd files, and are silently omitted if these files
    are not available, as would be the case if there was a build failure or
    a boot-time hang.

    Signed-off-by: Paul E. McKenney
    Reviewed-by: Josh Triplett

    Paul E. McKenney
     

24 Jan, 2014

1 commit

  • To help avoid an architecture failing to correctly check kernel/user
    boundaries when handling copy_to_user, copy_from_user, put_user, or
    get_user, perform some simple tests and fail to load if any of them
    behave unexpectedly.

    Specifically, this is to make sure there is a way to notice if things
    like what was fixed in commit 8404663f81d2 ("ARM: 7527/1: uaccess:
    explicitly check __user pointer when !CPU_USE_DOMAINS") ever regresses
    again, for any architecture.

    Additionally, adds new "user" selftest target, which loads this module.

    Signed-off-by: Kees Cook
    Cc: Rusty Russell
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     

21 Jan, 2014

2 commits

  • Pull RCU updates from Ingo Molnar:
    - add RCU torture scripts/tooling
    - static analysis improvements
    - update RCU documentation
    - miscellaneous fixes

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (52 commits)
    rcu: Remove "extern" from function declarations in kernel/rcu/rcu.h
    rcu: Remove "extern" from function declarations in include/linux/*rcu*.h
    rcu/torture: Dynamically allocate SRCU output buffer to avoid overflow
    rcu: Don't activate RCU core on NO_HZ_FULL CPUs
    rcu: Warn on allegedly impossible rcu_read_unlock_special() from irq
    rcu: Add an RCU_INITIALIZER for global RCU-protected pointers
    rcu: Make rcu_assign_pointer's assignment volatile and type-safe
    bonding: Use RCU_INIT_POINTER() for better overhead and for sparse
    rcu: Add comment on evaluate-once properties of rcu_assign_pointer().
    rcu: Provide better diagnostics for blocking in RCU callback functions
    rcu: Improve SRCU's grace-period comments
    rcu: Fix CONFIG_RCU_FANOUT_EXACT for odd fanout/leaf values
    rcu: Fix coccinelle warnings
    rcutorture: Stop tracking FSF's postal address
    rcutorture: Move checkarg to functions.sh
    rcutorture: Flag errors and warnings with color coding
    rcutorture: Record results from repeated runs of the same test scenario
    rcutorture: Test summary at end of run with less chattiness
    rcutorture: Update comment in kvm.sh listing typical RCU trace events
    rcutorture: Add tracing-enabled version of TREE08
    ...

    Linus Torvalds
     
  • Pull ktest updates from Steven Rostedt:
    "Here's some basic updates to ktest.pl. They include:

    - add config to modify the signal to terminate console
    - update to documentation (missing some config options)
    - add KERNEL_VERSION variable to use for other configs
    - add '=~' to let configs eval other configs
    - add BISECT_TRIES to run multiple tests per git bisect good"

    * tag 'ktest-v3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
    ktest: Add BISECT_TRIES to bisect test
    ktest: Add eval '=~' command to modify variables in config file
    ktest: Add special variable ${KERNEL_VERSION}
    ktest: Add documentation of CLOSE_CONSOLE_SIGNAL
    ktest: Make the signal to terminate the console configurable

    Linus Torvalds
     

19 Jan, 2014

1 commit

  • For those cases that it takes several tries to hit a bug, it would be
    useful for ktest.pl to try a test multiple times before it considers
    the test as a pass. To accomplish this, BISECT_TRIES ktest config
    option has been added. It is default to one, as most of the time a
    bisect only needs to try a test once. But the user can now up this
    to make ktest run a given test multiple times. The first failure
    that is detected will set a bisect bad. It only repeats on success.

    Note, as with all race bugs, there's no guarantee that if it succeeds,
    it is really a good bisect. But it helps in case the bug is somewhat
    reliable.

    You can set BISECT_TRIES to zero, and all tests will be considered
    good, unless you also set BISECT_MANUAL.

    Suggested-by: "Paul E. McKenney"
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     

12 Dec, 2013

2 commits

  • With the added variable ${KERNEL_VERSION}, it is useful to be
    able to use parts of it for other variables.

    For example, if you want to create a warnings file for each major
    kernel version to test sub versions against you can create
    your warnings file with like this:

    WARNINGS_FILE = warnings-file-${KERNEL_VERSION}

    But this may add 3.8.12 or something, and we want all 3.8.* to
    use the same file, and 3.10.* to use another file, and so on.
    With the eval command we can, by adding:

    WARNINGS_FILE =~ s/(-file-\d+\.\d+).*/$1/

    Which will chop off the extra characters after the 3.8.

    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Add a special variable that can be used in other variables called
    ${KERNEL_VERSION}. This will embed the current kernel version into
    the variable. For example:

    WARNINGS_FILE = ${OUTPUT_DIR}/warnings-${KERNEL_VERSION}

    If the current version is v3.8 then the WARNINGS_FILE will become

    ${OUTPUT_DIR}/warnings-v3.8

    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     

04 Dec, 2013

1 commit

  • All of the rcutorture scripts has the usual GPL header, which contains
    a long-obsolete postal address for FSF. To avoid the need to track the
    FSF office's movements, this commit substitutes the URL where GPL may
    be found.

    Reported-by: Greg KH
    Reported-by: Steven Rostedt
    Signed-off-by: Paul E. McKenney

    Paul E. McKenney