1. 20 Sep, 2019 37 commits
  2. 17 Sep, 2019 3 commits
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7f2444d3
      Linus Torvalds authored
      Pull core timer updates from Thomas Gleixner:
       "Timers and timekeeping updates:
      
         - A large overhaul of the posix CPU timer code which is a preparation
           for moving the CPU timer expiry out into task work so it can be
           properly accounted on the task/process.
      
           An update to the bogus permission checks will come later during the
           merge window as feedback was not complete before heading of for
           travel.
      
         - Switch the timerqueue code to use cached rbtrees and get rid of the
           homebrewn caching of the leftmost node.
      
         - Consolidate hrtimer_init() + hrtimer_init_sleeper() calls into a
           single function
      
         - Implement the separation of hrtimers to be forced to expire in hard
           interrupt context even when PREEMPT_RT is enabled and mark the
           affected timers accordingly.
      
         - Implement a mechanism for hrtimers and the timer wheel to protect
           RT against priority inversion and live lock issues when a (hr)timer
           which should be canceled is currently executing the callback.
           Instead of infinitely spinning, the task which tries to cancel the
           timer blocks on a per cpu base expiry lock which is held and
           released by the (hr)timer expiry code.
      
         - Enable the Hyper-V TSC page based sched_clock for Hyper-V guests
           resulting in faster access to timekeeping functions.
      
         - Updates to various clocksource/clockevent drivers and their device
           tree bindings.
      
         - The usual small improvements all over the place"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (101 commits)
        posix-cpu-timers: Fix permission check regression
        posix-cpu-timers: Always clear head pointer on dequeue
        hrtimer: Add a missing bracket and hide `migration_base' on !SMP
        posix-cpu-timers: Make expiry_active check actually work correctly
        posix-timers: Unbreak CONFIG_POSIX_TIMERS=n build
        tick: Mark sched_timer to expire in hard interrupt context
        hrtimer: Add kernel doc annotation for HRTIMER_MODE_HARD
        x86/hyperv: Hide pv_ops access for CONFIG_PARAVIRT=n
        posix-cpu-timers: Utilize timerqueue for storage
        posix-cpu-timers: Move state tracking to struct posix_cputimers
        posix-cpu-timers: Deduplicate rlimit handling
        posix-cpu-timers: Remove pointless comparisons
        posix-cpu-timers: Get rid of 64bit divisions
        posix-cpu-timers: Consolidate timer expiry further
        posix-cpu-timers: Get rid of zero checks
        rlimit: Rewrite non-sensical RLIMIT_CPU comment
        posix-cpu-timers: Respect INFINITY for hard RTTIME limit
        posix-cpu-timers: Switch thread group sampling to array
        posix-cpu-timers: Restructure expiry array
        posix-cpu-timers: Remove cputime_expires
        ...
      7f2444d3
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c5f12fdb
      Linus Torvalds authored
      Pull x86 apic updates from Thomas Gleixner:
      
       - Cleanup the apic IPI implementation by removing duplicated code and
         consolidating the functions into the APIC core.
      
       - Implement a safe variant of the IPI broadcast mode. Contrary to
         earlier attempts this uses the core tracking of which CPUs have been
         brought online at least once so that a broadcast does not end up in
         some dead end in BIOS/SMM code when the CPU is still waiting for
         init. Once all CPUs have been brought up once, IPI broadcasting is
         enabled. Before that regular one by one IPIs are issued.
      
       - Drop the paravirt CR8 related functions as they have no user anymore
      
       - Initialize the APIC TPR to block interrupt 16-31 as they are reserved
         for CPU exceptions and should never be raised by any well behaving
         device.
      
       - Emit a warning when vector space exhaustion breaks the admin set
         affinity of an interrupt.
      
       - Make sure to use the NMI fallback when shutdown via reboot vector IPI
         fails. The original code had conditions which prevent the code path
         to be reached.
      
       - Annotate various APIC config variables as RO after init.
      
      [ The ipi broadcase change came in earlier through the cpu hotplug
        branch, but I left the explanation in the commit message since it was
        shared between the two different branches    - Linus ]
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (28 commits)
        x86/apic/vector: Warn when vector space exhaustion breaks affinity
        x86/apic: Annotate global config variables as "read-only after init"
        x86/apic/x2apic: Implement IPI shorthands support
        x86/apic/flat64: Remove the IPI shorthand decision logic
        x86/apic: Share common IPI helpers
        x86/apic: Remove the shorthand decision logic
        x86/smp: Enhance native_send_call_func_ipi()
        x86/smp: Move smp_function_call implementations into IPI code
        x86/apic: Provide and use helper for send_IPI_allbutself()
        x86/apic: Add static key to Control IPI shorthands
        x86/apic: Move no_ipi_broadcast() out of 32bit
        x86/apic: Add NMI_VECTOR wait to IPI shorthand
        x86/apic: Remove dest argument from __default_send_IPI_shortcut()
        x86/hotplug: Silence APIC and NMI when CPU is dead
        x86/cpu: Move arch_smt_update() to a neutral place
        x86/apic/uv: Make x2apic_extra_bits static
        x86/apic: Consolidate the apic local headers
        x86/apic: Move apic_flat_64 header into apic directory
        x86/apic: Move ipi header into apic directory
        x86/apic: Cleanup the include maze
        ...
      c5f12fdb
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a572ba63
      Linus Torvalds authored
      Pull core irq updates from Thomas Gleixner:
       "Updates from the irq departement:
      
         - Update the interrupt spreading code so it handles numa node with
           different CPU counts properly.
      
         - A large overhaul of the ARM GiCv3 driver to support new PPI and SPI
           ranges.
      
         - Conversion of all alloc_fwnode() users to use physical addresses
           instead of virtual addresses so the virtual addresses are not
           leaked. The physical address is sufficient to identify the
           associated interrupt chip.
      
         - Add support for Marvel MMP3, Amlogic Meson SM1 interrupt chips.
      
         - Enforce interrupt threading at compile time if RT is enabled.
      
         - Small updates and improvements all over the place"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
        irqchip/gic-v3-its: Fix LPI release for Multi-MSI devices
        irqchip/uniphier-aidet: Use devm_platform_ioremap_resource()
        irqdomain: Add the missing assignment of domain->fwnode for named fwnode
        irqchip/mmp: Coexist with GIC root IRQ controller
        irqchip/mmp: Mask off interrupts from other cores
        irqchip/mmp: Add missing chained_irq_{enter,exit}()
        irqchip/mmp: Do not use of_address_to_resource() to get mux regs
        irqchip/meson-gpio: Add support for meson sm1 SoCs
        dt-bindings: interrupt-controller: New binding for the meson sm1 SoCs
        genirq/affinity: Remove const qualifier from node_to_cpumask argument
        genirq/affinity: Spread vectors on node according to nr_cpu ratio
        genirq/affinity: Improve __irq_build_affinity_masks()
        irqchip: Remove dev_err() usage after platform_get_irq()
        irqchip: Add include guard to irq-partition-percpu.h
        irqchip/mmp: Do not call irq_set_default_host() on DT platforms
        irqchip/gic-v3-its: Remove the redundant set_bit for lpi_map
        irqchip/gic-v3: Add quirks for HIP06/07 invalid GICD_TYPER erratum 161010803
        irqchip/gic: Skip DT quirks when evaluating IIDR-based quirks
        irqchip/gic-v3: Warn about inconsistent implementations of extended ranges
        irqchip/gic-v3: Add EPPI range support
        ...
      a572ba63