1. 16 Sep, 2015 1 commit
  2. 14 Sep, 2015 5 commits
    • Shaohua Li's avatar
      x86/apic: Serialize LVTT and TSC_DEADLINE writes · 5d7c631d
      Shaohua Li authored
      The APIC LVTT register is MMIO mapped but the TSC_DEADLINE register is an
      MSR. The write to the TSC_DEADLINE MSR is not serializing, so it's not
      guaranteed that the write to LVTT has reached the APIC before the
      TSC_DEADLINE MSR is written. In such a case the write to the MSR is
      ignored and as a consequence the local timer interrupt never fires.
      
      The SDM decribes this issue for xAPIC and x2APIC modes. The
      serialization methods recommended by the SDM differ.
      
      xAPIC:
       "1. Memory-mapped write to LVT Timer Register, setting bits 18:17 to 10b.
        2. WRMSR to the IA32_TSC_DEADLINE MSR a value much larger than current time-stamp counter.
        3. If RDMSR of the IA32_TSC_DEADLINE MSR returns zero, go to step 2.
        4. WRMSR to the IA32_TSC_DEADLINE MSR the desired deadline."
      
      x2APIC:
       "To allow for efficient access to the APIC registers in x2APIC mode,
        the serializing semantics of WRMSR are relaxed when writing to the
        APIC registers. Thus, system software should not use 'WRMSR to APIC
        registers in x2APIC mode' as a serializing instruction. Read and write
        accesses to the APIC registers will occur in program order. A WRMSR to
        an APIC register may complete before all preceding stores are globally
        visible; software can prevent this by inserting a serializing
        instruction, an SFENCE, or an MFENCE before the WRMSR."
      
      The xAPIC method is to just wait for the memory mapped write to hit
      the LVTT by checking whether the MSR write has reached the hardware.
      There is no reason why a proper MFENCE after the memory mapped write would
      not do the same. Andi Kleen confirmed that MFENCE is sufficient for the
      xAPIC case as well.
      
      Issue MFENCE before writing to the TSC_DEADLINE MSR. This can be done
      unconditionally as all CPUs which have TSC_DEADLINE also have MFENCE
      support.
      
      [ tglx: Massaged the changelog ]
      Signed-off-by: default avatarShaohua Li <shli@fb.com>
      Reviewed-by: default avatarIngo Molnar <mingo@kernel.org>
      Cc: <Kernel-team@fb.com>
      Cc: <lenb@kernel.org>
      Cc: <fenghua.yu@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: stable@vger.kernel.org #v3.7+
      Link: http://lkml.kernel.org/r/20150909041352.GA2059853@devbig257.prn2.facebook.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      5d7c631d
    • Thomas Gleixner's avatar
      x86/ioapic: Force affinity setting in setup_ioapic_dest() · 4857c91f
      Thomas Gleixner authored
      The recent ioapic cleanups changed the affinity setting in
      setup_ioapic_dest() from a direct write to the hardware to the delayed
      affinity setup via irq_set_affinity().
      
      That results in a warning from chained_irq_exit():
      WARNING: CPU: 0 PID: 5 at kernel/irq/migration.c:32 irq_move_masked_irq
      [<ffffffff810a0a88>] irq_move_masked_irq+0xb8/0xc0
      [<ffffffff8103c161>] ioapic_ack_level+0x111/0x130
      [<ffffffff812bbfe8>] intel_gpio_irq_handler+0x148/0x1c0
      
      The reason is that irq_set_affinity() does not write directly to the
      hardware. It marks the affinity setting as pending and executes it
      from the next interrupt. The chained handler infrastructure does not
      take the irq descriptor lock for performance reasons because such a
      chained interrupt is not visible to any interfaces. So the delayed
      affinity setting triggers the warning in irq_move_masked_irq().
      
      Restore the old behaviour by calling the set_affinity function of the
      ioapic chip in setup_ioapic_dest(). This is safe as none of the
      interrupts can be on the fly at this point.
      
      Fixes: aa5cb97f 'x86/irq: Remove x86_io_apic_ops.set_affinity and related interfaces'
      Reported-and-tested-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Jiang Liu <jiang.liu@linux.intel.com>
      Cc: jarkko.nikula@linux.intel.com
      4857c91f
    • Juergen Gross's avatar
      x86/paravirt: Remove the unused pv_time_ops::get_tsc_khz method · cda34fc7
      Juergen Gross authored
      It's not used anywhere.
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: akataria@vmware.com
      Cc: chrisw@sous-sol.org
      Cc: jeremy@goop.org
      Cc: virtualization@lists.linux-foundation.org
      Link: http://lkml.kernel.org/r/1442227343-403-1-git-send-email-jgross@suse.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      cda34fc7
    • Jan Beulich's avatar
      x86/ldt: Fix small LDT allocation for Xen · f454b478
      Jan Beulich authored
      While the following commit:
      
        37868fe1 ("x86/ldt: Make modify_ldt synchronous")
      
      added a nice comment explaining that Xen needs page-aligned
      whole page chunks for guest descriptor tables, it then
      nevertheless used kzalloc() on the small size path.
      
      As I'm unaware of guarantees for kmalloc(PAGE_SIZE, ) to return
      page-aligned memory blocks, I believe this needs to be switched
      back to __get_free_page() (or better get_zeroed_page()).
      Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: David Vrabel <david.vrabel@citrix.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/55E735D6020000780009F1E6@prv-mh.provo.novell.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      f454b478
    • Ingo Molnar's avatar
      x86/vm86: Fix the misleading CONFIG_VM86 Kconfig help text · 1e642812
      Ingo Molnar authored
      The CONFIG_VM86 Kconfig help text is actively misleading, so fix it:
      
        - Don't mark it 'obsolete' in the text as we'll support the ABI as long as CPUs
          support it.
      
        - Qualify the part about software emulation and mention that for some apps you
          want a real vm86 mode.
      
        - Don't scare users away from the option, instead explain what it does.
      Reported-by: default avatarStas Sergeev <stsp@list.ru>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: Austin S Hemmelgarn <ahferroin7@gmail.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Josh Boyer <jwboyer@fedoraproject.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      1e642812
  3. 13 Sep, 2015 1 commit
  4. 05 Sep, 2015 2 commits
  5. 03 Sep, 2015 1 commit
    • Thomas Gleixner's avatar
      x86/alternatives: Make optimize_nops() interrupt safe and synced · 66c117d7
      Thomas Gleixner authored
      Richard reported the following crash:
      
      [    0.036000] BUG: unable to handle kernel paging request at 55501e06
      [    0.036000] IP: [<c0aae48b>] common_interrupt+0xb/0x38
      [    0.036000] Call Trace:
      [    0.036000]  [<c0409c80>] ? add_nops+0x90/0xa0
      [    0.036000]  [<c040a054>] apply_alternatives+0x274/0x630
      
      Chuck decoded:
      
       "  0:   8d 90 90 83 04 24       lea    0x24048390(%eax),%edx
          6:   80 fc 0f                cmp    $0xf,%ah
          9:   a8 0f                   test   $0xf,%al
       >> b:   a0 06 1e 50 55          mov    0x55501e06,%al
         10:   57                      push   %edi
         11:   56                      push   %esi
      
       Interrupt 0x30 occurred while the alternatives code was replacing the
       initial 0x90,0x90,0x90 NOPs (from the ASM_CLAC macro) with the
       optimized version, 0x8d,0x76,0x00. Only the first byte has been
       replaced so far, and it makes a mess out of the insn decoding."
      
      optimize_nops() is buggy in two aspects:
      
      - It's not disabling interrupts across the modification
      - It's lacking a sync_core() call
      
      Add both.
      
      Fixes: 4fd4b6e5 'x86/alternatives: Use optimized NOPs for padding'
      Reported-and-tested-by: default avatar"Richard W.M. Jones" <rjones@redhat.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Richard W.M. Jones <rjones@redhat.com>
      Cc: Chuck Ebbert <cebbert.lkml@gmail.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: stable@vger.kernel.org
      Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1509031232340.15006@nanosSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      66c117d7
  6. 02 Sep, 2015 1 commit
  7. 01 Sep, 2015 29 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e713c80a
      Linus Torvalds authored
      Pull x86 clockevent update from Thomas Gleixner:
       "A single commit, which converts HPET clockevents driver to the new
        callbacks"
      
      * 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/hpet: Migrate to new set_state interface
      e713c80a
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 43af9872
      Linus Torvalds authored
      Pull x86 apic updates from Thomas Gleixner:
       "This udpate contains:
      
         - rework the irq vector array to store a pointer to the irq
           descriptor instead of the irq number to avoid a lookup of the irq
           descriptor in the irq entry path
      
         - lguest interrupt handling cleanups
      
         - conversion of the local apic timer to the new clockevent callbacks
      
         - preparatory changes for the irq argument removal of interrupt flow
           handlers"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/irq: Do not dereference irq descriptor before checking it
        tools/lguest: Clean up include dir
        tools/lguest: Fix redefinition of struct virtio_pci_cfg_cap
        x86/irq: Store irq descriptor in vector array
        genirq: Provide irq_desc_has_action
        x86/irq: Get rid of an indentation level
        x86/irq: Rename VECTOR_UNDEFINED to VECTOR_UNUSED
        x86/irq: Replace numeric constant
        x86/irq: Protect smp_cleanup_move
        x86/lguest: Do not setup unused irq vectors
        x86/lguest: Clean up lguest_setup_irq
        x86/apic: Drop local_irq_save/restore in timer callbacks
        x86/apic: Migrate apic timer to new set_state interface
        x86/irq: Use access helper irq_data_get_affinity_mask()
        x86/irq: Use accessor irq_data_get_irq_handler_data()
        x86/irq: Use accessor irq_data_get_node()
      43af9872
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 17e6b00a
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "This updated pull request does not contain the last few GIC related
        patches which were reported to cause a regression.  There is a fix
        available, but I let it breed for a couple of days first.
      
        The irq departement provides:
      
         - new infrastructure to support non PCI based MSI interrupts
         - a couple of new irq chip drivers
         - the usual pile of fixlets and updates to irq chip drivers
         - preparatory changes for removal of the irq argument from interrupt
           flow handlers
         - preparatory changes to remove IRQF_VALID"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (129 commits)
        irqchip/imx-gpcv2: IMX GPCv2 driver for wakeup sources
        irqchip: Add bcm2836 interrupt controller for Raspberry Pi 2
        irqchip: Add documentation for the bcm2836 interrupt controller
        irqchip/bcm2835: Add support for being used as a second level controller
        irqchip/bcm2835: Refactor handle_IRQ() calls out of MAKE_HWIRQ
        PCI: xilinx: Fix typo in function name
        irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance
        irqchip/gic: Only allow the primary GIC to set the CPU map
        PCI/MSI: pci-xgene-msi: Consolidate chained IRQ handler install/remove
        unicore32/irq: Prepare puv3_gpio_handler for irq argument removal
        tile/pci_gx: Prepare trio_handle_level_irq for irq argument removal
        m68k/irq: Prepare irq handlers for irq argument removal
        C6X/megamode-pic: Prepare megamod_irq_cascade for irq argument removal
        blackfin: Prepare irq handlers for irq argument removal
        arc/irq: Prepare idu_cascade_isr for irq argument removal
        sparc/irq: Use access helper irq_data_get_affinity_mask()
        sparc/irq: Use helper irq_data_get_irq_handler_data()
        parisc/irq: Use access helper irq_data_get_affinity_mask()
        mn10300/irq: Use access helper irq_data_get_affinity_mask()
        irqchip/i8259: Prepare i8259_irq_dispatch for irq argument removal
        ...
      17e6b00a
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5e359bf2
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "Rather large, but nothing exiting:
      
         - new range check for settimeofday() to prevent that boot time
           becomes negative.
         - fix for file time rounding
         - a few simplifications of the hrtimer code
         - fix for the proc/timerlist code so the output of clock realtime
           timers is accurate
         - more y2038 work
         - tree wide conversion of clockevent drivers to the new callbacks"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (88 commits)
        hrtimer: Handle failure of tick_init_highres() gracefully
        hrtimer: Unconfuse switch_hrtimer_base() a bit
        hrtimer: Simplify get_target_base() by returning current base
        hrtimer: Drop return code of hrtimer_switch_to_hres()
        time: Introduce timespec64_to_jiffies()/jiffies_to_timespec64()
        time: Introduce current_kernel_time64()
        time: Introduce struct itimerspec64
        time: Add the common weak version of update_persistent_clock()
        time: Always make sure wall_to_monotonic isn't positive
        time: Fix nanosecond file time rounding in timespec_trunc()
        timer_list: Add the base offset so remaining nsecs are accurate for non monotonic timers
        cris/time: Migrate to new 'set-state' interface
        kernel: broadcast-hrtimer: Migrate to new 'set-state' interface
        xtensa/time: Migrate to new 'set-state' interface
        unicore/time: Migrate to new 'set-state' interface
        um/time: Migrate to new 'set-state' interface
        sparc/time: Migrate to new 'set-state' interface
        sh/localtimer: Migrate to new 'set-state' interface
        score/time: Migrate to new 'set-state' interface
        s390/time: Migrate to new 'set-state' interface
        ...
      5e359bf2
    • Linus Torvalds's avatar
      Merge tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 8d01b66b
      Linus Torvalds authored
      Pull ARM SoC 64-bit changes from Olof Johansson:
       "Here's our branch of ARM64 contents for this merge window.
      
        Most of this is DT contents for new SoCs (or those who have seen new
        device support added).  Maybe we should stop separating out the arm64
        contents here to avoid the kind of internal conflicts as we got this
        time around, where 32- and 64-bit contents conflicted.
      
        Anyhow, on the actual contents:
      
        New SoCs:
      
         - Broadcom North Star 2 (ns2)
         - Marvell Berlin4CT
         - Mediatek MT6795
         - Rockchip RK3368
      
        In addition, there are enhancements for the following platforms:
      
         - Mediatek MT8173: cpuidle-dt updates, misc other additions
         - ZyncMP: A bunch of devices added to the existing DTSI
         - Qualcomm MSM8916 and APQ8016 updates for USB, etc.
      
        + a handful of other updates for various platforms"
      
      * tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (47 commits)
        ARM64: dts: vexpress: Use assigned-clock-parents for sp810
        ARM64: dts: mt6795: enable basic SMP bringup for MT6795
        arm64: Enable Marvell Berlin SoC family in defconfig
        arm64: Enable Marvell Berlin SoC family in Kconfig
        arm64: dts: Add dts files for Marvell Berlin4CT SoC
        ARM64: zynqmp: Move SPI nodes to the right location
        ARM64: zynqmp: Move uart and ttcs to the right location
        ARM64: zynqmp: Enable spi flashes on ep108
        ARM64: zynqmp: Add eeprom memories on i2c bus
        ARM64: zynqmp: Enable sdhci on ep108
        ARM64: zynqmp: Enable watchdog on ep108
        ARM64: zynqmp: Add DWC3 usb support
        ARM64: zynqmp: Add SMMU support
        ARM64: zynqmp: Add CANs node for platform
        ARM64: zynqmp: Use zynqmp specific compatible string for gpio
        devicetree: xilinx: zynqmp: add sata node
        PCI: iproc: Fix BCMA dependency in Kconfig
        arm64: dts: Add Broadcom North Star 2 support
        arm64: Add Broadcom iProc family support
        PCI: iproc: Fix ARM64 dependency in Kconfig
        ...
      8d01b66b
    • Linus Torvalds's avatar
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 2faf962d
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Olof Johansson:
       "We mostly keep defconfigs updates on a separate branch due to their
        tendency to conflict between platforms and this encourages more
        careful separation of code changes and config changes.
      
        Most updates here are minor tweaks, enabling new drivers for various
        platforms, and so on.  Renesas also removed one defconfig
        (marzen_defconfig)"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (44 commits)
        ARM: add TC2 PM support to multi_v7_defconfig
        ARM: tegra: Update multi_v7_defconfig
        ARM: tegra: Update default configuration
        ARM: at91/defconfig: at91_dt: remove ARM_AT91_ETHER
        ARM: at91/defconfig: at91_dt: enable DRM hlcdc support
        ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support
        ARM: multi_v7_defconfig: Enable Allwinner P2WI, PWM, DMA_SUN6I, cryptodev
        ARM: sunxi_defconfig: Enable DMA_SUN6I, P2WI, PWM, cryptodev, EXTCON, FHANDLE
        ARM: shmobile: Enable fixed voltage regulator in shmobile_defconfig
        ARM: multi_v7_defconfig: Select MX6UL and MX7D
        ARM: prima2_defconfig: enable build for hwspinlock
        ARM: prima2_defconfig: enable build for RTC
        ARM: prima2_defconfig: enable build for misc input
        ARM: prima2_defconfig: enable build for SiRFSoC SDHC host
        ARM: prima2_defconfig: fix the outdated defconfig
        ARM: imx_v6_v7_defconfig: Select CONFIG_IKCONFIG_PROC
        ARM: defconfig: orion5x: add DT support
        ARM: qcom_defconfig: Enable options for KS8851 ethernet
        ARM: multi_v7_defconfig: Enable support for PWM Regulators
        ARM: multi_v7_defconfig: Enable ST's PWM driver
        ...
      2faf962d
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b3a5af43
      Linus Torvalds authored
      Pull ARM DT updates from Olof Johansson:
       "Ladies and gentlemen, we proudly announce to you the latest branch of
        ARM device tree contents for the mainline kernel.  Come and see, come
        and see!
      
        No less than twentythree thousand lines of additions! Just imagine the
        joy you will have of using your mainline kernel on newly supported
        hardware such as Rockchip Chromebooks, Freescale i.MX6UL boards or
        UniPhier hardware!
      
        For those of you feeling less adventurous, added hardware support on
        platforms such as TI DM814x and Gumstix Overo platforms might be more
        of your liking.
      
        We've got something for everyone here!
      
        Ahem.  Cough.  So, anyway...
      
        This is the usual large batch of DT updates.  Lots and lots of smaller
        changes, some of the larger ones to point out are:
      
         - Rockchip veyron (Chromebook) support, as well as several other new boards
         - DRM support on Atmel AT91SAM9N12EK
         - USB additions on some Allwinner platforms
         - Mediatek MT6580 support
         - Freescale i.MX6UL support
         - cleanups for Renesas shmobile platforms
         - lots of added devices on LPC18xx
         - lots of added devices and boards on UniPhier
      
        There's also some dependent code added here, in particular some
        branches that are primarily merged through the clock tree"
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (389 commits)
        ARM: tegra: Add gpio-ranges property
        ARM: tegra: Fix AHB base address on Tegra20, Tegra30 and Tegra114
        ARM: tegra: Add Tegra124 PMU support
        ARM: tegra: jetson-tk1: Add GK20A GPU DT node
        ARM: tegra: venice2: Add GK20A GPU DT node
        ARM: tegra: Add IOMMU node to GK20A
        ARM: tegra: Add CPU regulator to the Jetson TK1 device tree
        ARM: tegra: Add entries for cpufreq on Tegra124
        ARM: tegra: Enable the DFLL on the Jetson TK1
        ARM: tegra: Add the DFLL to Tegra124 device tree
        ARM: dts: zynq: Add devicetree entry for Xilinx Zynq reset controller.
        ARM: dts: UniPhier: fix PPI interrupt CPU mask of timer nodes
        ARM: dts: rockchip: correct regulator power states for suspend
        ARM: dts: rockchip: correct regulator PM properties
        ARM: dts: vexpress: Use assigned-clock-parents for sp810
        pinctrl: tegra: Only set the gpio range if needed
        arm: boot: dts: am4372: add ARM timers and SCU nodes
        ARM: dts: AM4372: Add the am4372-rtc compatible string
        ARM: shmobile: r8a7794 dtsi: Add CPG/MSTP Clock Domain
        ARM: shmobile: r8a7793 dtsi: Add CPG/MSTP Clock Domain
        ...
      b3a5af43
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 10217810
      Linus Torvalds authored
      Pull ARM SoC driver updates from Olof Johansson:
       "Some releases this branch is nearly empty, others we have more stuff.
        It tends to gather drivers that need SoC modification or dependencies
        such that they have to (also) go in through our tree.
      
        For this release, we have merged in part of the reset controller tree
        (with handshake that the parts we have merged in will remain stable),
        as well as dependencies on a few clock branches.
      
        In general, new items here are:
      
         - Qualcomm driver for SMM/SMD, which is how they communicate with the
           coprocessors on (some) of their platforms
      
         - memory controller work for ARM's PL172 memory controller
      
         - reset drivers for various platforms
      
         - PMU power domain support for Marvell platforms
      
         - Tegra support for T132/T210 SoCs: PMC, fuse, memory controller
           per-SoC support"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (49 commits)
        ARM: tegra: cpuidle: implement cpuidle_state.enter_freeze()
        ARM: tegra: Disable cpuidle if PSCI is available
        soc/tegra: pmc: Use existing pclk reference
        soc/tegra: pmc: Remove unnecessary return statement
        soc: tegra: Remove redundant $(CONFIG_ARCH_TEGRA) in Makefile
        memory: tegra: Add Tegra210 support
        memory: tegra: Add support for a variable-size client ID bitfield
        clk: shmobile: rz: Add CPG/MSTP Clock Domain support
        clk: shmobile: rcar-gen2: Add CPG/MSTP Clock Domain support
        clk: shmobile: r8a7779: Add CPG/MSTP Clock Domain support
        clk: shmobile: r8a7778: Add CPG/MSTP Clock Domain support
        clk: shmobile: Add CPG/MSTP Clock Domain support
        ARM: dove: create a proper PMU driver for power domains, PMU IRQs and resets
        reset: reset-zynq: Adding support for Xilinx Zynq reset controller.
        docs: dts: Added documentation for Xilinx Zynq Reset Controller bindings.
        MIPS: ath79: Add the reset controller to the AR9132 dtsi
        reset: Add a driver for the reset controller on the AR71XX/AR9XXX
        devicetree: Add bindings for the ATH79 reset controller
        reset: socfpga: Update reset-socfpga to read the altr,modrst-offset property
        doc: dt: add documentation for lpc1850-rgu reset driver
        ...
      10217810
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 50686e8a
      Linus Torvalds authored
      Pull ARM SoC platform updates from Olof Johansson:
       "New or improved SoC support:
      
         - add support for Atmel's SAMA5D2 SoC
         - add support for Freescale i.MX6UL
         - improved support for TI's DM814x platform
         - misc fixes and improvements for RockChip platforms
         - Marvell MVEBU suspend/resume support
      
        A few driver changes that ideally would belong in the drivers branch
        are also here (acked by appropriate maintainers):
      
         - power key input driver for Freescale platforms (svns)
         - RTC driver updates for Freescale platforms (svns/mxc)
         - clk fixes for TI DM814/816X
      
        + a bunch of other changes for various platforms"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (83 commits)
        ARM: rockchip: pm: Fix PTR_ERR() argument
        ARM: imx: mach-imx6ul: Fix allmodconfig build
        clk: ti: fix for definition movement
        ARM: uniphier: drop v7_invalidate_l1 call at secondary entry
        memory: kill off set_irq_flags usage
        rtc: snvs: select option REGMAP_MMIO
        ARM: brcmstb: select ARCH_DMA_ADDR_T_64BIT for LPAE
        ARM: BCM: Enable ARM erratum 798181 for BRCMSTB
        ARM: OMAP2+: Fix power domain operations regression caused by 81xx
        ARM: rockchip: enable PMU_GPIOINT_WAKEUP_EN when entering shallow suspend
        ARM: rockchip: set correct stabilization thresholds in suspend
        ARM: rockchip: rename osc_switch_to_32k variable
        ARM: imx6ul: add fec MAC refrence clock and phy fixup init
        ARM: imx6ul: add fec bits to GPR syscon definition
        rtc: mxc: add support of device tree
        dt-binding: document the binding for mxc rtc
        rtc: mxc: use a second rtc clock
        ARM: davinci: cp_intc: use IRQCHIP_SKIP_SET_WAKE instead of irq_set_wake callback
        soc: mediatek: Fix SCPSYS compilation
        ARM: at91/soc: add basic support for new sama5d2 SoC
        ...
      50686e8a
    • Linus Torvalds's avatar
      Merge tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · c5fc2498
      Linus Torvalds authored
      Pull ARM SoC cleanups from Olof Johansson:
       "A large cleanup branch this release, with a healthy 10k negative line
        delta.
      
        Most of this is removal of legacy (non-DT) support of shmobile
        platforms.  There is also removal of two non-DT platforms on OMAP, and
        the plat-samsung directory is cleaned out by moving most of the
        previously shared-location-but-not-actually-shared files from there to
        the appropriate mach directories instead.
      
        There are other sets of changes in here as well:
      
         - Rob Herring removed use of set_irq_flags under all platforms and
           moved to genirq alternatives
      
         - a series of timer API conversions to set-state interface
      
         - ep93xx, nomadik and ux500 cleanups from Linus Walleij
      
         - __init annotation fixes from Nicolas Pitre
      
         + a bunch of other changes that all add up to a nice set of cleanups"
      
      * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (108 commits)
        ARM/fb: ep93xx: switch framebuffer to use modedb only
        ARM: gemini: Setup timer3 as free running timer
        ARM: gemini: Use timer1 for clockevent
        ARM: gemini: Add missing register definitions for gemini timer
        ARM: ep93xx/timer: Migrate to new 'set-state' interface
        ARM: nomadik: push accelerometer down to boards
        ARM: nomadik: move l2x0 setup to device tree
        ARM: nomadik: selectively enable UART0 on boards
        ARM: nomadik: move hog code to use DT hogs
        ARM: shmobile: Fix mismerges
        ARM: ux500: simplify secondary CPU boot
        ARM: SAMSUNG: remove keypad-core header in plat-samsung
        ARM: SAMSUNG: local watchdog-reset header in mach-s3c64xx
        ARM: SAMSUNG: local onenand-core header in mach-s3c64xx
        ARM: SAMSUNG: local irq-uart header in mach-s3c64xx
        ARM: SAMSUNG: local backlight header in mach-s3c64xx
        ARM: SAMSUNG: local ata-core header in mach-s3c64xx
        ARM: SAMSUNG: local regs-usb-hsotg-phy header in mach-s3c64xx
        ARM: SAMSUNG: local spi-core header in mach-s3c24xx
        ARM: SAMSUNG: local nand-core header in mach-s3c24xx
        ...
      c5fc2498
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 00e3fcc2
      Linus Torvalds authored
      Pull ARM SoC non-urgent fixes from Olof Johansson:
       "We normally collect non-urgent fixes during the release cycle and
        queue them for the merge window.
      
        This time around the list is short (in part because some have gone in
        other branches).
      
         - Maintainers addition for bcm2835
         - IRQ number fix for orion5x (been present since 3.18)
         - DT fix for display on exynos3250
         - Exynos fix to use of IOMEM_ERR_PTR properly"
      
      * tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: orion5x: fix legacy orion5x IRQ numbers
        MAINTAINERS: Explicitly add linux-arm-kernel for bcm2835
        MAINTAINERS: Add myself as a bcm2835 co-maintainer.
        ARM: EXYNOS: Use IOMEM_ERR_PTR when function returns iomem
        ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato
      00e3fcc2
    • Linus Torvalds's avatar
      Merge tag 'arc-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 28dce7c7
      Linus Torvalds authored
      Pull ARC architecture updates from Vineet Gupta:
       "ARC updates for 4.3:
      
         - perf support for ARCv2 based cores (sampling interrupt, SMP)
         - leftovers for ARCv2 support
         - futex fixes"
      
      * tag 'arc-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARCv2: entry: Fix reserved handler
        ARCv2: perf: Finally introduce HS perf unit
        ARCv2: perf: SMP support
        ARCv2: perf: implement exclusion of event counting in user or kernel mode
        ARCv2: perf: Support sampling events using overflow interrupts
        ARCv2: perf: implement "event_set_period"
        ARC: perf: cap the number of counters to hardware max of 32
        ARC: Eliminate some ARCv2 specific code for ARCompact build
        ARC: add/fix some comments in code - no functional change
        ARC: change some branchs to jumps to resolve linkage errors
        ARC: ensure futex ops are atomic in !LLSC config
        ARC: Enable HAVE_FUTEX_CMPXCHG
        ARC: make futex_atomic_cmpxchg_inatomic() return bimodal
        ARC: futex cosmetics
        ARC: add barriers to futex code
        ARCv2: IOC: Allow boot time disable
        ARCv2: SLC: Allow boot time disable
        ARCv2: Support IO Coherency and permutations involving L1 and L2 caches
        ARC: Enable optimistic spinning for LLSC config
        MAINTAINERS: add git tree for the arc architecture
      28dce7c7
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 361f7d17
      Linus Torvalds authored
      Pull x86 core platform updates from Ingo Molnar:
       "The main changes are:
      
         - Intel Atom platform updates.  (Andy Shevchenko)
      
         - modularity fixlets.  (Paul Gortmaker)
      
         - x86 platform clockevents driver updates for lguest, uv and Xen.
           (Viresh Kumar)
      
         - Microsoft Hyper-V TSC fixlet.  (Vitaly Kuznetsov)"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform: Make atom/pmc_atom.c explicitly non-modular
        x86/hyperv: Mark the Hyper-V TSC as unstable
        x86/xen/time: Migrate to new set-state interface
        x86/uv/time: Migrate to new set-state interface
        x86/lguest/timer: Migrate to new set-state interface
        x86/pci/intel_mid_pci: Use proper constants for irq polarity
        x86/pci/intel_mid_pci: Make intel_mid_pci_ops static
        x86/pci/intel_mid_pci: Propagate actual return code
        x86/pci/intel_mid_pci: Work around for IRQ0 assignment
        x86/platform/iosf_mbi: Add Intel Tangier PCI id
        x86/platform/iosf_mbi: Source cleanup
        x86/platform/iosf_mbi: Remove NULL pointer checks for pci_dev_put()
        x86/platform/iosf_mbi: Check return value of debugfs_create properly
        x86/platform/iosf_mbi: Move to dedicated folder
        x86/platform/intel/pmc_atom: Move the PMC-Atom code to arch/x86/platform/atom
        x86/platform/intel/pmc_atom: Add Cherrytrail PMC interface
        x86/platform/intel/pmc_atom: Supply register mappings via PMC object
        x86/platform/intel/pmc_atom: Print index of device in loop
        x86/platform/intel/pmc_atom: Export accessors to PMC registers
      361f7d17
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 25525bea
      Linus Torvalds authored
      Pull x86 mm updates from Ingo Molnar:
       "The dominant change in this cycle was the continued work to isolate
        kernel drivers from MTRR legacies: this tree gets rid of all kernel
        internal driver interfaces to MTRRs (mostly by rewriting it to proper
        PAT interfaces), the only access left is the /proc/mtrr ABI.
      
        This work was done by Luis R Rodriguez.
      
        There's also some related PCI interface additions for which I've
        Cc:-ed Bjorn"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
        x86/mm/mtrr: Remove kernel internal MTRR interfaces: unexport mtrr_add() and mtrr_del()
        s390/io: Add pci_iomap_wc() and pci_iomap_wc_range()
        drivers/dma/iop-adma: Use dma_alloc_writecombine() kernel-style
        drivers/video/fbdev/vt8623fb: Use arch_phys_wc_add() and pci_iomap_wc()
        drivers/video/fbdev/s3fb: Use arch_phys_wc_add() and pci_iomap_wc()
        drivers/video/fbdev/arkfb.c: Use arch_phys_wc_add() and pci_iomap_wc()
        PCI: Add pci_iomap_wc() variants
        drivers/video/fbdev/gxt4500: Use pci_ioremap_wc_bar() to map framebuffer
        drivers/video/fbdev/kyrofb: Use arch_phys_wc_add() and pci_ioremap_wc_bar()
        drivers/video/fbdev/i740fb: Use arch_phys_wc_add() and pci_ioremap_wc_bar()
        PCI: Add pci_ioremap_wc_bar()
        x86/mm: Make kernel/check.c explicitly non-modular
        x86/mm/pat: Make mm/pageattr[-test].c explicitly non-modular
        x86/mm/pat: Add comments to cachemode translation tables
        arch/*/io.h: Add ioremap_uc() to all architectures
        drivers/video/fbdev/atyfb: Use arch_phys_wc_add() and ioremap_wc()
        drivers/video/fbdev/atyfb: Replace MTRR UC hole with strong UC
        drivers/video/fbdev/atyfb: Clarify ioremap() base and length used
        drivers/video/fbdev/atyfb: Carve out framebuffer length fudging into a helper
        x86/mm, asm-generic: Add IOMMU ioremap_uc() variant default
        ...
      25525bea
    • Linus Torvalds's avatar
      Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2962156d
      Linus Torvalds authored
      Pull x86 irq fixlet from Ingo Molnar:
       "A single change that hides the 'HYP:' line in /proc/interrupts when
        it's unused"
      
      * 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/irq: Hide 'HYP:' line in /proc/interrupts when not on Xen/Hyper-V
      2962156d
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6b2282aa
      Linus Torvalds authored
      Pull x86 cpu updates from Ingo Molnar:
       "Two changes: a suspend/resume quirk and a new CPUID bit definition"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpufeature: Add feature bit for Intel's Silicon Debug CPUID bit
        x86/cpu: Restore MSR_IA32_ENERGY_PERF_BIAS after resume
      6b2282aa
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0c0fee01
      Linus Torvalds authored
      Pull x86 init code fixlet from Ingo Molnar:
       "A single change: fix obsolete init code annotations"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Drop bogus __ref / __refdata annotations
      0c0fee01
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a0c0d985
      Linus Torvalds authored
      Pull x86 build fixlet from Ingo Molnar:
       "A single change propagating CONFIG_JUMP_LABEL into the x86 defconfigs"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kconfig: Enable CONFIG_JUMP_LABEL in the defconfigs
      a0c0d985
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 11e612dd
      Linus Torvalds authored
      Pull x86 boot updates from Ingo Molnar:
       "The main x86 bootup related changes in this cycle were:
      
         - more boot time optimizations.  (Len Brown)
      
         - implement hex output to allow the debugging of early bootup
           parameters.  (Kees Cook)
      
         - remove obsolete MCA leftovers.  (Paolo Pisati)"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/smpboot: Remove APIC.wait_for_init_deassert and atomic init_deasserted
        x86/smpboot: Remove SIPI delays from cpu_up()
        x86/smpboot: Remove udelay(100) when polling cpu_callin_map
        x86/smpboot: Remove udelay(100) when polling cpu_initialized_map
        x86/boot: Obsolete the MCA sys_desc_table
        x86/boot: Add hex output for debugging
      11e612dd
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5778077d
      Linus Torvalds authored
      Pull x86 asm changes from Ingo Molnar:
       "The biggest changes in this cycle were:
      
         - Revamp, simplify (and in some cases fix) Time Stamp Counter (TSC)
           primitives.  (Andy Lutomirski)
      
         - Add new, comprehensible entry and exit handlers written in C.
           (Andy Lutomirski)
      
         - vm86 mode cleanups and fixes.  (Brian Gerst)
      
         - 32-bit compat code cleanups.  (Brian Gerst)
      
        The amount of simplification in low level assembly code is already
        palpable:
      
           arch/x86/entry/entry_32.S                          | 130 +----
           arch/x86/entry/entry_64.S                          | 197 ++-----
      
        but more simplifications are planned.
      
        There's also the usual laudry mix of low level changes - see the
        changelog for details"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (83 commits)
        x86/asm: Drop repeated macro of X86_EFLAGS_AC definition
        x86/asm/msr: Make wrmsrl() a function
        x86/asm/delay: Introduce an MWAITX-based delay with a configurable timer
        x86/asm: Add MONITORX/MWAITX instruction support
        x86/traps: Weaken context tracking entry assertions
        x86/asm/tsc: Add rdtscll() merge helper
        selftests/x86: Add syscall_nt selftest
        selftests/x86: Disable sigreturn_64
        x86/vdso: Emit a GNU hash
        x86/entry: Remove do_notify_resume(), syscall_trace_leave(), and their TIF masks
        x86/entry/32: Migrate to C exit path
        x86/entry/32: Remove 32-bit syscall audit optimizations
        x86/vm86: Rename vm86->v86flags and v86mask
        x86/vm86: Rename vm86->vm86_info to user_vm86
        x86/vm86: Clean up vm86.h includes
        x86/vm86: Move the vm86 IRQ definitions to vm86.h
        x86/vm86: Use the normal pt_regs area for vm86
        x86/vm86: Eliminate 'struct kernel_vm86_struct'
        x86/vm86: Move fields from 'struct kernel_vm86_struct' to 'struct vm86'
        x86/vm86: Move vm86 fields out of 'thread_struct'
        ...
      5778077d
    • Linus Torvalds's avatar
      Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 65a99597
      Linus Torvalds authored
      Pull NOHZ updates from Ingo Molnar:
       "The main changes, mostly written by Frederic Weisbecker, include:
      
         - Fix some jiffies based cputime assumptions.  (No real harm because
           the concerned code isn't used by full dynticks.)
      
         - Simplify jiffies <-> usecs conversions.  Remove dead code.
      
         - Remove early hacks on nohz full code that avoided messing up idle
           nohz internals.  Now nohz integrates well full and idle and such
           hack have become needless.
      
         - Restart nohz full tick from irq exit.  (A simplification and a
           preparation for future optimization on scheduler kick to nohz
           full)
      
         - Code cleanups.
      
         - Tile driver isolation enhancement on top of nohz.  (Chris Metcalf)"
      
      * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        nohz: Remove useless argument on tick_nohz_task_switch()
        nohz: Move tick_nohz_restart_sched_tick() above its users
        nohz: Restart nohz full tick from irq exit
        nohz: Remove idle task special case
        nohz: Prevent tilegx network driver interrupts
        alpha: Fix jiffies based cputime assumption
        apm32: Fix cputime == jiffies assumption
        jiffies: Remove HZ > USEC_PER_SEC special case
      65a99597
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 418c2e1f
      Linus Torvalds authored
      Pull scheduler fix from Ingo Molnar:
       "This is a leftover scheduler fix from the v4.2 cycle"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: Fix cpu_active_mask/cpu_online_mask race
      418c2e1f
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a1d85611
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "The biggest change in this cycle is the rewrite of the main SMP load
        balancing metric: the CPU load/utilization.  The main goal was to make
        the metric more precise and more representative - see the changelog of
        this commit for the gory details:
      
          9d89c257 ("sched/fair: Rewrite runnable load and utilization average tracking")
      
        It is done in a way that significantly reduces complexity of the code:
      
          5 files changed, 249 insertions(+), 494 deletions(-)
      
        and the performance testing results are encouraging.  Nevertheless we
        need to keep an eye on potential regressions, since this potentially
        affects every SMP workload in existence.
      
        This work comes from Yuyang Du.
      
        Other changes:
      
         - SCHED_DL updates.  (Andrea Parri)
      
         - Simplify architecture callbacks by removing finish_arch_switch().
           (Peter Zijlstra et al)
      
         - cputime accounting: guarantee stime + utime == rtime.  (Peter
           Zijlstra)
      
         - optimize idle CPU wakeups some more - inspired by Facebook server
           loads.  (Mike Galbraith)
      
         - stop_machine fixes and updates.  (Oleg Nesterov)
      
         - Introduce the 'trace_sched_waking' tracepoint.  (Peter Zijlstra)
      
         - sched/numa tweaks.  (Srikar Dronamraju)
      
         - misc fixes and small cleanups"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (44 commits)
        sched/deadline: Fix comment in enqueue_task_dl()
        sched/deadline: Fix comment in push_dl_tasks()
        sched: Change the sched_class::set_cpus_allowed() calling context
        sched: Make sched_class::set_cpus_allowed() unconditional
        sched: Fix a race between __kthread_bind() and sched_setaffinity()
        sched: Ensure a task has a non-normalized vruntime when returning back to CFS
        sched/numa: Fix NUMA_DIRECT topology identification
        tile: Reorganize _switch_to()
        sched, sparc32: Update scheduler comments in copy_thread()
        sched: Remove finish_arch_switch()
        sched, tile: Remove finish_arch_switch
        sched, sh: Fold finish_arch_switch() into switch_to()
        sched, score: Remove finish_arch_switch()
        sched, avr32: Remove finish_arch_switch()
        sched, MIPS: Get rid of finish_arch_switch()
        sched, arm: Remove finish_arch_switch()
        sched/fair: Clean up load average references
        sched/fair: Provide runnable_load_avg back to cfs_rq
        sched/fair: Remove task and group entity load when they are dead
        sched/fair: Init cfs_rq's sched_entity load average
        ...
      a1d85611
    • Linus Torvalds's avatar
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3959df1d
      Linus Torvalds authored
      Pull RAS updates from Ingo Molnar:
       "MCE handling updates, but also some generic drivers/edac/ changes to
        better organize the Kconfig space"
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ras: Move AMD MCE injector to arch/x86/ras/
        x86/mce: Add a wrapper around mce_log() for injection
        x86/mce: Rename rcu_dereference_check_mce() to mce_log_get_idx_check()
        RAS: Add a menuconfig option with descriptive text
        x86/mce: Reenable CMCI banks when swiching back to interrupt mode
        x86/mce: Clear Local MCE opt-in before kexec
        x86/mce: Remove unused function declarations
        x86/mce: Kill drain_mcelog_buffer()
        x86/mce: Avoid potential deadlock due to printk() in MCE context
        x86/mce: Remove the MCE ring for Action Optional errors
        x86/mce: Don't use percpu workqueues
        x86/mce: Provide a lockless memory pool to save error records
        x86/mce: Reuse one of the u16 padding fields in 'struct mce'
      3959df1d
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 41d859a8
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "Main perf kernel side changes:
      
         - uprobes updates/fixes.  (Oleg Nesterov)
      
         - Add PERF_RECORD_SWITCH to indicate context switches and use it in
           tooling.  (Adrian Hunter)
      
         - Support BPF programs attached to uprobes and first steps for BPF
           tooling support.  (Wang Nan)
      
         - x86 generic x86 MSR-to-perf PMU driver.  (Andy Lutomirski)
      
         - x86 Intel PT, LBR and BTS updates.  (Alexander Shishkin)
      
         - x86 Intel Skylake support.  (Andi Kleen)
      
         - x86 Intel Knights Landing (KNL) RAPL support.  (Dasaratharaman
           Chandramouli)
      
         - x86 Intel Broadwell-DE uncore support.  (Kan Liang)
      
         - x86 hw breakpoints robustization (Andy Lutomirski)
      
        Main perf tooling side changes:
      
         - Support Intel PT in several tools, enabling the use of the
           processor trace feature introduced in Intel Broadwell processors:
           (Adrian Hunter)
      
             # dmesg | grep Performance
             # [0.188477] Performance Events: PEBS fmt2+, 16-deep LBR, Broadwell events, full-width counters, Intel PMU driver.
             # perf record -e intel_pt//u -a sleep 1
             [ perf record: Woken up 1 times to write data ]
             [ perf record: Captured and wrote 0.216 MB perf.data ]
             # perf script # then navigate in the tool output to some area, like this one:
             184 1030 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba661440 dl_main (/usr/lib64/ld-2.17.so)
             185 1457 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba669f10 _dl_new_object (/usr/lib64/ld-2.17.so)
             186 9f37 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba677b90 strlen (/usr/lib64/ld-2.17.so)
             187 7ba3 strlen (/usr/lib64/ld-2.17.so) => 7f21ba677c75 strlen (/usr/lib64/ld-2.17.so)
             188 7c78 strlen (/usr/lib64/ld-2.17.so) => 7f21ba669f3c _dl_new_object (/usr/lib64/ld-2.17.so)
             189 9f8a _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba65fab0 calloc@plt (/usr/lib64/ld-2.17.so)
             190 fab0 calloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e70 calloc (/usr/lib64/ld-2.17.so)
             191 5e87 calloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa90 malloc@plt (/usr/lib64/ld-2.17.so)
             192 fa90 malloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e60 malloc (/usr/lib64/ld-2.17.so)
             193 5e68 malloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so)
             194 fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so) => 7f21ba675d50 __libc_memalign (/usr/lib64/ld-2.17.so)
             195 5d63 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e20 __libc_memalign (/usr/lib64/ld-2.17.so)
             196 5e40 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675d73 __libc_memalign (/usr/lib64/ld-2.17.so)
             197 5d97 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e18 __libc_memalign (/usr/lib64/ld-2.17.so)
             198 5e1e __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675df9 __libc_memalign (/usr/lib64/ld-2.17.so)
             199 5e10 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba669f8f _dl_new_object (/usr/lib64/ld-2.17.so)
             200 9fc2 _dl_new_object (/usr/lib64/ld-2.17.so) =>  7f21ba678e70 memcpy (/usr/lib64/ld-2.17.so)
             201 8e8c memcpy (/usr/lib64/ld-2.17.so) => 7f21ba678ea0 memcpy (/usr/lib64/ld-2.17.so)
      
         - Add support for using several Intel PT features (CYC, MTC packets),
           the relevant documentation was updated in:
               tools/perf/Documentation/intel-pt.txt
           briefly describing those packets, its purposes, how to configure
           them in the event config terms and relevant external documentation
           for further reading.  (Adrian Hunter)
      
         - Introduce support for probing at an absolute address, for user and
           kernel 'perf probe's, useful when one have the symbol maps on a
           developer machine but not on an embedded system.  (Wang Nan)
      
         - Add Intel BTS support, with a call-graph script to show it and PT
           in use in a GUI using 'perf script' python scripting with
           postgresql and Qt.  (Adrian Hunter)
      
         - Allow selecting the type of callchains per event, including
           disabling callchains in all but one entry in an event list, to save
           space, and also to ask for the callchains collected in one event to
           be used in other events.  (Kan Liang)
      
         - Beautify more syscall arguments in 'perf trace': (Arnaldo Carvalho
           de Melo)
             * A bunch more translate file/pathnames from pointers to strings.
             * Convert numbers to strings for the 'keyctl' syscall 'option'
               arg.
             * Add missing 'clockid' entries.
      
         - Introduce 'srcfile' sort key: (Andi Kleen)
      
             # perf record -F 10000 usleep 1
             # perf report --stdio --dsos '[kernel.vmlinux]' -s srcfile
             <SNIP>
             # Overhead  Source File
                26.49%  copy_page_64.S
                 5.49%  signal.c
                 0.51%  msr.h
             #
      
           It can be combined with other fields, for instance, experiment with
           '-s srcfile,symbol'.
      
           There are some oddities in some distros and with some specific
           DSOs, being investigated, so your mileage may vary.
      
         - Support per-event 'freq' term: (Namhyung Kim)
      
             $ perf record -e 'cpu/instructions,freq=1234/',cycles -c 1000 sleep 1
             $ perf evlist -F
             cpu/instructions,freq=1234/: sample_freq=1234
             cycles: sample_period=1000
             $
      
         - Deref sys_enter pointer args with contents from probe:vfs_getname,
           showing pathnames instead of pointers in many syscalls in 'perf
           trace'.  (Arnaldo Carvalho de Melo)
      
         - Stop collecting /proc/kallsyms in perf.data files, saving about
           4.5MB on a typical x86-64 system, use the the symbol resolution
           routines used in all the other tools (report, top, etc) now that we
           can ask libtraceevent to use perf's symbol resolution code.
           (Arnaldo Carvalho de Melo)
      
         - Allow filtering out of perf's PID via 'perf record --exclude-perf'.
           (Wang Nan)
      
         - 'perf trace' now supports syscall groups, like strace, i.e:
      
             $ trace -e file touch file
      
           Will expand 'file' into multiple, file related, syscalls.  More
           work needed to add extra groups for other syscall groups, and also
           to complement what was added for the 'file' group, included as a
           proof of concept.  (Arnaldo Carvalho de Melo)
      
         - Add lock_pi stresser to 'perf bench futex', to test the kernel code
           related to FUTEX_(UN)LOCK_PI.  (Davidlohr Bueso)
      
         - Let user have timestamps with per-thread recording in 'perf record'
           (Adrian Hunter)
      
         - ... and tons of other changes, 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: (240 commits)
        perf evlist: Add backpointer for perf_env to evlist
        perf tools: Rename perf_session_env to perf_env
        perf tools: Do not change lib/api/fs/debugfs directly
        perf tools: Add tracing_path and remove unneeded functions
        perf buildid: Introduce sysfs/filename__sprintf_build_id
        perf evsel: Add a backpointer to the evlist a evsel is in
        perf trace: Add header with copyright and background info
        perf scripts python: Add new compaction-times script
        perf stat: Get correct cpu id for print_aggr
        tools lib traceeveent: Allow for negative numbers in print format
        perf script: Add --[no-]-demangle/--[no-]-demangle-kernel
        tracing/uprobes: Do not print '0x (null)' when offset is 0
        perf probe: Support probing at absolute address
        perf probe: Fix error reported when offset without function
        perf probe: Fix list result when address is zero
        perf probe: Fix list result when symbol can't be found
        tools build: Allow duplicate objects in the object list
        perf tools: Remove export.h from MANIFEST
        perf probe: Prevent segfault when reading probe point with absolute address
        perf tools: Update Intel PT documentation
        ...
      41d859a8
    • Linus Torvalds's avatar
      Merge branch 'mm-kasan-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 46580009
      Linus Torvalds authored
      Pull x86/kasan changes from Ingo Molnar:
       "These are two KASAN changes that factor out (and generalize) x86
        specific KASAN code from x86 to mm"
      
      * 'mm-kasan-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kasan, mm: Introduce generic kasan_populate_zero_shadow()
        x86/kasan: Define KASAN_SHADOW_OFFSET per architecture
      46580009
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e10994ff
      Linus Torvalds authored
      Pull liblockdep fixes from Ingo Molnar:
       "Three liblockdep fixes left over from the v4.2 cycle"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tools/liblockdep: Use the rbtree header provided by common tools headers
        tools/liblockdep: Correct macro for WARN
        tools: Restore export.h
      e10994ff
    • Linus Torvalds's avatar
      Merge branch 'core-types-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5757bd61
      Linus Torvalds authored
      Pull inlining tuning from Ingo Molnar:
       "A handful of inlining optimizations inspired by x86 work but
        applicable in general"
      
      * 'core-types-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        jiffies: Force inlining of {m,u}msecs_to_jiffies()
        x86/hweight: Force inlining of __arch_hweight{32,64}()
        linux/bitmap: Force inlining of bitmap weight functions
      5757bd61
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7073bc66
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "The main RCU changes in this cycle are:
      
         - the combination of tree geometry-initialization simplifications and
           OS-jitter-reduction changes to expedited grace periods.  These two
           are stacked due to the large number of conflicts that would
           otherwise result.
      
         - privatize smp_mb__after_unlock_lock().
      
           This commit moves the definition of smp_mb__after_unlock_lock() to
           kernel/rcu/tree.h, in recognition of the fact that RCU is the only
           thing using this, that nothing else is likely to use it, and that
           it is likely to go away completely.
      
         - documentation updates.
      
         - torture-test updates.
      
         - misc fixes"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)
        rcu,locking: Privatize smp_mb__after_unlock_lock()
        rcu: Silence lockdep false positive for expedited grace periods
        rcu: Don't disable CPU hotplug during OOM notifiers
        scripts: Make checkpatch.pl warn on expedited RCU grace periods
        rcu: Update MAINTAINERS entry
        rcu: Clarify CONFIG_RCU_EQS_DEBUG help text
        rcu: Fix backwards RCU_LOCKDEP_WARN() in synchronize_rcu_tasks()
        rcu: Rename rcu_lockdep_assert() to RCU_LOCKDEP_WARN()
        rcu: Make rcu_is_watching() really notrace
        cpu: Wait for RCU grace periods concurrently
        rcu: Create a synchronize_rcu_mult()
        rcu: Fix obsolete priority-boosting comment
        rcu: Use WRITE_ONCE in RCU_INIT_POINTER
        rcu: Hide RCU_NOCB_CPU behind RCU_EXPERT
        rcu: Add RCU-sched flavors of get-state and cond-sync
        rcu: Add fastpath bypassing funnel locking
        rcu: Rename RCU_GP_DONE_FQS to RCU_GP_DOING_FQS
        rcu: Pull out wait_event*() condition into helper function
        documentation: Describe new expedited stall warnings
        rcu: Add stall warnings to synchronize_sched_expedited()
        ...
      7073bc66