18 Jan, 2016

1 commit

  • …/git/shuah/linux-kselftest

    Pull kselftest updates from Shuah Khan:
    "This 14 patch update:

    - adds a new test for intel_pstate driver
    - adds empty string and async test cases to firmware class tests
    - fixes and cleans up several existing tests"

    * tag 'linux-kselftest-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests: firmware: add empty string and async tests
    firmware: actually return NULL on failed request_firmware_nowait()
    test: firmware_class: add asynchronous request trigger
    test: firmware_class: use kstrndup() where appropriate
    test: firmware_class: report errors properly on failure
    selftests/seccomp: fix 32-bit build warnings
    add breakpoints/.gitignore
    add ptrace/.gitignore
    update .gitignore in selftests/timers
    update .gitignore in selftests/vm
    tools, testing, add test for intel_pstate driver
    selftest/ipc: actually test it
    selftests/capabilities: actually test it
    selftests/capabilities: clean up for Makefile

    Linus Torvalds
     

16 Jan, 2016

1 commit

  • Pull powerpc updates from Michael Ellerman:
    "Core:
    - Ground work for the new Power9 MMU from Aneesh Kumar K.V
    - Optimise FP/VMX/VSX context switching from Anton Blanchard

    Misc:
    - Various cleanups from Krzysztof Kozlowski, John Ogness, Rashmica
    Gupta, Russell Currey, Gavin Shan, Daniel Axtens, Michael Neuling,
    Andrew Donnellan
    - Allow wrapper to work on non-english system from Laurent Vivier
    - Add rN aliases to the pt_regs_offset table from Rashmica Gupta
    - Fix module autoload for rackmeter & axonram drivers from Luis de
    Bethencourt
    - Include KVM guest test in all interrupt vectors from Paul Mackerras
    - Fix DSCR inheritance over fork() from Anton Blanchard
    - Make value-returning atomics & {cmp}xchg* & their atomic_ versions
    fully ordered from Boqun Feng
    - Print MSR TM bits in oops messages from Michael Neuling
    - Add TM signal return & invalid stack selftests from Michael Neuling
    - Limit EPOW reset event warnings from Vipin K Parashar
    - Remove the Cell QPACE code from Rashmica Gupta
    - Append linux_banner to exception information in xmon from Rashmica
    Gupta
    - Add selftest to check if VSRs are corrupted from Rashmica Gupta
    - Remove broken GregorianDay() from Daniel Axtens
    - Import Anton's context_switch2 benchmark into selftests from
    Michael Ellerman
    - Add selftest script to test HMI functionality from Daniel Axtens
    - Remove obsolete OPAL v2 support from Stewart Smith
    - Make enter_rtas() private from Michael Ellerman
    - PPR exception cleanups from Michael Ellerman
    - Add page soft dirty tracking from Laurent Dufour
    - Add support for Nvlink NPUs from Alistair Popple
    - Add support for kexec on 476fpe from Alistair Popple
    - Enable kernel CPU dlpar from sysfs from Nathan Fontenot
    - Copy only required pieces of the mm_context_t to the paca from
    Michael Neuling
    - Add a kmsg_dumper that flushes OPAL console output on panic from
    Russell Currey
    - Implement save_stack_trace_regs() to enable kprobe stack tracing
    from Steven Rostedt
    - Add HWCAP bits for Power9 from Michael Ellerman
    - Fix _PAGE_PTE breaking swapoff from Aneesh Kumar K.V
    - Fix _PAGE_SWP_SOFT_DIRTY breaking swapoff from Hugh Dickins
    - scripts/recordmcount.pl: support data in text section on powerpc
    from Ulrich Weigand
    - Handle R_PPC64_ENTRY relocations in modules from Ulrich Weigand

    cxl:
    - cxl: Fix possible idr warning when contexts are released from
    Vaibhav Jain
    - cxl: use correct operator when writing pcie config space values
    from Andrew Donnellan
    - cxl: Fix DSI misses when the context owning task exits from Vaibhav
    Jain
    - cxl: fix build for GCC 4.6.x from Brian Norris
    - cxl: use -Werror only with CONFIG_PPC_WERROR from Brian Norris
    - cxl: Enable PCI device ID for future IBM CXL adapter from Uma
    Krishnan

    Freescale:
    - Freescale updates from Scott: Highlights include moving QE code out
    of arch/powerpc (to be shared with arm), device tree updates, and
    minor fixes"

    * tag 'powerpc-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (149 commits)
    powerpc/module: Handle R_PPC64_ENTRY relocations
    scripts/recordmcount.pl: support data in text section on powerpc
    powerpc/powernv: Fix OPAL_CONSOLE_FLUSH prototype and usages
    powerpc/mm: fix _PAGE_SWP_SOFT_DIRTY breaking swapoff
    powerpc/mm: Fix _PAGE_PTE breaking swapoff
    cxl: Enable PCI device ID for future IBM CXL adapter
    cxl: use -Werror only with CONFIG_PPC_WERROR
    cxl: fix build for GCC 4.6.x
    powerpc: Add HWCAP bits for Power9
    powerpc/powernv: Reserve PE#0 on NPU
    powerpc/powernv: Change NPU PE# assignment
    powerpc/powernv: Fix update of NVLink DMA mask
    powerpc/powernv: Remove misleading comment in pci.c
    powerpc: Implement save_stack_trace_regs() to enable kprobe stack tracing
    powerpc: Fix build break due to paca mm_context_t changes
    cxl: Fix DSI misses when the context owning task exits
    MAINTAINERS: Update Scott Wood's e-mail address
    powerpc/powernv: Fix minor off-by-one error in opal_mce_check_early_recovery()
    powerpc: Fix style of self-test config prompts
    powerpc/powernv: Only delay opal_rtc_read() retry when necessary
    ...

    Linus Torvalds
     

15 Jan, 2016

2 commits

  • Pull x86 fixes from Ingo Molnar:
    "Misc changes:
    - fix lguest bug
    - fix /proc/meminfo output on certain configs
    - fix pvclock bug
    - fix reboot on certain iMacs by adding new reboot quirk
    - fix bootup crash
    - fix FPU boot line option parsing
    - add more x86 self-tests
    - small cleanups, documentation improvements, etc"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/cpu/amd: Remove an unneeded condition in srat_detect_node()
    x86/vdso/pvclock: Protect STABLE check with the seqcount
    x86/mm: Improve switch_mm() barrier comments
    selftests/x86: Test __kernel_sigreturn and __kernel_rt_sigreturn
    x86/reboot/quirks: Add iMac10,1 to pci_reboot_dmi_table[]
    lguest: Map switcher text R/O
    x86/boot: Hide local labels in verify_cpu()
    x86/fpu: Disable AVX when eagerfpu is off
    x86/fpu: Disable MPX when eagerfpu is off
    x86/fpu: Disable XGETBV1 when no XSAVE
    x86/fpu: Fix early FPU command-line parsing
    x86/mm: Use PAGE_ALIGNED instead of IS_ALIGNED
    selftests/x86: Disable the ldt_gdt_64 test for now
    x86/mm/pat: Make split_page_count() check for empty levels to fix /proc/meminfo output
    x86/boot: Double BOOT_HEAP_SIZE to 64KB
    x86/mm: Add barriers and document switch_mm()-vs-flush synchronization

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "Tooling fixes, the biggest patch is one that decouples the kernel's
    list.h from tooling list.h"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
    perf tools: Fallback to srcdir/Documentation/tips.txt
    perf ui/tui: Print helpline message as is
    perf tools: Set and pass DOCDIR to builtin-report.c
    perf tools: Add file_only config option to strlist
    perf tools: Add more usage tips
    perf record: Add --buildid-all option
    tools subcmd: Add missing NORETURN define for parse-options.h
    tools: Fix formatting of the "make -C tools" help message
    tools: Make list.h self-sufficient
    perf tools: Fix mmap2 event allocation in synthesize code
    perf stat: Fix recort_usage typo
    perf test: Reset err after using it hold errcode in hist testcases
    perf test: Fix false TEST_OK result for 'perf test hist'
    tools build: Add BPF feature check to test-all
    perf bpf: Fix build breakage due to libbpf
    tools: Move Makefile.arch from perf/config to tools/scripts
    perf tools: Fix PowerPC native building
    perf tools: Fix phony build target for build-test
    perf tools: Add -lutil in python lib list for broken python-config
    perf tools: Add missing sources to perf's MANIFEST
    ...

    Linus Torvalds
     

