28 May, 2016

1 commit

  • Pull second batch of KVM updates from Radim Krčmář:
    "General:

    - move kvm_stat tool from QEMU repo into tools/kvm/kvm_stat (kvm_stat
    had nothing to do with QEMU in the first place -- the tool only
    interprets debugfs)

    - expose per-vm statistics in debugfs and support them in kvm_stat
    (KVM always collected per-vm statistics, but they were summarised
    into global statistics)

    x86:

    - fix dynamic APICv (VMX was improperly configured and a guest could
    access host's APIC MSRs, CVE-2016-4440)

    - minor fixes

    ARM changes from Christoffer Dall:

    - new vgic reimplementation of our horribly broken legacy vgic
    implementation. The two implementations will live side-by-side
    (with the new being the configured default) for one kernel release
    and then we'll remove the legacy one.

    - fix for a non-critical issue with virtual abort injection to guests"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (70 commits)
    tools: kvm_stat: Add comments
    tools: kvm_stat: Introduce pid monitoring
    KVM: Create debugfs dir and stat files for each VM
    MAINTAINERS: Add kvm tools
    tools: kvm_stat: Powerpc related fixes
    tools: Add kvm_stat man page
    tools: Add kvm_stat vm monitor script
    kvm:vmx: more complete state update on APICv on/off
    KVM: SVM: Add more SVM_EXIT_REASONS
    KVM: Unify traced vector format
    svm: bitwise vs logical op typo
    KVM: arm/arm64: vgic-new: Synchronize changes to active state
    KVM: arm/arm64: vgic-new: enable build
    KVM: arm/arm64: vgic-new: implement mapped IRQ handling
    KVM: arm/arm64: vgic-new: Wire up irqfd injection
    KVM: arm/arm64: vgic-new: Add vgic_v2/v3_enable
    KVM: arm/arm64: vgic-new: vgic_init: implement map_resources
    KVM: arm/arm64: vgic-new: vgic_init: implement vgic_init
    KVM: arm/arm64: vgic-new: vgic_init: implement vgic_create
    KVM: arm/arm64: vgic-new: vgic_init: implement kvm_vgic_hyp_init
    ...

    Linus Torvalds
     

27 May, 2016

1 commit

  • Pull kbuild updates from Michal Marek:

    - new option CONFIG_TRIM_UNUSED_KSYMS which does a two-pass build and
    unexports symbols which are not used in the current config [Nicolas
    Pitre]

    - several kbuild rule cleanups [Masahiro Yamada]

    - warning option adjustments for gcov etc [Arnd Bergmann]

    - a few more small fixes

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (31 commits)
    kbuild: move -Wunused-const-variable to W=1 warning level
    kbuild: fix if_change and friends to consider argument order
    kbuild: fix adjust_autoksyms.sh for modules that need only one symbol
    kbuild: fix ksym_dep_filter when multiple EXPORT_SYMBOL() on the same line
    gcov: disable -Wmaybe-uninitialized warning
    gcov: disable tree-loop-im to reduce stack usage
    gcov: disable for COMPILE_TEST
    Kbuild: disable 'maybe-uninitialized' warning for CONFIG_PROFILE_ALL_BRANCHES
    Kbuild: change CC_OPTIMIZE_FOR_SIZE definition
    kbuild: forbid kernel directory to contain spaces and colons
    kbuild: adjust ksym_dep_filter for some cmd_* renames
    kbuild: Fix dependencies for final vmlinux link
    kbuild: better abstract vmlinux sequential prerequisites
    kbuild: fix call to adjust_autoksyms.sh when output directory specified
    kbuild: Get rid of KBUILD_STR
    kbuild: rename cmd_as_s_S to cmd_cpp_s_S
    kbuild: rename cmd_cc_i_c to cmd_cpp_i_c
    kbuild: drop redundant "PHONY += FORCE"
    kbuild: delete unnecessary "@:"
    kbuild: mark help target as PHONY
    ...

    Linus Torvalds
     

26 May, 2016

3 commits

  • Pull perf updates from Ingo Molnar:
    "Mostly tooling and PMU driver fixes, but also a number of late updates
    such as the reworking of the call-chain size limiting logic to make
    call-graph recording more robust, plus tooling side changes for the
    new 'backwards ring-buffer' extension to the perf ring-buffer"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
    perf record: Read from backward ring buffer
    perf record: Rename variable to make code clear
    perf record: Prevent reading invalid data in record__mmap_read
    perf evlist: Add API to pause/resume
    perf trace: Use the ptr->name beautifier as default for "filename" args
    perf trace: Use the fd->name beautifier as default for "fd" args
    perf report: Add srcline_from/to branch sort keys
    perf evsel: Record fd into perf_mmap
    perf evsel: Add overwrite attribute and check write_backward
    perf tools: Set buildid dir under symfs when --symfs is provided
    perf trace: Only auto set call-graph to "dwarf" when syscalls are being traced
    perf annotate: Sort list of recognised instructions
    perf annotate: Fix identification of ARM blt and bls instructions
    perf tools: Fix usage of max_stack sysctl
    perf callchain: Stop validating callchains by the max_stack sysctl
    perf trace: Fix exit_group() formatting
    perf top: Use machine->kptr_restrict_warned
    perf trace: Warn when trying to resolve kernel addresses with kptr_restrict=1
    perf machine: Do not bail out if not managing to read ref reloc symbol
    perf/x86/intel/p4: Trival indentation fix, remove space
    ...

    Linus Torvalds
     
  • Pull objtool build fix from Ingo Molnar:
    "An libtool fix for older libelf versions"

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    objtool: Allow building with older libelf

    Linus Torvalds
     
  • Pull parisc updates from Helge Deller:

    - Add native high-resolution timing code for sched_clock() and other
    timing functions based on the processor internal cr16 cycle counters

    - Add syscall tracepoint support

    - Add regset support

    - Speed up get_user() and put_user() functions

    - Updated futex.h to match generic implementation (John David Anglin)

    - A few smaller ftrace build fixes

    - Fixed thuge-gen kernel self test to utilize architectured MAP_HUGETLB
    value

    - Added parisc architecture to seccomp_bpf kernel self test

    - Various typo fixes (Andrea Gelmini)

    * 'parisc-4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Whitespace cleanups in unistd.h
    parisc: Use long jump to reach ftrace_return_to_handler()
    parisc: Fix typo in fpudispatch.c
    parisc: Fix typos in eisa_eeprom.h
    parisc: Fix typo in ldcw.h
    parisc: Fix typo in pdc.h
    parisc: Update futex.h to match generic implementation
    parisc: Merge ftrace C-helper and assembler functions into .text.hot section
    selftests/thuge-gen: Use platform specific MAP_HUGETLB value
    parisc: Add native high-resolution sched_clock() implementation
    parisc: Add ARCH_TRACEHOOK and regset support
    parisc: Add 64bit get_user() and put_user() for 32bit kernel
    parisc: Simplify and speed up get_user() and put_user()
    parisc: Add syscall tracepoint support

    Linus Torvalds
     

25 May, 2016

6 commits

  • A lot of the code works with the perf events about which only sparse
    documentation was available until 2012. Having that information now,
    we can clarify what is done in the code.

    Signed-off-by: Janosch Frank
    Signed-off-by: Paolo Bonzini

    Janosch Frank
     
  • Having stats for single VMs can help to determine the problem of a VM
    without the need of running other tools like perf.

    The tracepoints already allowed pid level monitoring, but kvm_stat
    didn't have support for it till now. Support for the newly implemented
    debugfs vm monitoring was also implemented.

    Signed-off-by: Janosch Frank
    Signed-off-by: Paolo Bonzini

    Janosch Frank
     
  • kvm_stat script is failing to execute on powerpc :
    # ./kvm_stat
    Traceback (most recent call last):
    File "./kvm_stat", line 825, in
    main()
    File "./kvm_stat", line 813, in main
    providers = get_providers(options)
    File "./kvm_stat", line 778, in get_providers
    providers.append(TracepointProvider())
    File "./kvm_stat", line 416, in __init__
    self.filters = get_filters()
    File "./kvm_stat", line 315, in get_filters
    if ARCH.exit_reasons:
    AttributeError: 'ArchPPC' object has no attribute 'exit_reasons'

    This is because, its trying to access a non-defined attribute.

    Also, the IOCTL number of RESET is incorrect for powerpc. The correct
    number has been added.

    Signed-off-by: Hemant Kumar
    Signed-off-by: Paolo Bonzini

    Hemant Kumar
     
  • Converted from the Texinfo source in QEMU to asciidoc. The a2x
    incantation was provided by Janosch Frank.

    Signed-off-by: Paolo Bonzini

    Paolo Bonzini
     
  • This tool displays kvm vm exit statistics to ease vm monitoring. It
    takes its data from the kvm debugfs files or the vm tracepoints and
    outputs them as a curses ui or simple text.

    It was moved from qemu, as it is dependent on the kernel whereas qemu
    works with a large number of kernel versions, some of which may break
    the script.

    Signed-off-by: Janosch Frank
    Signed-off-by: Paolo Bonzini

    Janosch Frank
     
  • Pull virtio updates from Michael Tsirkin:
    "Looks like a quiet cycle for virtio. There's a new inorder option for
    the ringtest tool, and a bugfix for balloon for ppc platforms when
    using virtio 1 mode"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    ringtest: pass buf != NULL
    virtio_balloon: fix PFN format for virtio-1
    virtio: add inorder option

    Linus Torvalds
     

24 May, 2016

9 commits

  • …/git/shuah/linux-kselftest

    Pull kselftest updates from Shuah Khan:
    "This update for Kselftest adds:

    - a new ftrace testcase
    - fixes for ftrace and intel_pstate tests"

    * tag 'linux-kselftest-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    tools: testing: define the _GNU_SOURCE macro
    kselftests/ftrace: Add a test case for event pid filtering
    kselftests/ftrace: Detect tracefs mount point

    Linus Torvalds
     
  • Pull tracing fix from Steven Rostedt:
    "Reviewing the selftest I recently submitted, I realize that the second
    part of it uses my old hack to get the PID of the spawned background
    tasks, which doesn't work for all shells, instead of the common use of
    $!"

    * tag 'trace-v4.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    ftracetest: Use proper logic to find process PID

    Linus Torvalds
     
  • Introduce rb_find_range() to find start and end position from a backward
    ring buffer.

    Signed-off-by: Wang Nan
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1463987628-163563-5-git-send-email-wangnan0@huawei.com
    Signed-off-by: He Kuang
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • record__mmap_read() writes data from ring buffer into perf.data. 'head'
    is maintained by the kernel, points to the last written record.
    'old' is maintained by perf, points to the record read in previous
    round. record__mmap_read() saves data from 'old' to 'head' to
    perf.data.

    The names of these variables are not very intutive. In addition,
    when dealing with backward writing ring buffer, the md->prev pointer
    should point to 'head' instead of the last byte it got.

    Add 'start' and 'end' pointer to make code clear and set md->prev to
    'head' instead of the moved 'old' pointer. This patch doesn't change
    behavior since:

    buf = &data[old & md->mask];
    size = head - old;
    old += size;
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1463987628-163563-4-git-send-email-wangnan0@huawei.com
    Signed-off-by: He Kuang
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • When record__mmap_read() requires data more than the size of ring
    buffer, drop those data to avoid accessing invalid memory.

    This can happen when reading from overwritable ring buffer, which
    should be avoided. However, check this for robustness.

    Signed-off-by: Wang Nan
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1463987628-163563-3-git-send-email-wangnan0@huawei.com
    Signed-off-by: He Kuang
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • perf_evlist__toggle_{pause,resume}() are introduced to pause/resume
    events in an evlist. Utilize PERF_EVENT_IOC_PAUSE_OUTPUT ioctl.

    Following commits use them to ensure overwrite ring buffer is paused
    before reading.

    Signed-off-by: Wang Nan
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Namhyung Kim
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1463987628-163563-2-git-send-email-wangnan0@huawei.com
    Signed-off-by: He Kuang
    [ Return -1, like all other ioctl() usage in evlist.c, rename 'pause'
    arg to avoid breaking the build on ubuntu 12.04 and other old systems ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • Auto-attach the ptr->name beautifier to syscall args "filename", "path"
    and "pathname" if they are of type "const char *".

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-jxii4qmcgoppftv0zdvml9d7@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Noticed when the 'setsockopt' 'fd' arg wasn't being formatted via
    the SCA_FD beautifier, so just remove the setting of "fd" args to
    SCA_FD and do it when reading the syscall info, like we do for
    args of type "pid_t", i.e. "fd" as the name should be enough as
    the decision to use the SFA_FD beautifier. For odd cases we can
    just do it explicitely.

    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Milian Wolff
    Cc: Namhyung Kim
    Cc: Wang Nan
    Link: http://lkml.kernel.org/n/tip-0qissgetiuqmqyj4b6ancmpn@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Pull libnvdimm updates from Dan Williams:
    "The bulk of this update was stabilized before the merge window and
    appeared in -next. The "device dax" implementation was revised this
    week in response to review feedback, and to address failures detected
    by the recently expanded ndctl unit test suite.

    Not included in this pull request are two dax topic branches (dax
    error handling, and dax radix-tree locking). These topics were
    deferred to get a few more days of -next integration testing, and to
    coordinate a branch baseline with Ted and the ext4 tree. Vishal and
    Ross will send the error handling and locking topics respectively in
    the next few days.

    This branch has received a positive build result from the kbuild robot
    across 226 configs.

    Summary:

    - Device DAX for persistent memory: Device DAX is the device-centric
    analogue of Filesystem DAX (CONFIG_FS_DAX). It allows memory
    ranges to be allocated and mapped without need of an intervening
    file system. Device DAX is strict, precise and predictable.
    Specifically this interface:

    a) Guarantees fault granularity with respect to a given page size
    (pte, pmd, or pud) set at configuration time.

    b) Enforces deterministic behavior by being strict about what
    fault scenarios are supported.

    Persistent memory is the first target, but the mechanism is also
    targeted for exclusive allocations of performance/feature
    differentiated memory ranges.

    - Support for the HPE DSM (device specific method) command formats.
    This enables management of these first generation devices until a
    unified DSM specification materializes.

    - Further ACPI 6.1 compliance with support for the common dimm
    identifier format.

    - Various fixes and cleanups across the subsystem"

    * tag 'libnvdimm-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (40 commits)
    libnvdimm, dax: fix deletion
    libnvdimm, dax: fix alignment validation
    libnvdimm, dax: autodetect support
    libnvdimm: release ida resources
    Revert "block: enable dax for raw block devices"
    /dev/dax, core: file operations and dax-mmap
    /dev/dax, pmem: direct access to persistent memory
    libnvdimm: stop requiring a driver ->remove() method
    libnvdimm, dax: record the specified alignment of a dax-device instance
    libnvdimm, dax: reserve space to store labels for device-dax
    libnvdimm, dax: introduce device-dax infrastructure
    nfit: add sysfs dimm 'family' and 'dsm_mask' attributes
    tools/testing/nvdimm: ND_CMD_CALL support
    nfit: disable vendor specific commands
    nfit: export subsystem ids as attributes
    nfit: fix format interface code byte order per ACPI6.1
    nfit, libnvdimm: limited/whitelisted dimm command marshaling mechanism
    nfit, libnvdimm: clarify "commands" vs "_DSMs"
    libnvdimm: increase max envelope size for ioctl
    acpi/nfit: Add sysfs "id" for NVDIMM ID
    ...

    Linus Torvalds
     

