1. 03 Jul, 2019 6 commits
    • Thomas Gleixner's avatar
      x86/irq: Seperate unused system vectors from spurious entry again · f8a8fe61
      Thomas Gleixner authored
      Quite some time ago the interrupt entry stubs for unused vectors in the
      system vector range got removed and directly mapped to the spurious
      interrupt vector entry point.
      
      Sounds reasonable, but it's subtly broken. The spurious interrupt vector
      entry point pushes vector number 0xFF on the stack which makes the whole
      logic in __smp_spurious_interrupt() pointless.
      
      As a consequence any spurious interrupt which comes from a vector != 0xFF
      is treated as a real spurious interrupt (vector 0xFF) and not
      acknowledged. That subsequently stalls all interrupt vectors of equal and
      lower priority, which brings the system to a grinding halt.
      
      This can happen because even on 64-bit the system vector space is not
      guaranteed to be fully populated. A full compile time handling of the
      unused vectors is not possible because quite some of them are conditonally
      populated at runtime.
      
      Bring the entry stubs back, which wastes 160 bytes if all stubs are unused,
      but gains the proper handling back. There is no point to selectively spare
      some of the stubs which are known at compile time as the required code in
      the IDT management would be way larger and convoluted.
      
      Do not route the spurious entries through common_interrupt and do_IRQ() as
      the original code did. Route it to smp_spurious_interrupt() which evaluates
      the vector number and acts accordingly now that the real vector numbers are
      handed in.
      
      Fixup the pr_warn so the actual spurious vector (0xff) is clearly
      distiguished from the other vectors and also note for the vectored case
      whether it was pending in the ISR or not.
      
       "Spurious APIC interrupt (vector 0xFF) on CPU#0, should never happen."
       "Spurious interrupt vector 0xed on CPU#1. Acked."
       "Spurious interrupt vector 0xee on CPU#1. Not pending!."
      
      Fixes: 2414e021 ("x86: Avoid building unused IRQ entry stubs")
      Reported-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Jan Beulich <jbeulich@suse.com>
      Link: https://lkml.kernel.org/r/20190628111440.550568228@linutronix.de
      f8a8fe61
    • Thomas Gleixner's avatar
      x86/irq: Handle spurious interrupt after shutdown gracefully · b7107a67
      Thomas Gleixner authored
      Since the rework of the vector management, warnings about spurious
      interrupts have been reported. Robert provided some more information and
      did an initial analysis. The following situation leads to these warnings:
      
         CPU 0                  CPU 1               IO_APIC
      
                                                    interrupt is raised
                                                    sent to CPU1
      			  Unable to handle
      			  immediately
      			  (interrupts off,
      			   deep idle delay)
         mask()
         ...
         free()
           shutdown()
           synchronize_irq()
           clear_vector()
                                do_IRQ()
                                  -> vector is clear
      
      Before the rework the vector entries of legacy interrupts were statically
      assigned and occupied precious vector space while most of them were
      unused. Due to that the above situation was handled silently because the
      vector was handled and the core handler of the assigned interrupt
      descriptor noticed that it is shut down and returned.
      
      While this has been usually observed with legacy interrupts, this situation
      is not limited to them. Any other interrupt source, e.g. MSI, can cause the
      same issue.
      
      After adding proper synchronization for level triggered interrupts, this
      can only happen for edge triggered interrupts where the IO-APIC obviously
      cannot provide information about interrupts in flight.
      
      While the spurious warning is actually harmless in this case it worries
      users and driver developers.
      
      Handle it gracefully by marking the vector entry as VECTOR_SHUTDOWN instead
      of VECTOR_UNUSED when the vector is freed up.
      
      If that above late handling happens the spurious detector will not complain
      and switch the entry to VECTOR_UNUSED. Any subsequent spurious interrupt on
      that line will trigger the spurious warning as before.
      
      Fixes: 464d1230 ("x86/vector: Switch IOAPIC to global reservation mode")
      Reported-by: default avatarRobert Hodaszi <Robert.Hodaszi@digi.com>
      Signed-off-by: Thomas Gleixner <tglx@linutronix.de>-
      Tested-by: default avatarRobert Hodaszi <Robert.Hodaszi@digi.com>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Link: https://lkml.kernel.org/r/20190628111440.459647741@linutronix.de
      b7107a67
    • Thomas Gleixner's avatar
      x86/ioapic: Implement irq_get_irqchip_state() callback · dfe0cf8b
      Thomas Gleixner authored
      When an interrupt is shut down in free_irq() there might be an inflight
      interrupt pending in the IO-APIC remote IRR which is not yet serviced. That
      means the interrupt has been sent to the target CPUs local APIC, but the
      target CPU is in a state which delays the servicing.
      
      So free_irq() would proceed to free resources and to clear the vector
      because synchronize_hardirq() does not see an interrupt handler in
      progress.
      
      That can trigger a spurious interrupt warning, which is harmless and just
      confuses users, but it also can leave the remote IRR in a stale state
      because once the handler is invoked the interrupt resources might be freed
      already and therefore acknowledgement is not possible anymore.
      
      Implement the irq_get_irqchip_state() callback for the IO-APIC irq chip. The
      callback is invoked from free_irq() via __synchronize_hardirq(). Check the
      remote IRR bit of the interrupt and return 'in flight' if it is set and the
      interrupt is configured in level mode. For edge mode the remote IRR has no
      meaning.
      
      As this is only meaningful for level triggered interrupts this won't cure
      the potential spurious interrupt warning for edge triggered interrupts, but
      the edge trigger case does not result in stale hardware state. This has to
      be addressed at the vector/interrupt entry level seperately.
      
      Fixes: 464d1230 ("x86/vector: Switch IOAPIC to global reservation mode")
      Reported-by: default avatarRobert Hodaszi <Robert.Hodaszi@digi.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Link: https://lkml.kernel.org/r/20190628111440.370295517@linutronix.de
      dfe0cf8b
    • Thomas Gleixner's avatar
      genirq: Add optional hardware synchronization for shutdown · 62e04686
      Thomas Gleixner authored
      free_irq() ensures that no hardware interrupt handler is executing on a
      different CPU before actually releasing resources and deactivating the
      interrupt completely in a domain hierarchy.
      
      But that does not catch the case where the interrupt is on flight at the
      hardware level but not yet serviced by the target CPU. That creates an
      interesing race condition:
      
         CPU 0                  CPU 1               IRQ CHIP
      
                                                    interrupt is raised
                                                    sent to CPU1
      			  Unable to handle
      			  immediately
      			  (interrupts off,
      			   deep idle delay)
         mask()
         ...
         free()
           shutdown()
           synchronize_irq()
           release_resources()
                                do_IRQ()
                                  -> resources are not available
      
      That might be harmless and just trigger a spurious interrupt warning, but
      some interrupt chips might get into a wedged state.
      
      Utilize the existing irq_get_irqchip_state() callback for the
      synchronization in free_irq().
      
      synchronize_hardirq() is not using this mechanism as it might actually
      deadlock unter certain conditions, e.g. when called with interrupts
      disabled and the target CPU is the one on which the synchronization is
      invoked. synchronize_irq() uses it because that function cannot be called
      from non preemtible contexts as it might sleep.
      
      No functional change intended and according to Marc the existing GIC
      implementations where the driver supports the callback should be able
      to cope with that core change. Famous last words.
      
      Fixes: 464d1230 ("x86/vector: Switch IOAPIC to global reservation mode")
      Reported-by: default avatarRobert Hodaszi <Robert.Hodaszi@digi.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Tested-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Link: https://lkml.kernel.org/r/20190628111440.279463375@linutronix.de
      62e04686
    • Thomas Gleixner's avatar
      genirq: Fix misleading synchronize_irq() documentation · 1d21f2af
      Thomas Gleixner authored
      The function might sleep, so it cannot be called from interrupt
      context. Not even with care.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Link: https://lkml.kernel.org/r/20190628111440.189241552@linutronix.de
      1d21f2af
    • Thomas Gleixner's avatar
      genirq: Delay deactivation in free_irq() · 4001d8e8
      Thomas Gleixner authored
      When interrupts are shutdown, they are immediately deactivated in the
      irqdomain hierarchy. While this looks obviously correct there is a subtle
      issue:
      
      There might be an interrupt in flight when free_irq() is invoking the
      shutdown. This is properly handled at the irq descriptor / primary handler
      level, but the deactivation might completely disable resources which are
      required to acknowledge the interrupt.
      
      Split the shutdown code and deactivate the interrupt after synchronization
      in free_irq(). Fixup all other usage sites where this is not an issue to
      invoke the combined shutdown_and_deactivate() function instead.
      
      This still might be an issue if the interrupt in flight servicing is
      delayed on a remote CPU beyond the invocation of synchronize_irq(), but
      that cannot be handled at that level and needs to be handled in the
      synchronize_irq() context.
      
      Fixes: f8264e34 ("irqdomain: Introduce new interfaces to support hierarchy irqdomains")
      Reported-by: default avatarRobert Hodaszi <Robert.Hodaszi@digi.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Link: https://lkml.kernel.org/r/20190628111440.098196390@linutronix.de
      4001d8e8
  2. 29 Jun, 2019 1 commit
    • Thomas Gleixner's avatar
      x86/timer: Skip PIT initialization on modern chipsets · c8c40767
      Thomas Gleixner authored
      Recent Intel chipsets including Skylake and ApolloLake have a special
      ITSSPRC register which allows the 8254 PIT to be gated.  When gated, the
      8254 registers can still be programmed as normal, but there are no IRQ0
      timer interrupts.
      
      Some products such as the Connex L1430 and exone go Rugged E11 use this
      register to ship with the PIT gated by default. This causes Linux to fail
      to boot:
      
        Kernel panic - not syncing: IO-APIC + timer doesn't work! Boot with
        apic=debug and send a report.
      
      The panic happens before the framebuffer is initialized, so to the user, it
      appears as an early boot hang on a black screen.
      
      Affected products typically have a BIOS option that can be used to enable
      the 8254 and make Linux work (Chipset -> South Cluster Configuration ->
      Miscellaneous Configuration -> 8254 Clock Gating), however it would be best
      to make Linux support the no-8254 case.
      
      Modern sytems allow to discover the TSC and local APIC timer frequencies,
      so the calibration against the PIT is not required. These systems have
      always running timers and the local APIC timer works also in deep power
      states.
      
      So the setup of the PIT including the IO-APIC timer interrupt delivery
      checks are a pointless exercise.
      
      Skip the PIT setup and the IO-APIC timer interrupt checks on these systems,
      which avoids the panic caused by non ticking PITs and also speeds up the
      boot process.
      
      Thanks to Daniel for providing the changelog, initial analysis of the
      problem and testing against a variety of machines.
      Reported-by: default avatarDaniel Drake <drake@endlessm.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Tested-by: default avatarDaniel Drake <drake@endlessm.com>
      Cc: bp@alien8.de
      Cc: hpa@zytor.com
      Cc: linux@endlessm.com
      Cc: rafael.j.wysocki@intel.com
      Cc: hdegoede@redhat.com
      Link: https://lkml.kernel.org/r/20190628072307.24678-1-drake@endlessm.com
      c8c40767
  3. 23 Jun, 2019 1 commit
  4. 16 Jun, 2019 1 commit
  5. 09 May, 2019 3 commits
  6. 07 May, 2019 6 commits
    • Linus Torvalds's avatar
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ffa6f55e
      Linus Torvalds authored
      Pull RAS updates from Borislav Petkov:
      
       - Support for varying MCA bank numbers per CPU: this is in preparation
         for future CPU enablement (Yazen Ghannam)
      
       - MCA banks read race fix (Tony Luck)
      
       - Facility to filter MCEs which should not be logged (Yazen Ghannam)
      
       - The usual round of cleanups and fixes
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/MCE/AMD: Don't report L1 BTB MCA errors on some family 17h models
        x86/MCE: Add an MCE-record filtering function
        RAS/CEC: Increment cec_entered under the mutex lock
        x86/mce: Fix debugfs_simple_attr.cocci warnings
        x86/mce: Remove mce_report_event()
        x86/mce: Handle varying MCA bank counts
        x86/mce: Fix machine_check_poll() tests for error types
        MAINTAINERS: Fix file pattern for X86 MCE INFRASTRUCTURE
        x86/MCE: Group AMD function prototypes in <asm/mce.h>
      ffa6f55e
    • Linus Torvalds's avatar
      Merge tag 'edac_for_5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 275b103a
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - amd64_edac: Family 0x17, models 0x30-.. enablement (Yazen Ghannam)
      
       - skx_*: Librarize it so that it can be shared between drivers (Qiuxu Zhuo)
      
       - altera: Stratix10 improvements (Thor Thayer)
      
       - The usual round of fixes, fixlets and cleanups
      
      * tag 'edac_for_5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
        Revert "EDAC/amd64: Support more than two controllers for chip select handling"
        arm64: dts: stratix10: Use new Stratix10 EDAC bindings
        Documentation: dt: edac: Add Stratix10 Peripheral bindings
        Documentation: dt: edac: Fix Stratix10 IRQ bindings
        EDAC/altera, firmware/intel: Add Stratix10 ECC DBE SMC call
        EDAC/altera: Initialize peripheral FIFOs in probe()
        EDAC/altera: Do less intrusive error injection
        EDAC/amd64: Adjust printed chip select sizes when interleaved
        EDAC/amd64: Support more than two controllers for chip select handling
        EDAC/amd64: Recognize x16 symbol size
        EDAC/amd64: Set maximum channel layer size depending on family
        EDAC/amd64: Support more than two Unified Memory Controllers
        EDAC/amd64: Use a macro for iterating over Unified Memory Controllers
        EDAC/amd64: Add Family 17h Model 30h PCI IDs
        MAINTAINERS: Add entry for EDAC-I10NM
        MAINTAINERS: Update entry for EDAC-SKYLAKE
        EDAC, altera: Fix S10 Double Bit Error Notification
        EDAC, skx, i10nm: Make skx_common.c a pure library
      275b103a
    • Linus Torvalds's avatar
      Merge tag 'devprop-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 4dd2ab9a
      Linus Torvalds authored
      Pull device properties framework updates from Rafael Wysocki:
       "These fix the handling of data nodes in the ACPI properties support
        code, add a new helper for endpoint lookup in property graphs and
        restore a comment inadvertently removed by one of previous changes.
      
        Specifics:
      
         - Fix the handling of data nodes in the ACPI properties support code
           for devices with child devices and hierarchical _DSD properties
           (Pierre-Louis Bossart).
      
         - Add fwnode_graph_get_endpoint_by_id() helper for endpoint lookup in
           device property graphs (Sakari Ailus).
      
         - Restore the _DSD data subnodes GUID comment inadvertently removed
           by one of previous changes (Shunyong Yang)"
      
      * tag 'devprop-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / property: fix handling of data_nodes in acpi_get_next_subnode()
        device property: Add fwnode_graph_get_endpoint_by_id()
        ACPI: property: restore _DSD data subnodes GUID comment
      4dd2ab9a
    • Linus Torvalds's avatar
      Merge tag 'pm-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 8f5e823f
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These fix the (Intel-specific) Performance and Energy Bias Hint (EPB)
        handling and expose it to user space via sysfs, fix and clean up
        several cpufreq drivers, add support for two new chips to the qoriq
        cpufreq driver, fix, simplify and clean up the cpufreq core and the
        schedutil governor, add support for "CPU" domains to the generic power
        domains (genpd) framework and provide low-level PSCI firmware support
        for that feature, fix the exynos cpuidle driver and fix a couple of
        issues in the devfreq subsystem and clean it up.
      
        Specifics:
      
         - Fix the handling of Performance and Energy Bias Hint (EPB) on Intel
           processors and expose it to user space via sysfs to avoid having to
           access it through the generic MSR I/F (Rafael Wysocki).
      
         - Improve the handling of global turbo changes made by the platform
           firmware in the intel_pstate driver (Rafael Wysocki).
      
         - Convert some slow-path static_cpu_has() callers to boot_cpu_has()
           in cpufreq (Borislav Petkov).
      
         - Fix the frequency calculation loop in the armada-37xx cpufreq
           driver (Gregory CLEMENT).
      
         - Fix possible object reference leaks in multuple cpufreq drivers
           (Wen Yang).
      
         - Fix kerneldoc comment in the centrino cpufreq driver (dongjian).
      
         - Clean up the ACPI and maple cpufreq drivers (Viresh Kumar, Mohan
           Kumar).
      
         - Add support for lx2160a and ls1028a to the qoriq cpufreq driver
           (Vabhav Sharma, Yuantian Tang).
      
         - Fix kobject memory leak in the cpufreq core (Viresh Kumar).
      
         - Simplify the IOwait boosting in the schedutil cpufreq governor and
           rework the TSC cpufreq notifier on x86 (Rafael Wysocki).
      
         - Clean up the cpufreq core and statistics code (Yue Hu, Kyle Lin).
      
         - Improve the cpufreq documentation, add SPDX license tags to some PM
           documentation files and unify copyright notices in them (Rafael
           Wysocki).
      
         - Add support for "CPU" domains to the generic power domains (genpd)
           framework and provide low-level PSCI firmware support for that
           feature (Ulf Hansson).
      
         - Rearrange the PSCI firmware support code and add support for
           SYSTEM_RESET2 to it (Ulf Hansson, Sudeep Holla).
      
         - Improve genpd support for devices in multiple power domains (Ulf
           Hansson).
      
         - Unify target residency for the AFTR and coupled AFTR states in the
           exynos cpuidle driver (Marek Szyprowski).
      
         - Introduce new helper routine in the operating performance points
           (OPP) framework (Andrew-sh.Cheng).
      
         - Add support for passing on-die termination (ODT) and auto power
           down parameters from the kernel to Trusted Firmware-A (TF-A) to the
           rk3399_dmc devfreq driver (Enric Balletbo i Serra).
      
         - Add tracing to devfreq (Lukasz Luba).
      
         - Make the exynos-bus devfreq driver suspend all devices on system
           shutdown (Marek Szyprowski).
      
         - Fix a few minor issues in the devfreq subsystem and clean it up
           somewhat (Enric Balletbo i Serra, MyungJoo Ham, Rob Herring,
           Saravana Kannan, Yangtao Li).
      
         - Improve system wakeup diagnostics (Stephen Boyd).
      
         - Rework filesystem sync messages emitted during system suspend and
           hibernation (Harry Pan)"
      
      * tag 'pm-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (72 commits)
        cpufreq: Fix kobject memleak
        cpufreq: armada-37xx: fix frequency calculation for opp
        cpufreq: centrino: Fix centrino_setpolicy() kerneldoc comment
        cpufreq: qoriq: add support for lx2160a
        x86: tsc: Rework time_cpufreq_notifier()
        PM / Domains: Allow to attach a CPU via genpd_dev_pm_attach_by_id|name()
        PM / Domains: Search for the CPU device outside the genpd lock
        PM / Domains: Drop unused in-parameter to some genpd functions
        PM / Domains: Use the base device for driver_deferred_probe_check_state()
        cpufreq: qoriq: Add ls1028a chip support
        PM / Domains: Enable genpd_dev_pm_attach_by_id|name() for single PM domain
        PM / Domains: Allow OF lookup for multi PM domain case from ->attach_dev()
        PM / Domains: Don't kfree() the virtual device in the error path
        cpufreq: Move ->get callback check outside of __cpufreq_get()
        PM / Domains: remove unnecessary unlikely()
        cpufreq: Remove needless bios_limit check in show_bios_limit()
        drivers/cpufreq/acpi-cpufreq.c: This fixes the following checkpatch warning
        firmware/psci: add support for SYSTEM_RESET2
        PM / devfreq: add tracing for scheduling work
        trace: events: add devfreq trace event file
        ...
      8f5e823f
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 59df1c2b
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These rearrange the ACPI documentation by converting it to the .rst
        format and splitting it into clear categories (admin guide, driver
        API, firmware guide), switch over multiple users of a problematic
        library function to a new better one, update the ACPICA code in the
        kernel to a new upstream release, fix a few issues, improve power
        device management diagnostics and do some cleanups.
      
        Specifics:
      
         - Convert the ACPI documentation in the kernel source tree to the
           .rst format and split it into the admin guide, driver API and
           firmware guide parts (Changbin Du).
      
         - Add a PRP0001 usage example to the ACPI documentation (Thomas
           Preston).
      
         - Switch over the users of the acpi_dev_get_first_match_name()
           library function which turned out to be problematic to a new,
           better one called acpi_dev_get_first_match_dev() (Andy Shevchenko,
           YueHaibing).
      
         - Update the ACPICA code in the kernel to upstream release 20190405
           including:
             * Null pointer dereference check in acpi_ns_delete_node() (Erik
               Schmauss).
             * Multiple macro and function name changes (Bob Moore).
             * Predefined operation region name fix (Erik Schmauss).
      
         - Fix hibernation issue on systems using the Baytrail and Cherrytrail
           Intel SoCs introduced during the 4.20 development cycle (Hans de
           Goede).
      
         - Add Sony VPCEH3U1E to the backlight quirk list (Zhang Rui).
      
         - Fix button handling during system resume (Zhang Rui).
      
         - Add a device PM diagnostic message (Rafael Wysocki).
      
         - Clean up the code, comments and white space in multiple places
           (Bjorn Helgaas, Gustavo Silva, Kefeng Wang)"
      
      * tag 'acpi-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (53 commits)
        Documentation: ACPI: move video_extension.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move ssdt-overlays.txt to admin-guide/acpi and convert to reST
        Documentation: ACPI: move lpit.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move cppc_sysfs.txt to admin-guide/acpi and convert to reST
        Documentation: ACPI: move apei/einj.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move apei/output_format.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move aml-debugger.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move method-tracing.txt to firmware-guide/acpi and convert to rsST
        Documentation: ACPI: move debug.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move dsd/data-node-references.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move dsd/graph.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move acpi-lid.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move i2c-muxes.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move dsdt-override.txt to admin-guide/acpi and convert to reST
        Documentation: ACPI: move initrd_table_override.txt to admin-guide/acpi and convert to reST
        Documentation: ACPI: move method-customizing.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move gpio-properties.txt to firmware-guide/acpi and convert to reST
        Documentation: ACPI: move DSD-properties-rules.txt to firmware-guide/acpi and covert to reST
        Documentation: ACPI: move scan_handlers.txt to driver-api/acpi and convert to reST
        Documentation: ACPI: move linuxized-acpica.txt to driver-api/acpi and convert to reST
        ...
      59df1c2b
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · c620f7bd
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "Mostly just incremental improvements here:
      
         - Introduce AT_HWCAP2 for advertising CPU features to userspace
      
         - Expose SVE2 availability to userspace
      
         - Support for "data cache clean to point of deep persistence" (DC PODP)
      
         - Honour "mitigations=off" on the cmdline and advertise status via
           sysfs
      
         - CPU timer erratum workaround (Neoverse-N1 #1188873)
      
         - Introduce perf PMU driver for the SMMUv3 performance counters
      
         - Add config option to disable the kuser helpers page for AArch32 tasks
      
         - Futex modifications to ensure liveness under contention
      
         - Rework debug exception handling to seperate kernel and user
           handlers
      
         - Non-critical fixes and cleanup"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (92 commits)
        Documentation: Add ARM64 to kernel-parameters.rst
        arm64/speculation: Support 'mitigations=' cmdline option
        arm64: ssbs: Don't treat CPUs with SSBS as unaffected by SSB
        arm64: enable generic CPU vulnerabilites support
        arm64: add sysfs vulnerability show for speculative store bypass
        arm64: Fix size of __early_cpu_boot_status
        clocksource/arm_arch_timer: Use arch_timer_read_counter to access stable counters
        clocksource/arm_arch_timer: Remove use of workaround static key
        clocksource/arm_arch_timer: Drop use of static key in arch_timer_reg_read_stable
        clocksource/arm_arch_timer: Direcly assign set_next_event workaround
        arm64: Use arch_timer_read_counter instead of arch_counter_get_cntvct
        watchdog/sbsa: Use arch_timer_read_counter instead of arch_counter_get_cntvct
        ARM: vdso: Remove dependency with the arch_timer driver internals
        arm64: Apply ARM64_ERRATUM_1188873 to Neoverse-N1
        arm64: Add part number for Neoverse N1
        arm64: Make ARM64_ERRATUM_1188873 depend on COMPAT
        arm64: Restrict ARM64_ERRATUM_1188873 mitigation to AArch32
        arm64: mm: Remove pte_unmap_nested()
        arm64: Fix compiler warning from pte_unmap() with -Wunused-but-set-variable
        arm64: compat: Reduce address limit for 64K pages
        ...
      c620f7bd
  7. 06 May, 2019 22 commits
    • Linus Torvalds's avatar
      Merge tag 'arm64-mmiowb' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · dd4e5d61
      Linus Torvalds authored
      Pull mmiowb removal from Will Deacon:
       "Remove Mysterious Macro Intended to Obscure Weird Behaviours (mmiowb())
      
        Remove mmiowb() from the kernel memory barrier API and instead, for
        architectures that need it, hide the barrier inside spin_unlock() when
        MMIO has been performed inside the critical section.
      
        The only relatively recent changes have been addressing review
        comments on the documentation, which is in a much better shape thanks
        to the efforts of Ben and Ingo.
      
        I was initially planning to split this into two pull requests so that
        you could run the coccinelle script yourself, however it's been plain
        sailing in linux-next so I've just included the whole lot here to keep
        things simple"
      
      * tag 'arm64-mmiowb' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (23 commits)
        docs/memory-barriers.txt: Update I/O section to be clearer about CPU vs thread
        docs/memory-barriers.txt: Fix style, spacing and grammar in I/O section
        arch: Remove dummy mmiowb() definitions from arch code
        net/ethernet/silan/sc92031: Remove stale comment about mmiowb()
        i40iw: Redefine i40iw_mmiowb() to do nothing
        scsi/qla1280: Remove stale comment about mmiowb()
        drivers: Remove explicit invocations of mmiowb()
        drivers: Remove useless trailing comments from mmiowb() invocations
        Documentation: Kill all references to mmiowb()
        riscv/mmiowb: Hook up mmwiob() implementation to asm-generic code
        powerpc/mmiowb: Hook up mmwiob() implementation to asm-generic code
        ia64/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()
        mips/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()
        sh/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()
        m68k/io: Remove useless definition of mmiowb()
        nds32/io: Remove useless definition of mmiowb()
        x86/io: Remove useless definition of mmiowb()
        arm64/io: Remove useless definition of mmiowb()
        ARM/io: Remove useless definition of mmiowb()
        mmiowb: Hook up mmiowb helpers to spinlocks and generic I/O accessors
        ...
      dd4e5d61
    • Linus Torvalds's avatar
      Merge tag 's390-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 14be4c61
      Linus Torvalds authored
      Pull s390 updates from Martin Schwidefsky:
      
       - Support for kernel address space layout randomization
      
       - Add support for kernel image signature verification
      
       - Convert s390 to the generic get_user_pages_fast code
      
       - Convert s390 to the stack unwind API analog to x86
      
       - Add support for CPU directed interrupts for PCI devices
      
       - Provide support for MIO instructions to the PCI base layer, this will
         allow the use of direct PCI mappings in user space code
      
       - Add the basic KVM guest ultravisor interface for protected VMs
      
       - Add AT_HWCAP bits for several new hardware capabilities
      
       - Update the CPU measurement facility counter definitions to SVN 6
      
       - Arnds cleanup patches for his quest to get LLVM compiles working
      
       - A vfio-ccw update with bug fixes and support for halt and clear
      
       - Improvements for the hardware TRNG code
      
       - Another round of cleanup for the QDIO layer
      
       - Numerous cleanups and bug fixes
      
      * tag 's390-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (98 commits)
        s390/vdso: drop unnecessary cc-ldoption
        s390: fix clang -Wpointer-sign warnigns in boot code
        s390: drop CONFIG_VIRT_TO_BUS
        s390: boot, purgatory: pass $(CLANG_FLAGS) where needed
        s390: only build for new CPUs with clang
        s390: simplify disabled_wait
        s390/ftrace: use HAVE_FUNCTION_GRAPH_RET_ADDR_PTR
        s390/unwind: introduce stack unwind API
        s390/opcodes: add missing instructions to the disassembler
        s390/bug: add entry size to the __bug_table section
        s390: use proper expoline sections for .dma code
        s390/nospec: rename assembler generated expoline thunks
        s390: add missing ENDPROC statements to assembler functions
        locking/lockdep: check for freed initmem in static_obj()
        s390/kernel: add support for kernel address space layout randomization (KASLR)
        s390/kernel: introduce .dma sections
        s390/sclp: do not use static sccbs
        s390/kprobes: use static buffer for insn_page
        s390/kernel: convert SYSCALL and PGM_CHECK handlers to .quad
        s390/kernel: build a relocatable kernel
        ...
      14be4c61
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v5.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · ccbc2e5e
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - drop arch_gettimeoffset and adopt clocksource API
      
       - defconfig updates
      
      * tag 'm68k-for-v5.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        Documentation/features/time: Mark m68k having modern-timekeeping
        m68k: defconfig: Update defconfigs for v5.1-rc1
        m68k: mvme16x: Handle timer counter overflow
        m68k: mvme16x: Convert to clocksource API
        m68k: mvme147: Handle timer counter overflow
        m68k: mvme147: Convert to clocksource API
        m68k: mac: Convert to clocksource API
        m68k: hp300: Handle timer counter overflow
        m68k: hp300: Convert to clocksource API
        m68k: bvme6000: Convert to clocksource API
        m68k: atari: Convert to clocksource API
        m68k: amiga: Convert to clocksource API
        m68k: Drop ARCH_USES_GETTIMEOFFSET
        m68k: apollo, q40, sun3, sun3x: Remove arch_gettimeoffset implementations
        m68k: mac: Fix VIA timer counter accesses
        m68k: Call timer_interrupt() with interrupts disabled
      ccbc2e5e
    • Linus Torvalds's avatar
      Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fdafe5d1
      Linus Torvalds authored
      Pull x86 microcode loading update from Borislav Petkov:
       "A nice Intel microcode blob loading cleanup which gets rid of the ugly
        memcpy wrappers and switches the driver to use the iov_iter API. By
        Jann Horn.
      
        In addition, the /dev/cpu/microcode interface is finally deprecated as
        it is inadequate for the same reasons the late microcode loading is"
      
      * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode: Deprecate MICROCODE_OLD_INTERFACE
        x86/microcode: Fix the ancient deprecated microcode loading method
        x86/microcode/intel: Refactor Intel microcode blob loading
      fdafe5d1
    • Linus Torvalds's avatar
      Merge branch 'x86-topology-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 948a6499
      Linus Torvalds authored
      Pull x86 topology updates from Ingo Molnar:
       "Two main changes: preparatory changes for Intel multi-die topology
        support, plus a syslog message tweak"
      
      * 'x86-topology-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/topology: Make DEBUG_HOTPLUG_CPU0 pr_info() more descriptive
        x86/smpboot: Rename match_die() to match_pkg()
        topology: Simplify cputopology.txt formatting and wording
        x86/topology: Fix documentation typo
      948a6499
    • Linus Torvalds's avatar
      Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · db10ad04
      Linus Torvalds authored
      Pull x86 timer updates from Ingo Molnar:
       "Two changes: an LTO improvement, plus the new 'nowatchdog' boot option
        to disable the clocksource watchdog"
      
      * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/timer: Don't inline __const_udelay()
        x86/tsc: Add option to disable tsc clocksource watchdog
      db10ad04
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ba3934de
      Linus Torvalds authored
      Pull x86 platform updates from Ingo Molnar:
       "Smaller update for Hyper-V to support EOI assist, plus LTO fixes"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kvm: Make steal_time visible
        x86/hyperv: Make hv_vcpu_is_preempted() visible
        x86/hyper-v: Implement EOI assist
      ba3934de
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0bc40e54
      Linus Torvalds authored
      Pull x86 mm updates from Ingo Molnar:
       "The changes in here are:
      
         - text_poke() fixes and an extensive set of executability lockdowns,
           to (hopefully) eliminate the last residual circumstances under
           which we are using W|X mappings even temporarily on x86 kernels.
           This required a broad range of surgery in text patching facilities,
           module loading, trampoline handling and other bits.
      
         - tweak page fault messages to be more informative and more
           structured.
      
         - remove DISCONTIGMEM support on x86-32 and make SPARSEMEM the
           default.
      
         - reduce KASLR granularity on 5-level paging kernels from 512 GB to
           1 GB.
      
         - misc other changes and updates"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
        x86/mm: Initialize PGD cache during mm initialization
        x86/alternatives: Add comment about module removal races
        x86/kprobes: Use vmalloc special flag
        x86/ftrace: Use vmalloc special flag
        bpf: Use vmalloc special flag
        modules: Use vmalloc special flag
        mm/vmalloc: Add flag for freeing of special permsissions
        mm/hibernation: Make hibernation handle unmapped pages
        x86/mm/cpa: Add set_direct_map_*() functions
        x86/alternatives: Remove the return value of text_poke_*()
        x86/jump-label: Remove support for custom text poker
        x86/modules: Avoid breaking W^X while loading modules
        x86/kprobes: Set instruction page as executable
        x86/ftrace: Set trampoline pages as executable
        x86/kgdb: Avoid redundant comparison of patched code
        x86/alternatives: Use temporary mm for text poking
        x86/alternatives: Initialize temporary mm for patching
        fork: Provide a function for copying init_mm
        uprobes: Initialize uprobes earlier
        x86/mm: Save debug registers when loading a temporary mm
        ...
      0bc40e54
    • Linus Torvalds's avatar
      Merge branch 'x86-kdump-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e913c4a4
      Linus Torvalds authored
      Pull x86 kdump update from Ingo Molnar:
       "This includes two changes:
      
         - Raise the crash kernel reservation limit from from ~896MB to ~4GB.
      
           Only very old (and already known-broken) kexec-tools is supposed to
           be affected by this negatively.
      
         - Allow higher than 4GB crash kernel allocations when low allocations
           fail"
      
      * 'x86-kdump-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kdump: Fall back to reserve high crashkernel memory
        x86/kdump: Have crashkernel=X reserve under 4G by default
      e913c4a4
    • Linus Torvalds's avatar
      Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8f147727
      Linus Torvalds authored
      Pull x86 irq updates from Ingo Molnar:
       "Here are the main changes in this tree:
      
         - Introduce x86-64 IRQ/exception/debug stack guard pages to detect
           stack overflows immediately and deterministically.
      
         - Clean up over a decade worth of cruft accumulated.
      
        The outcome of this should be more clear-cut faults/crashes when any
        of the low level x86 CPU stacks overflow, instead of silent memory
        corruption and sporadic failures much later on"
      
      * 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)
        x86/irq: Fix outdated comments
        x86/irq/64: Remove stack overflow debug code
        x86/irq/64: Remap the IRQ stack with guard pages
        x86/irq/64: Split the IRQ stack into its own pages
        x86/irq/64: Init hardirq_stack_ptr during CPU hotplug
        x86/irq/32: Handle irq stack allocation failure proper
        x86/irq/32: Invoke irq_ctx_init() from init_IRQ()
        x86/irq/64: Rename irq_stack_ptr to hardirq_stack_ptr
        x86/irq/32: Rename hard/softirq_stack to hard/softirq_stack_ptr
        x86/irq/32: Make irq stack a character array
        x86/irq/32: Define IRQ_STACK_SIZE
        x86/dumpstack/64: Speedup in_exception_stack()
        x86/exceptions: Split debug IST stack
        x86/exceptions: Enable IST guard pages
        x86/exceptions: Disconnect IST index and stack order
        x86/cpu: Remove orig_ist array
        x86/cpu: Prepare TSS.IST setup for guard pages
        x86/dumpstack/64: Use cpu_entry_area instead of orig_ist
        x86/irq/64: Use cpu entry area instead of orig_ist
        x86/traps: Use cpu_entry_area instead of orig_ist
        ...
      8f147727
    • Linus Torvalds's avatar
      Merge branch 'x86-entry-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 53f8b081
      Linus Torvalds authored
      Pull x86 entry cleanup from Ingo Molnar:
       "A single commit that removes a redundant complication from
        preempt-schedule handling in the x86 entry code"
      
      * 'x86-entry-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/entry: Remove unneeded need_resched() loop
      53f8b081
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 31a4319b
      Linus Torvalds authored
      Pull x86 cpu updates from Ingo Molnar:
       "Two changes: a Hygon CPU fix, and an optimization Centaur CPUs"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/power: Optimize C3 entry on Centaur CPUs
        x86/CPU/hygon: Fix phys_proc_id calculation logic for multi-die processors
      31a4319b
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 46e80e6c
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "A handful of cleanups: dma-ops cleanups, missing boot time kcalloc()
        check, a Sparse fix and use struct_size() to simplify a vzalloc()
        call"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/pci: Clean up usage of X86_DEV_DMA_OPS
        x86/Kconfig: Remove the unused X86_DMA_REMAP KConfig symbol
        x86/kexec/crash: Use struct_size() in vzalloc()
        x86/mm/tlb: Define LOADED_MM_SWITCHING with pointer-sized number
        x86/platform/uv: Fix missing checks of kcalloc() return values
      46e80e6c
    • Linus Torvalds's avatar
      Merge branch 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 82ac4043
      Linus Torvalds authored
      Pull x86 cache QoS updates from Ingo Molnar:
       "An RDT cleanup and a fix for RDT initialization of new resource
        groups"
      
      * 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/resctrl: Initialize a new resource group with default MBA values
        x86/resctrl: Move per RDT domain initialization to a separate function
      82ac4043
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 75571d82
      Linus Torvalds authored
      Pull x86 build updates from Ingo Molnar:
       "Misc updates:
      
         - Add link flag quirk to solve LLVM linker bug that removes local
           relocations, causing KASLR boot failures.
      
         - Update the defconfigs to remove archaic partition table support
      
         - Fix kernel growing pains: we had a bug in relocs.c handling section
           header table entries count larger than 0xff00 (~65k), which can
           happen with the -ffunction-sections flag, causing a build failure
           with a cryptic error message. Add support for detecting the limit
           and using the ELF protocol that extends the sections table via
           ->sh_size. The new limit is now much larger - over a billion
           entries?"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tools/relocs: Fix big section header tables
        x86/defconfig: Remove archaic partition tables support
        x86/build: Keep local relocations with ld.lld
      75571d82
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f725492d
      Linus Torvalds authored
      Pull x86 asm updates from Ingo Molnar:
       "This includes the following changes:
      
         - cpu_has() cleanups
      
         - sync_bitops.h modernization to the rmwcc.h facility, similarly to
           bitops.h
      
         - continued LTO annotations/fixes
      
         - misc cleanups and smaller cleanups"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/um/vdso: Drop unnecessary cc-ldoption
        x86/vdso: Rename variable to fix -Wshadow warning
        x86/cpu/amd: Exclude 32bit only assembler from 64bit build
        x86/asm: Mark all top level asm statements as .text
        x86/build/vdso: Add FORCE to the build rule of %.so
        x86/asm: Modernize sync_bitops.h
        x86/mm: Convert some slow-path static_cpu_has() callers to boot_cpu_has()
        x86: Convert some slow-path static_cpu_has() callers to boot_cpu_has()
        x86/asm: Clarify static_cpu_has()'s intended use
        x86/uaccess: Fix implicit cast of __user pointer
        x86/cpufeature: Remove __pure attribute to _static_cpu_has()
      f725492d
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 80e77644
      Linus Torvalds authored
      Pull x86 apic update from Ingo Molnar:
       "A single commit which unifies the unnecessarily diverged
        implementations of APIC timer initialization. As a result the
        max_delta parameter is now consistently taken into account"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Unify duplicated local apic timer clockevent initialization
      80e77644
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a0e928ed
      Linus Torvalds authored
      Pull timer updates from Ingo Molnar:
       "This cycle had the following changes:
      
         - Timer tracing improvements (Anna-Maria Gleixner)
      
         - Continued tasklet reduction work: remove the hrtimer_tasklet
           (Thomas Gleixner)
      
         - Fix CPU hotplug remove race in the tick-broadcast mask handling
           code (Thomas Gleixner)
      
         - Force upper bound for setting CLOCK_REALTIME, to fix ABI
           inconsistencies with handling values that are close to the maximum
           supported and the vagueness of when uptime related wraparound might
           occur. Make the consistent maximum the year 2232 across all
           relevant ABIs and APIs. (Thomas Gleixner)
      
         - various cleanups and smaller fixes"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tick: Fix typos in comments
        tick/broadcast: Fix warning about undefined tick_broadcast_oneshot_offline()
        timekeeping: Force upper bound for setting CLOCK_REALTIME
        timer/trace: Improve timer tracing
        timer/trace: Replace deprecated vsprintf pointer extension %pf by %ps
        timer: Move trace point to get proper index
        tick/sched: Update tick_sched struct documentation
        tick: Remove outgoing CPU from broadcast masks
        timekeeping: Consistently use unsigned int for seqcount snapshot
        softirq: Remove tasklet_hrtimer
        xfrm: Replace hrtimer tasklet with softirq hrtimer
        mac80211_hwsim: Replace hrtimer tasklet with softirq hrtimer
      a0e928ed
    • Linus Torvalds's avatar
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5a2bf1ab
      Linus Torvalds authored
      Pull CPU hotplug updates from Ingo Molnar:
       "Two changes in this cycle:
      
         - Make the /sys/devices/system/cpu/smt/* files available on all
           arches, so user space has a consistent way to detect whether SMT is
           enabled.
      
         - Sparse annotation fix"
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        smpboot: Place the __percpu annotation correctly
        cpu/hotplug: Create SMT sysfs interface for all arches
      5a2bf1ab
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e00d4135
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - Make nohz housekeeping processing more permissive and less
           intrusive to isolated CPUs
      
         - Decouple CPU-bound workqueue acconting from the scheduler and move
           it into the workqueue code.
      
         - Optimize topology building
      
         - Better handle quota and period overflows
      
         - Add more RCU annotations
      
         - Comment updates, misc cleanups"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
        nohz_full: Allow the boot CPU to be nohz_full
        sched/isolation: Require a present CPU in housekeeping mask
        kernel/cpu: Allow non-zero CPU to be primary for suspend / kexec freeze
        power/suspend: Add function to disable secondaries for suspend
        sched/core: Allow the remote scheduler tick to be started on CPU0
        sched/nohz: Run NOHZ idle load balancer on HK_FLAG_MISC CPUs
        sched/debug: Fix spelling mistake "logaritmic" -> "logarithmic"
        sched/topology: Update init_sched_domains() comment
        cgroup/cpuset: Update stale generate_sched_domains() comments
        sched/core: Check quota and period overflow at usec to nsec conversion
        sched/core: Handle overflow in cpu_shares_write_u64
        sched/rt: Check integer overflow at usec to nsec conversion
        sched/core: Fix typo in comment
        sched/core: Make some functions static
        sched/core: Unify p->on_rq updates
        sched/core: Remove ttwu_activate()
        sched/core, workqueues: Distangle worker accounting from rq lock
        sched/fair: Remove unneeded prototype of capacity_of()
        sched/topology: Skip duplicate group rewrites in build_sched_groups()
        sched/topology: Fix build_sched_groups() comment
        ...
      e00d4135
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 90489a72
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "The main kernel changes were:
      
         - add support for Intel's "adaptive PEBS v4" - which embedds LBS data
           in PEBS records and can thus batch up and reduce the IRQ (NMI) rate
           significantly - reducing overhead and making call-graph profiling
           less intrusive.
      
         - add Intel CPU core and uncore support updates for Tremont, Icelake,
      
         - extend the x86 PMU constraints scheduler with 'constraint ranges'
           to better support Icelake hw constraints,
      
         - make x86 call-chain support work better with CONFIG_FRAME_POINTER=y
      
         - misc other changes
      
        Tooling changes:
      
         - updates to the main tools: 'perf record', 'perf trace', 'perf
           stat'
      
         - updated Intel and S/390 vendor events
      
         - libtraceevent updates
      
         - misc other updates and fixes"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (69 commits)
        perf/x86: Make perf callchains work without CONFIG_FRAME_POINTER
        watchdog: Fix typo in comment
        perf/x86/intel: Add Tremont core PMU support
        perf/x86/intel/uncore: Add Intel Icelake uncore support
        perf/x86/msr: Add Icelake support
        perf/x86/intel/rapl: Add Icelake support
        perf/x86/intel/cstate: Add Icelake support
        perf/x86/intel: Add Icelake support
        perf/x86: Support constraint ranges
        perf/x86/lbr: Avoid reading the LBRs when adaptive PEBS handles them
        perf/x86/intel: Support adaptive PEBS v4
        perf/x86/intel/ds: Extract code of event update in short period
        perf/x86/intel: Extract memory code PEBS parser for reuse
        perf/x86: Support outputting XMM registers
        perf/x86/intel: Force resched when TFA sysctl is modified
        perf/core: Add perf_pmu_resched() as global function
        perf/headers: Fix stale comment for struct perf_addr_filter
        perf/core: Make perf_swevent_init_cpu() static
        perf/x86: Add sanity checks to x86_schedule_events()
        perf/x86: Optimize x86_schedule_events()
        ...
      90489a72
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 007dc78f
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "Here are the locking changes in this cycle:
      
         - rwsem unification and simpler micro-optimizations to prepare for
           more intrusive (and more lucrative) scalability improvements in
           v5.3 (Waiman Long)
      
         - Lockdep irq state tracking flag usage cleanups (Frederic
           Weisbecker)
      
         - static key improvements (Jakub Kicinski, Peter Zijlstra)
      
         - misc updates, cleanups and smaller fixes"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits)
        locking/lockdep: Remove unnecessary unlikely()
        locking/static_key: Don't take sleeping locks in __static_key_slow_dec_deferred()
        locking/static_key: Factor out the fast path of static_key_slow_dec()
        locking/static_key: Add support for deferred static branches
        locking/lockdep: Test all incompatible scenarios at once in check_irq_usage()
        locking/lockdep: Avoid bogus Clang warning
        locking/lockdep: Generate LOCKF_ bit composites
        locking/lockdep: Use expanded masks on find_usage_*() functions
        locking/lockdep: Map remaining magic numbers to lock usage mask names
        locking/lockdep: Move valid_state() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING
        locking/rwsem: Prevent unneeded warning during locking selftest
        locking/rwsem: Optimize rwsem structure for uncontended lock acquisition
        locking/rwsem: Enable lock event counting
        locking/lock_events: Don't show pvqspinlock events on bare metal
        locking/lock_events: Make lock_events available for all archs & other locks
        locking/qspinlock_stat: Introduce generic lockevent_*() counting APIs
        locking/rwsem: Enhance DEBUG_RWSEMS_WARN_ON() macro
        locking/rwsem: Add debug check for __down_read*()
        locking/rwsem: Micro-optimize rwsem_try_read_lock_unqueued()
        locking/rwsem: Move rwsem internal function declarations to rwsem-xadd.h
        ...
      007dc78f