14 Jan, 2016

3 commits

  • Pull libnvdimm updates from Dan Williams:
    "The bulk of this has appeared in -next and independently received a
    build success notification from the kbuild robot. The 'for-4.5/block-
    dax' topic branch was rebased over the weekend to drop the "block
    device end-of-life" rework that Al would like to see re-implemented
    with a notifier, and to address bug reports against the badblocks
    integration.

    There is pending feedback against "libnvdimm: Add a poison list and
    export badblocks" received last week. Linda identified some localized
    fixups that we will handle incrementally.

    Summary:

    - Media error handling: The 'badblocks' implementation that
    originated in md-raid is up-levelled to a generic capability of a
    block device. This initial implementation is limited to being
    consulted in the pmem block-i/o path. Later, 'badblocks' will be
    consulted when creating dax mappings.

    - Raw block device dax: For virtualization and other cases that want
    large contiguous mappings of persistent memory, add the capability
    to dax-mmap a block device directly.

    - Increased /dev/mem restrictions: Add an option to treat all
    io-memory as IORESOURCE_EXCLUSIVE, i.e. disable /dev/mem access
    while a driver is actively using an address range. This behavior
    is controlled via the new CONFIG_IO_STRICT_DEVMEM option and can be
    overridden by the existing "iomem=relaxed" kernel command line
    option.

    - Miscellaneous fixes include a 'pfn'-device huge page alignment fix,
    block device shutdown crash fix, and other small libnvdimm fixes"

    * tag 'libnvdimm-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (32 commits)
    block: kill disk_{check|set|clear|alloc}_badblocks
    libnvdimm, pmem: nvdimm_read_bytes() badblocks support
    pmem, dax: disable dax in the presence of bad blocks
    pmem: fail io-requests to known bad blocks
    libnvdimm: convert to statically allocated badblocks
    libnvdimm: don't fail init for full badblocks list
    block, badblocks: introduce devm_init_badblocks
    block: clarify badblocks lifetime
    badblocks: rename badblocks_free to badblocks_exit
    libnvdimm, pmem: move definition of nvdimm_namespace_add_poison to nd.h
    libnvdimm: Add a poison list and export badblocks
    nfit_test: Enable DSMs for all test NFITs
    md: convert to use the generic badblocks code
    block: Add badblock management for gendisks
    badblocks: Add core badblock management code
    block: fix del_gendisk() vs blkdev_ioctl crash
    block: enable dax for raw block devices
    block: introduce bdev_file_inode()
    restrict /dev/mem to idle io memory ranges
    arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug
    ...

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "A quiet release for SPI, not even many driver updates:

    - Add a dummy loopback driver for use in exercising framework
    features during development.

    - Move the test utilities to tools/ and add support for transferring
    data to and from a file instead of stdin and stdout to spidev_test.

    - Support for Mediatek MT2701 and Renesas AG5 deices"

    * tag 'spi-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (69 commits)
    spi: loopback: fix typo in MODULE_PARM_DESC
    spi: sun4i: Prevent chip-select from being activated twice before a transfer
    spi: loopback-test: spi_check_rx_ranges can get always done
    spi: loopback-test: rename method spi_test_fill_tx to spi_test_fill_pattern
    spi: loopback-test: write rx pattern also when running without tx_buf
    spi: fsl-espi: expose maximum transfer size limit
    spi: expose master transfer size limitation.
    spi: zynq: use to_platform_device()
    spi: cadence: use to_platform_device()
    spi: mediatek: Add spi support for mt2701 IC
    spi: mediatek: merge all identical compat to mtk_common_compat
    spi: mtk: Add bindings for mediatek MT2701 soc platform
    spi: mediatek: Prevent overflows in FIFO transfers
    spi: s3c64xx: Remove unused platform_device_id entries
    spi: use to_spi_device
    spi: dw: Use SPI_TMOD_TR rather than magic const 0 to set tmode
    spi: imx: defer spi initialization, if DMA engine is
    spi: imx: return error from dma channel request
    spi: imx: enable loopback only for ECSPI controller family
    spi: imx: fix loopback mode setup after controller reset
    ...

    Linus Torvalds
     
  • Pull char/misc updates from Greg KH:
    "Here's the big set of char/misc patches for 4.5-rc1.

    Nothing major, lots of different driver subsystem updates, full
    details in the shortlog. All of these have been in linux-next for a
    while"

    * tag 'char-misc-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (71 commits)
    mei: fix fasync return value on error
    parport: avoid assignment in if
    parport: remove unneeded space
    parport: change style of NULL comparison
    parport: remove unnecessary out of memory message
    parport: remove braces
    parport: quoted strings should not be split
    parport: code indent should use tabs
    parport: fix coding style
    parport: EXPORT_SYMBOL should follow function
    parport: remove trailing white space
    parport: fix a trivial typo
    coresight: Fix a typo in Kconfig
    coresight: checking for NULL string in coresight_name_match()
    Drivers: hv: vmbus: Treat Fibre Channel devices as performance critical
    Drivers: hv: utils: fix hvt_op_poll() return value on transport destroy
    Drivers: hv: vmbus: fix the building warning with hyperv-keyboard
    extcon: add Maxim MAX3355 driver
    Drivers: hv: ring_buffer: eliminate hv_ringbuffer_peek()
    Drivers: hv: remove code duplication between vmbus_recvpacket()/vmbus_recvpacket_raw()
    ...

    Linus Torvalds
     

13 Jan, 2016