23 May, 2016

7 commits

  • Add "srcline_from" and "srcline_to" branch sort keys that allow to show
    the source lines of a branch.

    That makes it much easier to track down where particular branches happen
    in the program, for example to examine branch mispredictions, or to
    associate it with cycle counts:

    % perf record -b -e cycles:p ./tcall
    % perf report --sort srcline_from,srcline_to,mispredict
    ...
    15.10% tcall.c:18 tcall.c:10 N
    14.83% tcall.c:11 tcall.c:5 N
    14.12% tcall.c:7 tcall.c:12 N
    14.04% tcall.c:12 tcall.c:5 N
    12.42% tcall.c:17 tcall.c:18 N
    12.39% tcall.c:7 tcall.c:13 N
    12.27% tcall.c:13 tcall.c:17 N
    ...

    % perf report --sort srcline_from,srcline_to,cycles
    ...
    17.12% tcall.c:18 tcall.c:11 1
    17.01% tcall.c:12 tcall.c:6 1
    16.98% tcall.c:11 tcall.c:6 1
    15.91% tcall.c:17 tcall.c:18 1
    6.38% tcall.c:7 tcall.c:17 7
    4.80% tcall.c:7 tcall.c:12 8
    4.21% tcall.c:7 tcall.c:17 8
    2.67% tcall.c:7 tcall.c:12 7
    2.62% tcall.c:7 tcall.c:12 10
    2.10% tcall.c:7 tcall.c:17 9
    1.58% tcall.c:7 tcall.c:12 6
    1.44% tcall.c:7 tcall.c:12 5
    1.38% tcall.c:7 tcall.c:12 9
    1.06% tcall.c:7 tcall.c:17 13
    1.05% tcall.c:7 tcall.c:12 4
    1.01% tcall.c:7 tcall.c:17 6

    Open issues:

    - Some kernel symbols get misresolved.

    Signed-off-by: Andi Kleen
    Acked-by: Jiri Olsa
    Tested-by: Arnaldo Carvalho de Melo
    Link: http://lkml.kernel.org/r/1463775308-32748-1-git-send-email-andi@firstfloor.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Andi Kleen
     
  • Half of the test in instance-event.tc was updated to use $! to find the PID
    of the previous background process that was launched, but the second part of
    the test still used the parsing of "jobs", which does not work on all shells
    like $! does.

    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Pull motr tracing updates from Steven Rostedt:
    "Three more changes.

    - I forgot that I had another selftest to stress test the ftrace
    instance creation. It was actually suppose to go into the 4.6
    merge window, but I never committed it. I almost forgot about it
    again, but noticed it was missing from your tree.

    - Soumya PN sent me a clean up patch to not disable interrupts when
    taking the tasklist_lock for read, as it's unnecessary because that
    lock is never taken for write in irq context.

    - Newer gcc's can cause the jump in the function_graph code to the
    global ftrace_stub label to be a short jump instead of a long one.
    As that jump is dynamically converted to jump to the trace code to
    do function graph tracing, and that conversion expects a long jump
    it can corrupt the ftrace_stub itself (it's directly after that
    call). One way to prevent gcc from using a short jump is to
    declare the ftrace_stub as a weak function, which we do here to
    keep gcc from optimizing too much"

    * tag 'trace-v4.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    ftrace/x86: Set ftrace_stub to weak to prevent gcc from using short jumps to it
    ftrace: Don't disable irqs when taking the tasklist_lock read_lock
    ftracetest: Add instance created, delete, read and enable event test

    Linus Torvalds
     
  • Do not hardcode MAP_HUGETLB to 0x40000, since quite some architectures
    use a different value.

    Tested with a parisc architecture 64bit kernel.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • By adding TRACEHOOK support we now get a clean user interface to access
    registers via PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS and
    PTRACE_SETFPREGS.

    The user-visible regset struct user_regs_struct and user_fp_struct are
    modelled similiar to x86 and can be accessed via PTRACE_GETREGSET.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • just a stub pointer for now.

    Signed-off-by: Michael S. Tsirkin

    Michael S. Tsirkin
     
  • skips ring accesses but drops out of order support

    Signed-off-by: Michael S. Tsirkin

    Michael S. Tsirkin
     

