Tags

Tags give the ability to mark specific points in history as being important
  • x86_core_for_v5.13

    - turn the stack canary into a normal __percpu variable on 32-bit which
    gets rid of the LAZY_GS stuff and a lot of code.
    
    - Add an insn_decode() API which all users of the instruction decoder
    should preferrably use. Its goal is to keep the details of the
    instruction decoder away from its users and simplify and streamline how
    one decodes insns in the kernel. Convert its users to it.
    
    - kprobes improvements and fixes
    
    - Set the maximum DIE per package variable on Hygon
    
    - Rip out the dynamic NOP selection and simplify all the machinery around
    selecting NOPs. Use the simplified NOPs in objtool now too.
    
    - Add Xeon Sapphire Rapids to list of CPUs that support PPIN
    
    - Simplify the retpolines by folding the entire thing into an
    alternative now that objtool can handle alternatives with stack
    ops. Then, have objtool rewrite the call to the retpoline with the
    alternative which then will get patched at boot time.
    
    - Document Intel uarch per models in intel-family.h
    
    - Make Sub-NUMA Clustering topology the default and Cluster-on-Die the
    exception on Intel.
    
  • x86-vdso-2021-04-26

    A single fix for the x86 VDSO build infrastructure to address a compiler
    warning on 32bit hosts due to a fprintf() modifier/argument mismatch.
    
  • x86_platform_for_v5.13

    A bunch of SGI UV improvements, fixes and cleanups.
    
  • x86_build_for_v5.13

    A bunch of clang build fixes and a Kconfig highmem selection fix for
    486SX.
    
  • x86_cleanups_for_v5.13

    Trivial cleanups and fixes all over the place.
    
  • x86_boot_for_v5.13

    Consolidation and cleanup of the early memory reservations, along with a
    couple of gcc11 warning fixes.
    
  • x86_sgx_for_v5.13

    Add the guest side of SGX support in KVM guests. Work by Sean
    Christopherson, Kai Huang and Jarkko Sakkinen. Along with the usual
    fixes, cleanups and improvements.
    
  • x86_vmware_for_v5.13

    Have vmware guests skip the refined TSC calibration when the TSC
    frequency has been retrieved from the hypervisor.
    
  • x86-splitlock-2021-04-26

    Support for enhanced split lock detection:
    
      Newer CPUs provide a second mechanism to detect operations with lock
      prefix which go accross a cache line boundary. Such operations have to
      take bus lock which causes a system wide performance degradation when
      these operations happen frequently.
    
      The new mechanism is not using the #AC exception. It triggers #DB and is
      restricted to operations in user space. Kernel side split lock access can
      only be detected by the #AC based variant. Contrary to the #AC based
      mechanism the #DB based variant triggers _after_ the instruction was
      executed. The mechanism is CPUID enumerated and contrary to the #AC
      version which is based on the magic TEST_CTRL_MSR and model/family based
      enumeration on the way to become architectural.
    
  • x86_seves_for_v5.13

    Add support for SEV-ES guests booting through the 32-bit boot path, along with
    cleanups, fixes and improvements.
    
  • x86-entry-2021-04-26

    Entry code update:
    
     Provide support for randomized stack offsets per syscall to make
     stack-based attacks harder which rely on the deterministic stack layout.
    
     The feature is based on the original idea of PaX's RANDSTACK feature, but
     uses a significantly different implementation.
    
     The offset does not affect the pt_regs location on the task stack as this
     was agreed on to be of dubious value. The offset is applied before the
     actual syscall is invoked.
    
     The offset is stored per cpu and the randomization happens at the end of
     the syscall which is less predictable than on syscall entry.
    
     The mechanism to apply the offset is via alloca(), i.e. abusing the
     dispised VLAs. This comes with the drawback that stack-clash-protection
     has to be disabled for the affected compilation units and there is also
     a negative interaction with stack-protector.
    
     Those downsides are traded with the advantage that this approach does not
     require any intrusive changes to the low level assembly entry code, does
     not affect the unwinder and the correct stack alignment is handled
     automatically by the compiler.
    
     The feature is guarded with a static branch which avoids the overhead when
     disabled.
    
     Currently this is supported for X86 and ARM64.
    
  • x86_misc_for_v5.13

    A new kcpuid tool to dump the raw CPUID leafs of a CPU. It has the CPUID
    bit definitions in a separate csv file which allows for adding support
    for new CPUID leafs and bits without having to update the tool. The main
    use case for the tool is hw enablement on preproduction x86 hw.
    
  • x86-apic-2021-04-26

    A single commit to make the vector allocation code more resilent against an
    accidental allocation attempt for IRQ2.
    
  • timers-core-2021-04-26

    The time and timers updates contain:
    
    Core changes:
    
       - Allow runtime power management when the clocksource is changed.
    
       - A correctness fix for clock_adjtime32() so that the return value
         on success is not overwritten by the result of the copy to user.
    
       - Allow late installment of broadcast clockevent devices which was
         broken because nothing switched them over to oneshot mode. This went
         unnoticed so far because clockevent devices used to be built in, but
         now people started to make them modular.
    
       - Debugfs related simplifications
    
       - Small cleanups and improvements here and there
    
    Driver changes:
    
       - The usual set of device tree binding updates for a wide range
         of drivers/devices.
    
       - The usual updates and improvements for drivers all over the place but
         nothing outstanding.
    
       - No new clocksource/event drivers. They'll come back next time.
    
  • x86_alternatives_for_v5.13

    First big cleanup to the paravirt infra to use alternatives and thus
    eliminate custom code patching. For that, the alternatives infra is
    extended to accomodate paravirt's needs and, as a result, a lot of
    paravirt patching code goes away, leading to a sizeable cleanup and
    simplification. Work by Juergen Gross.
    
  • irq-core-2021-04-26

    The usual updates from the irq departement:
    
    Core changes:
    
     - Provide IRQF_NO_AUTOEN as a flag for request*_irq() so drivers can be
       cleaned up which either use a seperate mechanism to prevent auto-enable
       at request time or have a racy mechanism which disables the interrupt
       right after request.
    
     - Get rid of the last usage of irq_create_identity_mapping() and remove
       the interface.
    
     - An overhaul of tasklet_disable(). Most usage sites of tasklet_disable()
       are in task context and usually in cleanup, teardown code pathes.
       tasklet_disable() spinwaits for a tasklet which is currently executed.
       That's not only a problem for PREEMPT_RT where this can lead to a live
       lock when the disabling task preempts the softirq thread. It's also
       problematic in context of virtualization when the vCPU which runs the
       tasklet is scheduled out and the disabling code has to spin wait until
       it's scheduled back in. Though there are a few code pathes which invoke
       tasklet_disable() from non-sleepable context. For these a new disable
       variant which still spinwaits is provided which allows to switch
       tasklet_disable() to a sleep wait mechanism. For the atomic use cases
       this does not solve the live lock issue on PREEMPT_RT. That is mitigated
       by blocking on the RT specific softirq lock.
    
     - The PREEMPT_RT specific implementation of softirq processing and
       local_bh_disable/enable().
    
       On RT enabled kernels soft interrupt processing happens always in task
       context and all interrupt handlers, which are not explicitly marked to
       be invoked in hard interrupt context are forced into task context as
       well. This allows to protect against softirq processing with a per
       CPU lock, which in turn allows to make BH disabled regions preemptible.
    
       Most of the softirq handling code is still shared. The RT/non-RT
       specific differences are addressed with a set of inline functions which
       provide the context specific functionality. The local_bh_disable() /
       local_bh_enable() mechanism are obviously seperate.
    
     - The usual set of small improvements and cleanups
    
    Driver changes:
    
     - New drivers for Nuvoton WPCM450 and DT 79rc3243x interrupt controllers
    
     - Extended functionality for MStar, STM32 and SC7280 irq chips
    
     - Enhanced robustness for ARM GICv3/4.1 drivers
    
     - The usual set of cleanups and improvements all over the place
    
  • core-entry-2021-04-26

    A trivial cleanup of typo fixes.
    
  • ras_core_for_v5.13

    Provide the ability to specify the IPID (IP block associated with the
    MCE, AMD-specific) when injecting an MCE.