5 commits

  • The vdso-based sigreturn mechanism is fragile and isn't used by
    modern glibc so, if we break it, we'll only notice when someone
    tests an unusual libc.

    Add an explicit selftest.

    [ I wrote this while debugging a Bionic breakage -- my first guess
    was that I had somehow messed up sigreturn. I've caused problems in
    that code before, and it's really easy to fail to notice it because
    there's nothing on a modern distro that needs vdso-based sigreturn. ]

    Signed-off-by: Andy Lutomirski
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Shuah Khan
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/32946d714156879cd8e5d8eab044cd07557ed558.1452628504.git.luto@kernel.org
    Signed-off-by: Ingo Molnar

    Andy Lutomirski
     
  • Pull oower management and ACPI updates from Rafael Wysocki:
    "As far as the number of commits goes, ACPICA takes the lead this time,
    followed by cpufreq and the device properties framework changes.

    The most significant new feature is the debugfs-based interface to the
    ACPICA's AML debugger added in the previous cycle and a new user space
    tool for accessing it.

    On the cpufreq front, the core is updated to handle governors more
    efficiently, particularly on systems where a single cpufreq policy
    object is shared between multiple CPUs, and there are quite a few
    changes in drivers (intel_pstate, cpufreq-dt etc).

    The device properties framework is updated to handle built-in (ie
    included in the kernel itself) device properties better, among other
    things by adding a fallback mechanism that will allow drivers to
    provide default properties to be used in case the plaform firmware
    doesn't provide the properties expected by them.

    The Operating Performance Points (OPP) framework gets new DT bindings
    and debugfs support.

    A new cpufreq driver for ST platforms is added and the ACPI driver for
    AMD SoCs will now support the APM X-Gene ACPI I2C device.

    The rest is mostly fixes and cleanups all over.

    Specifics:

    - Add a debugfs-based interface for interacting with the ACPICA's AML
    debugger introduced in the previous cycle and a new user space tool
    for that, fix some bugs related to the AML debugger and clean up
    the code in question (Lv Zheng, Dan Carpenter, Colin Ian King,
    Markus Elfring).

    - Update ACPICA to upstream revision 20151218 including a number of
    fixes and cleanups in the ACPICA core (Bob Moore, Lv Zheng, Labbe
    Corentin, Prarit Bhargava, Colin Ian King, David E Box, Rafael
    Wysocki).

    In particular, the previously added erroneous support for the _SUB
    object is dropped, the concatenate operator will support all ACPI
    objects now, the Debug Object handling is improved, the SuperName
    handling of parameters being control methods is fixed, the
    ObjectType operator handling is updated to follow ACPI 5.0A and the
    handling of CondRefOf and RefOf is updated accordingly, module-
    level code will be executed after loading each ACPI table now
    (instead of being run once after all tables containing AML have
    been loaded), the Operation Region handlers management is updated
    to fix some reported problems and a the ACPICA code in the kernel
    is more in line with the upstream now.

    - Update the ACPI backlight driver to provide information on whether
    or not it will generate key-presses for brightness change hotkeys
    and update some platform drivers (dell-wmi, thinkpad_acpi) to use
    that information to avoid sending double key-events to users pace
    for these, add new ACPI backlight quirks (Hans de Goede, Aaron Lu,
    Adrien Schildknecht).

    - Improve the ACPI handling of interrupt GPIOs (Christophe Ricard).

    - Fix the handling of the list of device IDs of device objects found
    in the ACPI namespace and add a helper for checking if there is a
    device object for a given device ID (Lukas Wunner).

    - Change the logic in the ACPI namespace scanning code to create
    struct acpi_device objects for all ACPI device objects found in the
    namespace even if _STA fails for them which helps to avoid device
    enumeration problems on Microsoft Surface 3 (Aaron Lu).

    - Add support for the APM X-Gene ACPI I2C device to the ACPI driver
    for AMD SoCs (Loc Ho).

    - Fix the long-standing issue with the DMA controller on Intel SoCs
    where ACPI tables have no power management support for the DMA
    controller itself, but it can be powered off automatically when the
    last (other) device on the SoC is powered off via ACPI and clean up
    the ACPI driver for Intel SoCs (acpi-lpss) after previous attempts
    to fix that problem (Andy Shevchenko).

    - Assorted ACPI fixes and cleanups (Andy Lutomirski, Colin Ian King,
    Javier Martinez Canillas, Ken Xue, Mathias Krause, Rafael Wysocki,
    Sinan Kaya).

    - Update the device properties framework for better handling of
    built-in properties, add support for built-in properties to the
    platform bus type, update the MFD subsystem's handling of device
    properties and add support for passing default configuration data
    as device properties to the intel-lpss MFD drivers, convert the
    designware I2C driver to use the unified device properties API and
    add a fallback mechanism for using default built-in properties if
    the platform firmware fails to provide the properties as expected
    by drivers (Andy Shevchenko, Mika Westerberg, Heikki Krogerus,
    Andrew Morton).

    - Add new Device Tree bindings to the Operating Performance Points
    (OPP) framework and update the exynos4412 DT binding accordingly,
    introduce debugfs support for the OPP framework (Viresh Kumar,
    Bartlomiej Zolnierkiewicz).

    - Migrate the mt8173 cpufreq driver to the new OPP bindings (Pi-Cheng
    Chen).

    - Update the cpufreq core to make the handling of governors more
    efficient, especially on systems where policy objects are shared
    between multiple CPUs (Viresh Kumar, Rafael Wysocki).

    - Fix cpufreq governor handling on configurations with
    CONFIG_HZ_PERIODIC set (Chen Yu).

    - Clean up the cpufreq core code related to the boost sysfs knob
    support and update the ACPI cpufreq driver accordingly (Rafael
    Wysocki).

    - Add a new cpufreq driver for ST platforms and corresponding Device
    Tree bindings (Lee Jones).

    - Update the intel_pstate driver to allow the P-state selection
    algorithm used by it to depend on the CPU ID of the processor it is
    running on, make it use a special P-state selection algorithm (with
    an IO wait time compensation tweak) on Atom CPUs based on the
    Airmont and Silvermont cores so as to reduce their energy
    consumption and improve intel_pstate documentation (Philippe
    Longepe, Srinivas Pandruvada).

    - Update the cpufreq-dt driver to support registering cooling devices
    that use the (P * V^2 * f) dynamic power draw formula where V is
    the voltage, f is the frequency and P is a constant coefficient
    provided by Device Tree and update the arm_big_little cpufreq
    driver to use that support (Punit Agrawal).

    - Assorted cpufreq driver (cpufreq-dt, qoriq, pcc-cpufreq,
    blackfin-cpufreq) updates (Andrzej Hajda, Hongtao Jia, Jacob
    Tanenbaum, Markus Elfring).

    - cpuidle core tweaks related to polling and measured_us calculation
    (Rik van Riel).

    - Removal of modularity from a few cpuidle drivers (clps711x, ux500,
    exynos) that cannot be built as modules in practice (Paul
    Gortmaker).

    - PM core update to prevent devices from being probed during system
    suspend/resume which is generally problematic and may lead to
    inconsistent behavior (Grygorii Strashko).

    - Assorted updates of the PM core and related code (Julia Lawall,
    Manuel Pégourié-Gonnard, Maruthi Bayyavarapu, Rafael Wysocki, Ulf
    Hansson).

    - PNP bus type updates (Christophe Le Roy, Heiner Kallweit).

    - PCI PM code cleanups (Jarkko Nikula, Julia Lawall).

    - cpupower tool updates (Jacob Tanenbaum, Thomas Renninger)"

    * tag 'pm+acpi-4.5-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (177 commits)
    PM / clk: don't leave clocks enabled when driver not bound
    i2c: dw: Add APM X-Gene ACPI I2C device support
    ACPI / APD: Add APM X-Gene ACPI I2C device support
    ACPI / LPSS: change 'does not have' to 'has' in comment
    Revert "dmaengine: dw: platform: provide platform data for Intel"
    dmaengine: dw: return immediately from IRQ when DMA isn't in use
    dmaengine: dw: platform: power on device on shutdown
    ACPI / LPSS: override power state for LPSS DMA device
    PM / OPP: Use snprintf() instead of sprintf()
    Documentation: cpufreq: intel_pstate: enhance documentation
    ACPI, PCI, irq: remove redundant check for null string pointer
    ACPI / video: driver must be registered before checking for keypresses
    cpufreq-dt: fix handling regulator_get_voltage() result
    cpufreq: governor: Fix negative idle_time when configured with CONFIG_HZ_PERIODIC
    PM / sleep: Add support for read-only sysfs attributes
    ACPI: Fix white space in a structure definition
    ACPI / SBS: fix inconsistent indenting inside if statement
    PNP: respect PNP_DRIVER_RES_DO_NOT_CHANGE when detaching
    ACPI / PNP: constify device IDs
    ACPI / PCI: Simplify acpi_penalize_isa_irq()
    ...

    Linus Torvalds
     
  • Pull tracing updates from Steven Rostedt:
    "Not much new with tracing for this release. Mostly just clean ups and
    minor fixes.

    Here's what else is new:

    - A new TRACE_EVENT_FN_COND macro, combining both _FN and _COND for
    those that want both.

    - New selftest to test the instance create and delete

    - Better debug output when ftrace fails"

    * tag 'trace-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (24 commits)
    ftrace: Fix the race between ftrace and insmod
    ftrace: Add infrastructure for delayed enabling of module functions
    x86: ftrace: Fix the comments for ftrace_modify_code_direct()
    tracing: Fix comment to use tracing_on over tracing_enable
    metag: ftrace: Fix the comments for ftrace_modify_code
    sh: ftrace: Fix the comments for ftrace_modify_code()
    ia64: ftrace: Fix the comments for ftrace_modify_code()
    ftrace: Clean up ftrace_module_init() code
    ftrace: Join functions ftrace_module_init() and ftrace_init_module()
    tracing: Introduce TRACE_EVENT_FN_COND macro
    tracing: Use seq_buf_used() in seq_buf_to_user() instead of len
    bpf: Constify bpf_verifier_ops structure
    ftrace: Have ftrace_ops_get_func() handle RCU and PER_CPU flags too
    ftrace: Remove use of control list and ops
    ftrace: Fix output of enabled_functions for showing tramp
    ftrace: Fix a typo in comment
    ftrace: Show all tramps registered to a record on ftrace_bug()
    ftrace: Add variable ftrace_expected for archs to show expected code
    ftrace: Add new type to distinguish what kind of ftrace_bug()
    tracing: Update cond flag when enabling or disabling a trigger
    ...

    Linus Torvalds
     
  • Pull networking updates from Davic Miller:

    1) Support busy polling generically, for all NAPI drivers. From Eric
    Dumazet.

    2) Add byte/packet counter support to nft_ct, from Floriani Westphal.

    3) Add RSS/XPS support to mvneta driver, from Gregory Clement.

    4) Implement IPV6_HDRINCL socket option for raw sockets, from Hannes
    Frederic Sowa.

    5) Add support for T6 adapter to cxgb4 driver, from Hariprasad Shenai.

    6) Add support for VLAN device bridging to mlxsw switch driver, from
    Ido Schimmel.

    7) Add driver for Netronome NFP4000/NFP6000, from Jakub Kicinski.

    8) Provide hwmon interface to mlxsw switch driver, from Jiri Pirko.

    9) Reorganize wireless drivers into per-vendor directories just like we
    do for ethernet drivers. From Kalle Valo.

    10) Provide a way for administrators "destroy" connected sockets via the
    SOCK_DESTROY socket netlink diag operation. From Lorenzo Colitti.

    11) Add support to add/remove multicast routes via netlink, from Nikolay
    Aleksandrov.

    12) Make TCP keepalive settings per-namespace, from Nikolay Borisov.

    13) Add forwarding and packet duplication facilities to nf_tables, from
    Pablo Neira Ayuso.

    14) Dead route support in MPLS, from Roopa Prabhu.

    15) TSO support for thunderx chips, from Sunil Goutham.

    16) Add driver for IBM's System i/p VNIC protocol, from Thomas Falcon.

    17) Rationalize, consolidate, and more completely document the checksum
    offloading facilities in the networking stack. From Tom Herbert.

    18) Support aborting an ongoing scan in mac80211/cfg80211, from
    Vidyullatha Kanchanapally.

    19) Use per-bucket spinlock for bpf hash facility, from Tom Leiming.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1375 commits)
    net: bnxt: always return values from _bnxt_get_max_rings
    net: bpf: reject invalid shifts
    phonet: properly unshare skbs in phonet_rcv()
    dwc_eth_qos: Fix dma address for multi-fragment skbs
    phy: remove an unneeded condition
    mdio: remove an unneed condition
    mdio_bus: NULL dereference on allocation error
    net: Fix typo in netdev_intersect_features
    net: freescale: mac-fec: Fix build error from phy_device API change
    net: freescale: ucc_geth: Fix build error from phy_device API change
    bonding: Prevent IPv6 link local address on enslaved devices
    IB/mlx5: Add flow steering support
    net/mlx5_core: Export flow steering API
    net/mlx5_core: Make ipv4/ipv6 location more clear
    net/mlx5_core: Enable flow steering support for the IB driver
    net/mlx5_core: Initialize namespaces only when supported by device
    net/mlx5_core: Set priority attributes
    net/mlx5_core: Connect flow tables
    net/mlx5_core: Introduce modify flow table command
    net/mlx5_core: Managing root flow table
    ...

    Linus Torvalds
     
  • Pull UML updates from Richard Weinberger:
    "This contains beside of random fixes/cleanups two bigger changes:

    - seccomp support by Mickaël Salaün

    - IRQ rework by Anton Ivanov"

    * 'for-linus-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
    um: Use race-free temporary file creation
    um: Do not set unsecure permission for temporary file
    um: Fix build error and kconfig for i386
    um: Add seccomp support
    um: Add full asm/syscall.h support
    selftests/seccomp: Remove the need for HAVE_ARCH_TRACEHOOK
    um: Fix ptrace GETREGS/SETREGS bugs
    um: link with -lpthread
    um: Update UBD to use pread/pwrite family of functions
    um: Do not change hard IRQ flags in soft IRQ processing
    um: Prevent IRQ handler reentrancy
    uml: flush stdout before forking
    uml: fix hostfs mknod()

    Linus Torvalds
     