22 May, 2016

1 commit


21 May, 2016

12 commits

  • Merge more updates from Andrew Morton:

    - the rest of MM

    - KASAN updates

    - procfs updates

    - exit, fork updates

    - printk updates

    - lib/ updates

    - radix-tree testsuite updates

    - checkpatch updates

    - kprobes updates

    - a few other misc bits

    * emailed patches from Andrew Morton : (162 commits)
    samples/kprobes: print out the symbol name for the hooks
    samples/kprobes: add a new module parameter
    kprobes: add the "tls" argument for j_do_fork
    init/main.c: simplify initcall_blacklisted()
    fs/efs/super.c: fix return value
    checkpatch: improve --git shortcut
    checkpatch: reduce number of `git log` calls with --git
    checkpatch: add support to check already applied git commits
    checkpatch: add --list-types to show message types to show or ignore
    checkpatch: advertise the --fix and --fix-inplace options more
    checkpatch: whine about ACCESS_ONCE
    checkpatch: add test for keywords not starting on tabstops
    checkpatch: improve CONSTANT_COMPARISON test for structure members
    checkpatch: add PREFER_IS_ENABLED test
    lib/GCD.c: use binary GCD algorithm instead of Euclidean
    radix-tree: free up the bottom bit of exceptional entries for reuse
    dax: move RADIX_DAX_ definitions to dax.c
    radix-tree: make radix_tree_descend() more useful
    radix-tree: introduce radix_tree_replace_clear_tags()
    radix-tree: tidy up __radix_tree_create()
    ...

    Linus Torvalds
     
  • Pull staging and IIO driver updates from Greg KH:
    "Here's the big staging and iio driver update for 4.7-rc1.

    I think we almost broke even with this release, only adding a few more
    lines than we removed, which isn't bad overall given that there's a
    bunch of new iio drivers added.

    The Lustre developers seem to have woken up from their sleep and have
    been doing a great job in cleaning up the code and pruning unused or
    old cruft, the filesystem is almost readable :)

    Other than that, just a lot of basic coding style cleanups in the
    churn. All have been in linux-next for a while with no reported
    issues"

    * tag 'staging-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (938 commits)
    Staging: emxx_udc: emxx_udc: fixed coding style issue
    staging/gdm724x: fix "alignment should match open parenthesis" issues
    staging/gdm724x: Fix avoid CamelCase
    staging: unisys: rename misleading var ii with frag
    staging: unisys: visorhba: switch success handling to error handling
    staging: unisys: visorhba: main path needs to flow down the left margin
    staging: unisys: visorinput: handle_locking_key() simplifications
    staging: unisys: visorhba: fail gracefully for thread creation failures
    staging: unisys: visornic: comment restructuring and removing bad diction
    staging: unisys: fix format string %Lx to %llx for u64
    staging: unisys: remove unused struct members
    staging: unisys: visorchannel: correct variable misspelling
    staging: unisys: visorhba: replace functionlike macro with function
    staging: dgnc: Need to check for NULL of ch
    staging: dgnc: remove redundant condition check
    staging: dgnc: fix 'line over 80 characters'
    staging: dgnc: clean up the dgnc_get_modem_info()
    staging: lustre: lnet: enable configuration per NI interface
    staging: lustre: o2iblnd: properly set ibr_why
    staging: lustre: o2iblnd: remove last of kiblnd_tunables_fini
    ...

    Linus Torvalds
     
  • Device DAX is the device-centric analogue of Filesystem DAX
    (CONFIG_FS_DAX). It allows memory ranges to be allocated and mapped
    without need of an intervening file system. Device DAX is strict,
    precise and predictable. Specifically this interface:

    1/ Guarantees fault granularity with respect to a given page size (pte,
    pmd, or pud) set at configuration time.

    2/ Enforces deterministic behavior by being strict about what fault
    scenarios are supported.

    For example, by forcing MADV_DONTFORK semantics and omitting MAP_PRIVATE
    support device-dax guarantees that a mapping always behaves/performs the
    same once established. It is the "what you see is what you get" access
    mechanism to differentiated memory vs filesystem DAX which has
    filesystem specific implementation semantics.

    Persistent memory is the first target, but the mechanism is also
    targeted for exclusive allocations of performance differentiated memory
    ranges.

    This commit is limited to the base device driver infrastructure to
    associate a dax device with pmem range.

    Cc: Jeff Moyer
    Cc: Christoph Hellwig
    Cc: Andrew Morton
    Cc: Dave Hansen
    Cc: Ross Zwisler
    Reviewed-by: Johannes Thumshirn
    Signed-off-by: Dan Williams

    Dan Williams
     
  • Pull char / misc driver updates from Greg KH:
    "Here's the big char and misc driver update for 4.7-rc1.

    Lots of different tiny driver subsystems have updates here with new
    drivers and functionality. Details in the shortlog.

    All have been in linux-next with no reported issues for a while"

    * tag 'char-misc-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (125 commits)
    mcb: Delete num_cells variable which is not required
    mcb: Fixed bar number assignment for the gdd
    mcb: Replace ioremap and request_region with the devm version
    mcb: Implement bus->dev.release callback
    mcb: export bus information via sysfs
    mcb: Correctly initialize the bus's device
    mei: bus: call mei_cl_read_start under device lock
    coresight: etb10: adjust read pointer only when needed
    coresight: configuring ETF in FIFO mode when acting as link
    coresight: tmc: implementing TMC-ETF AUX space API
    coresight: moving struct cs_buffers to header file
    coresight: tmc: keep track of memory width
    coresight: tmc: make sysFS and Perf mode mutually exclusive
    coresight: tmc: dump system memory content only when needed
    coresight: tmc: adding mode of operation for link/sinks
    coresight: tmc: getting rid of multiple read access
    coresight: tmc: allocating memory when needed
    coresight: tmc: making prepare/unprepare functions generic
    coresight: tmc: splitting driver in ETB/ETF and ETR components
    coresight: tmc: cleaning up header file
    ...

    Linus Torvalds
     
  • Pull USB updates from Greg KH:
    "Here's the big pull request for USB and PHY drivers for 4.7-rc1

    Full details in the shortlog, but it's the normal major gadget driver
    updates, phy updates, new usbip code, as well as a bit of lots of
    other stuff.

    All have been in linux-next with no reported issues"

    * tag 'usb-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (164 commits)
    USB: serial: ti_usb_3410_5052: add MOXA UPORT 11x0 support
    USB: serial: fix minor-number allocation
    USB: serial: quatech2: fix use-after-free in probe error path
    USB: serial: mxuport: fix use-after-free in probe error path
    USB: serial: keyspan: fix debug and error messages
    USB: serial: keyspan: fix URB unlink
    USB: serial: keyspan: fix use-after-free in probe error path
    USB: serial: io_edgeport: fix memory leaks in probe error path
    USB: serial: io_edgeport: fix memory leaks in attach error path
    usb: Remove unnecessary space before operator ','.
    usb: Remove unnecessary space before open square bracket.
    USB: FHCI: avoid redundant condition
    usb: host: xhci-rcar: Avoid long wait in xhci_reset()
    usb/host/fotg210: remove dead code in create_sysfs_files
    usb: wusbcore: Do not initialise statics to 0.
    usb: wusbcore: Remove space before ',' and '(' .
    USB: serial: cp210x: clean up CRTSCTS flag code
    USB: serial: cp210x: get rid of magic numbers in CRTSCTS flag code
    USB: serial: cp210x: fix hardware flow-control disable
    USB: serial: option: add even more ZTE device ids
    ...

    Linus Torvalds
     
  • Convert radix_tree_next_chunk to use 'child' instead of 'slot' as the
    name of the child node. Also use node_maxindex() where it makes sense.

    The 'rnode' variable was unnecessary; it doesn't overlap in usage with
    'node', so we can just use 'node' the whole way through the function.

    Improve the testcase to start the walk from every index in the carefully
    constructed tree, and to accept any index within the range covered by
    the entry.

    Signed-off-by: Matthew Wilcox
    Cc: Konstantin Khlebnikov
    Cc: Kirill Shutemov
    Cc: Jan Kara
    Cc: Neil Brown
    Cc: Ross Zwisler
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • As with indirect_to_ptr(), ptr_to_indirect() and
    RADIX_TREE_INDIRECT_PTR, change radix_tree_is_indirect_ptr() to
    radix_tree_is_internal_node().

    Signed-off-by: Matthew Wilcox
    Cc: Konstantin Khlebnikov
    Cc: Kirill Shutemov
    Cc: Jan Kara
    Cc: Neil Brown
    Cc: Ross Zwisler
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Mirrors the earlier commit introducing node_to_entry().

    Also change the type returned to be a struct radix_tree_node pointer.
    That lets us simplify a couple of places in the radix tree shrink &
    extend paths where we could convert an entry into a pointer, modify the
    node, then convert the pointer back into an entry.

    Signed-off-by: Matthew Wilcox
    Cc: Konstantin Khlebnikov
    Cc: Kirill Shutemov
    Cc: Jan Kara
    Cc: Neil Brown
    Cc: Ross Zwisler
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • verify_node() can use node->shift instead of the height.

    tree_verify_min_height() can be converted over to using node_maxindex()
    and shift_maxindex() instead of radix_tree_maxindex().

    Signed-off-by: Matthew Wilcox
    Cc: Konstantin Khlebnikov
    Cc: Kirill Shutemov
    Cc: Jan Kara
    Cc: Neil Brown
    Cc: Ross Zwisler
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • - Print which indices are covered by every leaf entry
    - Print sibling entries
    - Print the node pointer instead of the slot entry
    - Build by default in userspace, and make it accessible to the test-suite

    Signed-off-by: Ross Zwisler
    Signed-off-by: Matthew Wilcox
    Cc: Konstantin Khlebnikov
    Cc: Kirill Shutemov
    Cc: Jan Kara
    Cc: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ross Zwisler
     
  • I had previously decided that tagging a single multiorder entry would
    count as tagging 2^order entries for the purposes of 'nr_to_tag'. I now
    believe that decision to be a mistake, and it should count as a single
    entry. That's more likely to be what callers expect.

    When walking back up the tree from a newly-tagged entry, the current
    code assumed we were starting from the lowest level of the tree; if we
    have a multiorder entry with an order at least RADIX_TREE_MAP_SHIFT in
    size then we need to shift the index by 'shift' before we start walking
    back up the tree, or we will end up not setting tags on higher entries,
    and then mistakenly thinking that entries below a certain point in the
    tree are not tagged.

    If the first index we examine is a sibling entry of a tagged multiorder
    entry, we were not tagging it. We need to examine the canonical entry,
    and the easiest way to do that is to use radix_tree_descend(). We then
    have to skip over sibling slots when looking for the next entry in the
    tree or we will end up walking back to the canonical entry.

    Add several tests for radix_tree_range_tag_if_tagged().

    Signed-off-by: Matthew Wilcox
    Reviewed-by: Ross Zwisler
    Cc: Konstantin Khlebnikov
    Cc: Kirill Shutemov
    Cc: Jan Kara
    Cc: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Add a unit test that provides coverage for the bug fixed in the commit
    entitled "radix-tree: rewrite radix_tree_locate_item fix" from Hugh
    Dickins. I've verified that this test fails before his patch due to
    miscalculated 'index' values in __locate() in lib/radix-tree.c, and
    passes with his fix.

    Link: http://lkml.kernel.org/r/1462307263-20623-1-git-send-email-ross.zwisler@linux.intel.com
    Signed-off-by: Ross Zwisler
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ross Zwisler