12 Jan, 2016

28 commits

  • Some people don't install perf, but just use compiled version in the
    source. Fallback to lookup the source directory for those poor guys. :)

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/1452334589-8782-4-git-send-email-namhyung@kernel.org
    [ Make perf_tip() return NULL for ENOENT, making the fallback to really take place ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • When a tip message contains a percent sign, it was treated printf format
    specifier so broken string was printed like below.

    Tip: Limit to show entries above 577nly: perf report --percent-limit 5
    ^^^

    As ui_browser__show receives format string, pass additional "%s" so that
    the help (tip) message can be printed as is.

    Tip: Limit to show entries above 5% only: perf report --percent-limit 5

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/1452509594-13616-1-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • It'll be used to locate perf document directory to find tips.txt in case
    it's not installed on the system.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/1452334589-8782-3-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • If strlist_config.dirname is present, the strlist__new() tries to load
    stirngs from dirname/list file first but if it failes it falls back to
    add 'list' as string. But sometimes it's not desired so adds new
    file_only field to prevent it.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/1452334589-8782-2-git-send-email-namhyung@kernel.org
    [ Add documentation for strlist_config::file_only, in the struct definition */
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Thanks to Andi Kleen for providing useful tips.

    Suggested-by: Andi Kleen
    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Brendan Gregg
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Wang Nan
    Link: http://lkml.kernel.org/r/1452508510-28316-1-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • The --buildid-all option is to record build-id of all DSOs in the file.
    It might be very costly to postprocess samples to find which DSO hits.

    Signed-off-by: Namhyung Kim
    Cc: Adrian Hunter
    Cc: Andi Kleen
    Cc: David Ahern
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1452519429-31779-1-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • parse-options.h uses the NORETURN macro without defining it. perf
    doesn't see a build error because it defines the macro in util.h before
    including parse-options.h. But any other tool including it will see an
    error.

    Define the macro in parse-options.h (if not already defined) so that
    other tools can include it.

    Signed-off-by: Josh Poimboeuf
    Cc: "H. Peter Anvin"
    Cc: Andi Kleen
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Bernd Petrovitsch
    Cc: Borislav Petkov
    Cc: Chris J Arges
    Cc: Jiri Slaby
    Cc: Linus Torvalds
    Cc: Michal Marek
    Cc: Namhyung Kim
    Cc: Pedro Alves
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: live-patching@vger.kernel.org
    Cc: x86@kernel.org
    Link: http://lkml.kernel.org/r/6c16294ac6dbe5e2ca28fd935fe4389996588564.1450442274.git.jpoimboe@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Josh Poimboeuf
     
  • Align the x86_energy_perf_policy line with the others and restore the
    original alphabetical sorting.

    Signed-off-by: Josh Poimboeuf
    Cc: "H. Peter Anvin"
    Cc: Andi Kleen
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Bernd Petrovitsch
    Cc: Borislav Petkov
    Cc: Chris J Arges
    Cc: Jiri Slaby
    Cc: Linus Torvalds
    Cc: Michal Marek
    Cc: Namhyung Kim
    Cc: Pedro Alves
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: live-patching@vger.kernel.org
    Cc: x86@kernel.org
    Link: http://lkml.kernel.org/r/572931227adbf1fc9ca96e1dae3ef2e89387feca.1450442274.git.jpoimboe@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Josh Poimboeuf
     
  • Commit 7f5f873c6a07 ("rculist: Use WRITE_ONCE() when deleting from
    reader-visible list") added the use of the WRITE_ONCE macro to the
    kernel version of list.h, which broke the stacktool build because the
    tools list.h includes the kernel list.h.

    Avoid this type of situation in the future and make list.h
    self-sufficient by copying the kernel list.h routines directly into
    tools list.h.

    This is a straight copy except for adjustments to the include statements
    and copying of the tools-specific list routines (list_del_range and
    list_for_each_from).

    Signed-off-by: Josh Poimboeuf
    Cc: "H. Peter Anvin"
    Cc: Andi Kleen
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Bernd Petrovitsch
    Cc: Borislav Petkov
    Cc: Chris J Arges
    Cc: Jiri Slaby
    Cc: Linus Torvalds
    Cc: Michal Marek
    Cc: Namhyung Kim
    Cc: Pedro Alves
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: live-patching@vger.kernel.org
    Cc: x86@kernel.org
    Link: http://lkml.kernel.org/r/59cdc19c6589d1b5ef43d83b0e2d5a4a40301374.1450442274.git.jpoimboe@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Josh Poimboeuf
     
  • perf_event__synthesize_mmap_events() issues mmap2 events, but the memory
    of that event is allocated using:

    mmap_event = malloc(sizeof(mmap_event->mmap) + machine->id_hdr_size);

    If path of mmap source file is long (near PATH_MAX), random crash would
    happen. Should use sizeof(mmap_event->mmap2).

    Fix two memory allocations.

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

    Wang Nan
     
  • Markus reported gcc 6 complains when compiling perf stat command:

    builtin-stat.c:1591:27: error: ‘recort_usage’ defined but not used
    [-Werror=unused-const-variable]
    static const char * const recort_usage[] = {
    ^~~~~~~~~~~~

    I fixed the typo and realized we already export record_usage, so I also
    prefixed it with stat (and included report_usage).

    Reported-by: Markus Trippelsdorf
    Signed-off-by: Jiri Olsa
    Cc: David Ahern
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1452591329-27620-1-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • ldt_gdt.c relies on cross-cpu invalidation of SS to do one of
    its tests. On 32-bit builds, this works fine, but on 64-bit
    builds, it only works if the kernel has proper SS sigcontext
    handling for 64-bit user programs.

    Since the SS fixes are currently reverted, restrict the test
    case to 32 bits for now.

    In principle, I could change the test to use a different segment
    register, but it would be messy: CS can't point to the LDT for
    64-bit code, and the other registers don't result in immediate
    faults because they aren't reloaded on kernel -> user
    transitions.

    When we fix sigcontext (in 4.6?), we can revert this.

    Signed-off-by: Andy Lutomirski
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Shuah Khan
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/231591d9122d282402d8f53175134f8db5b3bc73.1452561752.git.luto@kernel.org
    Signed-off-by: Ingo Molnar

    Andy Lutomirski
     
  • …/acme/linux into perf/urgent

    Pull perf tooling fixes from Arnaldo Carvalho de Melo:

    " - Fix a few clean targets in tools/ (Jiri Olsa)

    - Add missing sources to perf's MANIFEST, fixing the out of tree build with
    'make perf-tar*-src-pkg' tarballs (Jiri Olsa)

    - Fix bpf related build problems in PowerPC (Naveen N. Rao, Wang Nan)

    - 'make -C tools/perf build-test' fixes (Wang Nan)

    - Fix 'perf test hist' entry (Wang Nan)

    - Add BPF feature check to test-all, as in an environment with all other
    features enabled, BPF would be considered enabled without doing real
    feature check. (Wang Nan)"

    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • …t.kernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull timer updates - and a leftover fix - from Thomas Gleixner:
    "A rather large (commit wise) update from the timer side:

    - A bulk update to make compile tests work in the clocksource drivers

    - An overhaul of the h8300 timers

    - Some more Y2038 work

    - A few overflow prevention checks in the timekeeping/ntp code

    - The usual pile of fixes and improvements to the various
    clocksource/clockevent drivers and core code"

    Also:
    "A single fix for the posix-clock poll code which did not make it into
    4.4"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (84 commits)
    clocksource/drivers/acpi_pm: Convert to pr_* macros
    clocksource: Make clocksource validation work for all clocksources
    timekeeping: Cap adjustments so they don't exceed the maxadj value
    ntp: Fix second_overflow's input parameter type to be 64bits
    ntp: Change time_reftime to time64_t and utilize 64bit __ktime_get_real_seconds
    timekeeping: Provide internal function __ktime_get_real_seconds
    clocksource/drivers/h8300: Use ioread / iowrite
    clocksource/drivers/h8300: Initializer cleanup.
    clocksource/drivers/h8300: Simplify delta handling
    clocksource/drivers/h8300: Fix timer not overflow case
    clocksource/drivers/h8300: Change to overflow interrupt
    clocksource/drivers/lpc32: Correct pr_err() output format
    clocksource/drivers/arm_global_timer: Fix suspend resume
    clocksource/drivers/pistachio: Fix wrong calculated clocksource read value
    clockevents/drivers/arm_global_timer: Use writel_relaxed in gt_compare_set
    clocksource/drivers/dw_apb_timer: Inline apbt_readl and apbt_writel
    clocksource/drivers/dw_apb_timer: Use {readl|writel}_relaxed in critical path
    clocksource/drivers/dw_apb_timer: Fix apbt_readl return types
    clocksource/drivers/tango-xtal: Replace code by clocksource_mmio_init
    clocksource/drivers/h8300: Increase the compilation test coverage
    ...

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    posix-clock: Fix return code on the poll method's error path

    Linus Torvalds
     
  • * pm-sleep:
    PM / sleep: Add support for read-only sysfs attributes

    * pm-tools:
    cpupower: fix how "cpupower frequency-info" interprets latency
    cpupower: rework the "cpupower frequency-info" command
    cpupower: Do not analyse offlined cpus
    cpupower: Provide STATIC variable in Makefile for debug builds
    cpupower: Fix precedence issue

    Rafael J. Wysocki
     
  • * acpica: (43 commits)
    ACPICA: Drop Linux-specific waking vector functions
    ACPICA: Update version to 20151218
    ACPICA: Add per-table execution of module-level code
    ACPICA: Add "root node" case to the ACPI name repair code
    ACPICA: Events: Introduce ACPI_REG_DISCONNECT invocation to acpi_ev_execute_reg_methods()
    ACPICA: Events: Enhance acpi_ev_execute_reg_method() to ensure no _REG evaluations can happen during OS early boot stages
    ACPICA: Events: Split acpi_ev_associate_reg_method() from region initialization code
    ACPICA: Events: Fix an issue that region object is re-attached to another scope when it is already attached
    ACPICA: Utilities: Reorder initialization code
    ACPICA: Events: Uses common_notify for address space handlers
    ACPICA: Events: Deploys acpi_ev_find_region_handler()
    ACPICA: Cleanup code related to the per-table module level improvement
    ACPICA: Update for CondRefOf and RefOf operators
    ACPICA: Update internal #defines for ObjectType operator. No functional change
    ACPICA: Update parameter type for ObjectType operator
    ACPICA: Parser: Fix for SuperName method invocation
    ACPICA: Parser: Add constants for internal namepath function
    ACPICA: iasl/Disassembler: Support ASL ElseIf operator
    ACPICA: Add new exception code, AE_IO_ERROR
    ACPICA: Tools: Add spacing and missing options in acpibin tool
    ...

    Rafael J. Wysocki
     
  • * acpi-debug:
    ACPI / debugger: Fix a redundant mutex unlock issue in acpi_aml_open()
    ACPI / debugger: copy_to_user doesn't return errors
    ACPI / debugger: remove some unneeded conditions
    ACPI / debugger: Fix an issue a flag is modified without locking
    ACPI / debugger: Add module support for ACPI debugger
    tools/power/acpi: Add userspace AML interface support
    ACPI / debugger: Add IO interface to access debugger functionalities
    ACPICA: Debugger: Fix runtime stub issues of ACPI_DEBUGGER_EXEC using different stub mechanism
    ACPICA: Debugger: Convert some mechanisms to OSPM specific
    ACPICA: Debugger: Remove unnecessary status check

    Rafael J. Wysocki
     
  • Pull perf updates from Ingo Molnar:
    "Kernel side changes:

    - Intel Knights Landing support. (Harish Chegondi)

    - Intel Broadwell-EP uncore PMU support. (Kan Liang)

    - Core code improvements. (Peter Zijlstra.)

    - Event filter, LBR and PEBS fixes. (Stephane Eranian)

    - Enable cycles:pp on Intel Atom. (Stephane Eranian)

    - Add cycles:ppp support for Skylake. (Andi Kleen)

    - Various x86 NMI overhead optimizations. (Andi Kleen)

    - Intel PT enhancements. (Takao Indoh)

    - AMD cache events fix. (Vince Weaver)

    Tons of tooling changes:

    - Show random perf tool tips in the 'perf report' bottom line
    (Namhyung Kim)

    - perf report now defaults to --group if the perf.data file has
    grouped events, try it with:

    # perf record -e '{cycles,instructions}' -a sleep 1
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 1.093 MB perf.data (1247 samples) ]
    # perf report
    # Samples: 1K of event 'anon group { cycles, instructions }'
    # Event count (approx.): 1955219195
    #
    # Overhead Command Shared Object Symbol

    2.86% 0.22% swapper [kernel.kallsyms] [k] intel_idle
    1.05% 0.33% firefox libxul.so [.] js::SetObjectElement
    1.05% 0.00% kworker/0:3 [kernel.kallsyms] [k] gen6_ring_get_seqno
    0.88% 0.17% chrome chrome [.] 0x0000000000ee27ab
    0.65% 0.86% firefox libxul.so [.] js::ValueToId
    0.64% 0.23% JS Helper libxul.so [.] js::SplayTree::splay
    0.62% 1.27% firefox libxul.so [.] js::GetIterator
    0.61% 1.74% firefox libxul.so [.] js::NativeSetProperty
    0.61% 0.31% firefox libxul.so [.] js::SetPropertyByDefining

    - Introduce the 'perf stat record/report' workflow:

    Generate perf.data files from 'perf stat', to tap into the
    scripting capabilities perf has instead of defining a 'perf stat'
    specific scripting support to calculate event ratios, etc.

    Simple example:

    $ perf stat record -e cycles usleep 1

    Performance counter stats for 'usleep 1':

    1,134,996 cycles

    0.000670644 seconds time elapsed

    $ perf stat report

    Performance counter stats for '/home/acme/bin/perf stat record -e cycles usleep 1':

    1,134,996 cycles

    0.000670644 seconds time elapsed

    $

    It generates PERF_RECORD_ userspace records to store the details:

    $ perf report -D | grep PERF_RECORD
    0xf0 [0x28]: PERF_RECORD_THREAD_MAP nr: 1 thread: 27637
    0x118 [0x12]: PERF_RECORD_CPU_MAP nr: 1 cpu: 65535
    0x12a [0x40]: PERF_RECORD_STAT_CONFIG
    0x16a [0x30]: PERF_RECORD_STAT
    -1 -1 0x19a [0x40]: PERF_RECORD_MMAP -1/0: [0xffffffff81000000(0x1f000000) @ 0xffffffff81000000]: x [kernel.kallsyms]_text
    0x1da [0x18]: PERF_RECORD_STAT_ROUND
    [acme@ssdandy linux]$

    An effort was made to make perf.data files generated like this to
    not generate cryptic messages when processed by older tools.

    The 'perf script' bits need rebasing, will go up later.

    - Make command line options always available, even when they depend
    on some feature being enabled, warning the user about use of such
    options (Wang Nan)

    - Support hw breakpoint events (mem:0xAddress) in the default output
    mode in 'perf script' (Wang Nan)

    - Fixes and improvements for supporting annotating ARM binaries,
    support ARM call and jump instructions, more work needed to have
    arch specific stuff separated into tools/perf/arch/*/annotate/
    (Russell King)

    - Add initial 'perf config' command, for now just with a --list
    command to the contents of the configuration file in use and a
    basic man page describing its format, commands for doing edits and
    detailed documentation are being reviewed and proof-read. (Taeung
    Song)

    - Allows BPF scriptlets specify arguments to be fetched using DWARF
    info, using a prologue generated at compile/build time (He Kuang,
    Wang Nan)

    - Allow attaching BPF scriptlets to module symbols (Wang Nan)

    - Allow attaching BPF scriptlets to userspace code using uprobe (Wang
    Nan)

    - BPF programs now can specify 'perf probe' tunables via its section
    name, separating key=val values using semicolons (Wang Nan)

    Testing some of these new BPF features:

    Use case: get callchains when receiving SSL packets, filter then in the
    kernel, at arbitrary place.

    # cat ssl.bpf.c
    #define SEC(NAME) __attribute__((section(NAME), used))

    struct pt_regs;

    SEC("func=__inet_lookup_established hnum")
    int func(struct pt_regs *ctx, int err, unsigned short port)
    {
    return err == 0 && port == 443;
    }

    char _license[] SEC("license") = "GPL";
    int _version SEC("version") = LINUX_VERSION_CODE;
    #
    # perf record -a -g -e ssl.bpf.c
    ^C[ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.787 MB perf.data (3 samples) ]
    # perf script | head -30
    swapper 0 [000] 58783.268118: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb
    8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux)
    896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux)
    8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux)
    855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux)
    8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux)
    8572a8 process_backlog (/lib/modules/4.3.0+/build/vmlinux)
    856b11 net_rx_action (/lib/modules/4.3.0+/build/vmlinux)
    2a284b __do_softirq (/lib/modules/4.3.0+/build/vmlinux)
    2a2ba3 irq_exit (/lib/modules/4.3.0+/build/vmlinux)
    96b7a4 do_IRQ (/lib/modules/4.3.0+/build/vmlinux)
    969807 ret_from_intr (/lib/modules/4.3.0+/build/vmlinux)
    2dede5 cpu_startup_entry (/lib/modules/4.3.0+/build/vmlinux)
    95d5bc rest_init (/lib/modules/4.3.0+/build/vmlinux)
    1163ffa start_kernel ([kernel.vmlinux].init.text)
    11634d7 x86_64_start_reservations ([kernel.vmlinux].init.text)
    1163623 x86_64_start_kernel ([kernel.vmlinux].init.text)

    qemu-system-x86 9178 [003] 58785.792417: perf_bpf_probe:func: (ffffffff816a0f60) hnum=0x1bb
    8a0f61 __inet_lookup_established (/lib/modules/4.3.0+/build/vmlinux)
    896def ip_rcv_finish (/lib/modules/4.3.0+/build/vmlinux)
    8976c2 ip_rcv (/lib/modules/4.3.0+/build/vmlinux)
    855eba __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux)
    8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux)
    856660 netif_receive_skb_internal (/lib/modules/4.3.0+/build/vmlinux)
    8566ec netif_receive_skb_sk (/lib/modules/4.3.0+/build/vmlinux)
    430a br_handle_frame_finish ([bridge])
    48bc br_handle_frame ([bridge])
    855f44 __netif_receive_skb_core (/lib/modules/4.3.0+/build/vmlinux)
    8565d8 __netif_receive_skb (/lib/modules/4.3.0+/build/vmlinux)
    #

    - Use 'perf probe' various options to list functions, see what
    variables can be collected at any given point, experiment first
    collecting without a filter, then filter, use it together with
    'perf trace', 'perf top', with or without callchains, if it
    explodes, please tell us!

    - Introduce a new callchain mode: "folded", that will list per line
    representations of all callchains for a give histogram entry,
    facilitating 'perf report' output processing by other tools, such
    as Brendan Gregg's flamegraph tools (Namhyung Kim)

    E.g:

    # perf report | grep -v ^# | head
    18.37% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry
    |
    ---cpu_startup_entry
    |
    |--12.07%--start_secondary
    |
    --6.30%--rest_init
    start_kernel
    x86_64_start_reservations
    x86_64_start_kernel
    #

    Becomes, in "folded" mode:

    # perf report -g folded | grep -v ^# | head -5
    18.37% 0.00% swapper [kernel.kallsyms] [k] cpu_startup_entry
    12.07% cpu_startup_entry;start_secondary
    6.30% cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel
    16.90% 0.00% swapper [kernel.kallsyms] [k] call_cpuidle
    11.23% call_cpuidle;cpu_startup_entry;start_secondary
    5.67% call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel
    16.90% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter
    11.23% cpuidle_enter;call_cpuidle;cpu_startup_entry;start_secondary
    5.67% cpuidle_enter;call_cpuidle;cpu_startup_entry;rest_init;start_kernel;x86_64_start_reservations;x86_64_start_kernel
    15.12% 0.00% swapper [kernel.kallsyms] [k] cpuidle_enter_state
    #

    The user can also select one of "count", "period" or "percent" as
    the first column.

    ... and lots of infrastructure enhancements, plus fixes and other
    changes, features I failed to list - see the shortlog and the git log
    for details"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (271 commits)
    perf evlist: Add --trace-fields option to show trace fields
    perf record: Store data mmaps for dwarf unwind
    perf libdw: Check for mmaps also in MAP__VARIABLE tree
    perf unwind: Check for mmaps also in MAP__VARIABLE tree
    perf unwind: Use find_map function in access_dso_mem
    perf evlist: Remove perf_evlist__(enable|disable)_event functions
    perf evlist: Make perf_evlist__open() open evsels with their cpus and threads (like perf record does)
    perf report: Show random usage tip on the help line
    perf hists: Export a couple of hist functions
    perf diff: Use perf_hpp__register_sort_field interface
    perf tools: Add overhead/overhead_children keys defaults via string
    perf tools: Remove list entry from struct sort_entry
    perf tools: Include all tools/lib directory for tags/cscope/TAGS targets
    perf script: Align event name properly
    perf tools: Add missing headers in perf's MANIFEST
    perf tools: Do not show trace command if it's not compiled in
    perf report: Change default to use event group view
    perf top: Decay periods in callchains
    tools lib: Move bitmap.[ch] from tools/perf/ to tools/{lib,include}/
    tools lib: Sync tools/lib/find_bit.c with the kernel
    ...

    Linus Torvalds
     
  • All hists test cases forget to reset err after using it to hold an
    error code. If error occure in setup_fake_machine() it incorrectly
    return TEST_OK.

    This patch fixes it.

    Suggested-and-Acked-by: Namhyung Kim
    Signed-off-by: Wang Nan
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1452520124-2073-13-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • Commit 71d6de64fedd ("perf test: Fix hist testcases when kptr_restrict is on")
    solves a double free problem when 'perf test hist' calling
    setup_fake_machine(). However, the result is still incorrect. For example:

    $ ./perf test -v 'filtering hist entries'
    25: Test filtering hist entries :
    --- start ---
    test child forked, pid 4186
    Cannot create kernel maps
    test child finished with 0
    ---- end ----
    Test filtering hist entries: Ok

    In this case the body of this test is not get executed at all, but the
    result is 'Ok'.

    Actually, in setup_fake_machine() there's no need to create real kernel
    maps. What we want are the fake maps. This patch removes the
    machine__create_kernel_maps() in setup_fake_machine(), so it won't be
    affected by kptr_restrict setting.

    Test result:

    $ cat /proc/sys/kernel/kptr_restrict
    1
    $ ~/perf test -v hist
    15: Test matching and linking multiple hists :
    --- start ---
    test child forked, pid 24031
    test child finished with 0
    ---- end ----
    Test matching and linking multiple hists: Ok
    [SNIP]

    Suggested-and-Acked-by: Namhyung Kim
    Signed-off-by: Wang Nan
    Tested-by: Arnaldo Carvalho de Melo
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1452520124-2073-12-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • The test-all.c file doesn't check BPF related features. For an
    environment with all other features enabled, BPF would be considered
    enabled without doing real feature check.

    This patch adds test-bpf.c into test-all.c.

    Signed-off-by: Wang Nan
    Acked-by: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1452520124-2073-11-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • perf build is currently (v4.4-rc5) broken on powerpc:

    bpf.c:28:4: error: #error __NR_bpf not defined. libbpf does not support
    your arch.
    # error __NR_bpf not defined. libbpf does not support your arch.
    ^

    Fix this by including tools/scripts/Makefile.arch for the proper $ARCH
    macro. While at it, remove redundant LP64 macro definition.

    Also, since libbpf require $(srctree) now, detect the path of srctree
    like perf.

    Signed-off-by: Naveen N. Rao
    Acked-by: Jiri Olsa
    Cc: Sukadev Bhattiprolu
    Cc: Wang Nan
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1452520124-2073-10-git-send-email-wangnan0@huawei.com
    [Use tools/scripts/Makefile.arch]
    Signed-off-by: Wang Nan
    Signed-off-by: Arnaldo Carvalho de Melo

    Naveen N. Rao
     
  • After this patch other directories can use this architecture detector
    without directly including it from perf's directory. Libbpf would
    utilize it to get proper $(ARCH) so it can receive correct uapi include
    directory.

    Tested-by: Naveen N. Rao
    Acked-by: Jiri Olsa
    Cc: Sukadev Bhattiprolu
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Signed-off-by: Wang Nan
    Link: http://lkml.kernel.org/r/1452520124-2073-8-git-send-email-wangnan0@huawei.com
    [ Add missing srctree definition in tests/make ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • Checks BPF syscall number, turn off libbpf building on platform doesn't
    correctly support sys_bpf instead of blocking compiling.

    Reported-and-Tested-by: Naveen N. Rao
    Signed-off-by: Wang Nan
    Acked-by: Jiri Olsa
    Cc: Sukadev Bhattiprolu
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1452520124-2073-7-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • make_kernelsrc and make_kernelsrc_tools are skiped if a previous
    build-test is done, because 'make build-test' creates two files with
    same names. To avoid this, they should be included in .PHONY list.

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

    Wang Nan
     
  • On some system the perf-config is broken, causes link failure like this:

    /usr/lib64/python2.7/config/libpython2.7.a(posixmodule.o): In function `posix_forkpty':
    /opt/wangnan/yocto-build/tmp-eglibc/work/x86_64-oe-linux/python/2.7.3-r0.3.1/Python-2.7.3/./Modules/posixmodule.c:3816: undefined reference to `forkpty'
    /usr/lib64/python2.7/config/libpython2.7.a(posixmodule.o): In function `posix_openpty':
    /opt/wangnan/yocto-build/tmp-eglibc/work/x86_64-oe-linux/python/2.7.3-r0.3.1/Python-2.7.3/./Modules/posixmodule.c:3756: undefined reference to `openpty'
    collect2: error: ld returned 1 exit status
    make[1]: *** [/home/wangnan/kernel-hydrogen/tools/perf/out/perf] Error 1
    make: *** [all] Error 2

    $ python-config --libs
    -lpthread -ldl -lpthread -lutil -lm -lpython2.7

    In this case a '-lutil' should be appended to -lpython2.7.

    (I know we have --start-group and --end-group. I can see them in command
    line of collect2 by strace. However it doesn't work. Seems I have a
    broken environment?)

    Signed-off-by: Wang Nan
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Zefan Li
    Cc: pi3orama@163.com
    Link: http://lkml.kernel.org/r/1452520124-2073-2-git-send-email-wangnan0@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Wang Nan
     
  • Pull RCU updates from Ingo Molnar:
    "The changes in this cycle were:

    - Adding transitivity uniformly to rcu_node structure ->lock
    acquisitions. (This is implemented by the first two commits on top
    of v4.4-rc2 due to the pervasive nature of this change.)

    - Documentation updates, including RCU requirements.

    - Expedited grace-period changes.

    - Miscellaneous fixes.

    - Linked-list fixes, courtesy of KTSAN.

    - Torture-test updates.

    - Late-breaking fix to sysrq-generated crash.

    One thing I should note is that these pieces of documentation are
    fairly large files:

    .../RCU/Design/Requirements/Requirements.html | 2897 ++++++++++++++++++++
    .../RCU/Design/Requirements/Requirements.htmlx | 2741 ++++++++++++++++++

    and are written in HTML, not the usual .txt style. I hope they are
    fine"

    Paul McKenney explains the html docs:
    "For whatever it is worth, the reason for this unconventional choice
    was that attempts to do the diagrams in ASCII art failed miserably.

    And attempts to do ASCII art for the upcoming documentation of the
    data structures failed even more miserably"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (49 commits)
    sysrq: Fix warning in sysrq generated crash.
    list: Add lockless list traversal primitives
    rcu: Make rcu_gp_init() be bool rather than int
    rcu: Move wakeup out from under rnp->lock
    rcu: Fix comment for rcu_dereference_raw_notrace
    rcu: Don't redundantly disable irqs in rcu_irq_{enter,exit}()
    rcu: Make cpu_needs_another_gp() be bool
    rcu: Eliminate unused rcu_init_one() argument
    rcu: Remove TINY_RCU bloat from pointless boot parameters
    torture: Place console.log files correctly from the get-go
    torture: Abbreviate console error dump
    rcutorture: Print symbolic name for ->gp_state
    rcutorture: Print symbolic name for rcu_torture_writer_state
    rcutorture: Remove CONFIG_RCU_USER_QS from rcutorture selftest doc
    rcutorture: Default grace period to three minutes, allow override
    rcutorture: Dump stack when GP kthread stalls
    rcutorture: Flag nonexistent RCU GP kthread
    rcutorture: Add batch number to script printout
    Documentation/memory-barriers.txt: Fix ACCESS_ONCE thinko
    documentation: Update RCU requirements based on expedited changes
    ...

    Linus Torvalds
     
  • …ic/s3c64xx', 'spi/topic/sh-msiof' and 'spi/topic/spidev' into spi-next

    Mark Brown