Skip to content

Instantly share code, notes, and snippets.

@dsd
Last active January 5, 2018 15:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dsd/f98a8f1a15f701934ece3e70c9b8fb0a to your computer and use it in GitHub Desktop.
Save dsd/f98a8f1a15f701934ece3e70c9b8fb0a to your computer and use it in GitHub Desktop.
try 4.14 patches:
approach: take a single extra 4.14 patch if it makes a patch apply easier or build, but dont go beyond that, do conflict resolution otherwise
first dependencies from 4.14
910448bbed066ab1082b510eef1ae61bb792d854
perf/x86/amd/uncore: Rename cpufeatures macro for cache counters
needed to conflicts in later patch: x86/cpufeatures: Re-tabulate the X86_FEATURE definitions
d837312dfd5bed79ff6576e83dda3cddbe5c7ec7
KVM: SVM: Add Virtual GIF feature definition
needed to avoid conflicts in later patch: x86/cpufeatures: Re-tabulate the X86_FEATURE definitions
df3405245a8535d2f20bcbdbb615385671cd0792
x86/asm: Add suffix macro for GEN_*_RMWcc()
needed to avoid conflicts in later patch: x86/asm: Remove unnecessary \n\t in front of CC_SET() from asm templates
8a9949bc71a71b3dd633255ebe8f8869b1f73474
x86/xen/64: Rearrange the SYSCALL entries
needed for later to build: x86/entry/64: Create a per-CPU SYSCALL entry trampoline
dd018597a074bcd1e5307d3b8e7863e05287bddf
x86/hyper-v: stash the max number of virtual/logical processor
needed for later patch to apply cleanly: x86/virt: Add enum for hypervisors to replace x86_hyper
1d3e53e8624a3ec85f4041ca6d973da7c1575938
x86/entry/64: Refactor IRQ stacks and make them NMI-safe
needed for later patch to apply cleanly: x86/entry/64/paravirt: Use paravirt-safe macro to access eflags
b0529becebde629ff6abf2afdca6def6824f4fa9
x86/dumpstack: Fix occasionally missing registers
needed for later patch to apply with fewer conflicts: x86/unwinder: Handle stack overflows more gracefully
99504819fc643160afd6813921b1d42b18e52a49
x86/asm/32: Remove a bunch of '& 0xffff' from pt_regs segment reads
needed for later patch to apply with fewer conflicts: x86/unwinder: Handle stack overflows more gracefully
f7eaf6e00fd581043bb540dfe865f1d81769b189
x86/boot: Move EISA setup to a separate file
needed for later patch to apply with fewer conflicts: x86/entry/64: Move the IST stacks into struct cpu_entry_area
e505371dd83963caae1a37ead9524e8d997341be
x86/boot: Add early cmdline parsing for options with arguments
needed for later patch to build: x86/fpu: Parse clearcpuid= as early XSAVE argument
take some patches from 4.14:
f39681ed0f48498b80455095376f11535feea332
x86/mm: Give each mm TLB flush generation a unique ID
a632375764aa25c97b78beb56c71b0ba59d1cf83
x86/ldt/64: Refresh DS and ES when modify_ldt changes an entry
needed for later patch to apply cleanly: x86/ldt: Rework locking
b0579ade7cd82391360e959cc844e50a160e8a96
x86/mm: Track the TLB's tlb_gen and update the flushing algorithm
94b1b03b519b81c494900cb112aa00ed205cc2d9
x86/mm: Rework lazy TLB mode and TLB freshness tracking
43858b4f25cf0adc5c2ca9cf5ce5fdf2532941e5
x86/mm: Stop calling leave_mm() in idle code
10af6235e0d327d42e1bad974385197817923dc1
x86/mm: Implement PCID based optimization: try to preserve old TLB entries using PCID
(*resolved easy conflicts since we don't have SME support. also tweaked not to use __sme_pa)
a376e7f99be7c1e15b2d986e49b2bec834904381
x86/mm: Get rid of VM_BUG_ON in switch_tlb_irqs_off()
72c0098d92cedb11c7e0151e84918840a4e96b31
(*modified to avoid __sme_pa)
x86/mm: Reinitialize TLB state on hotplug and resume
47061a24e2ee5bd8a40d473d47a5bd823fa0081f
x86/mm: Factor out CR3-building code
(*resolved easy conflicts since we don't have SME support. modified to avoid __sme_pa)
52a2af400c1075219b3f0ce5c96fc961da44018a
x86/mm/64: Stop using CR3.PCID == 0 in ASID-aware code
(*modified to avoid using __sme_pa)
675357362aeba19688440eb1aaa7991067f73b12
Revert "x86/mm: Stop calling leave_mm() in idle code"
b956575bed91ecfb136a8300742ecbbf451471ab
x86/mm: Flush more aggressively in lazy TLB mode
needed for later patch to apply and build cleanly: x86/mm: Move the CR3 construction functions to tlbflush.h
0790c9aad84901ca1bdc14746175549c8b5da215
x86/mm: Add the 'nopcid' boot option to turn off PCID
c7ad5ad297e644601747d6dbee978bf85e14f7bc
x86/mm/64: Initialize CR4.PCIDE early
to make later commit apply easier: x86/mm/pti: Add infrastructure for page table isolation
9a98e7780022aa7cd201eb8a88a4f1d607b73cde
x86/asm: Replace access to desc_struct:a/b fields
898fe968f78c45e12fed31aee35a118a4e26e1b4
selftests/x86/ldt_gdt: Robustify against set_thread_area() and LAR oddities
to make later commit apply without conflicts: x86/ldt: Make the LDT mapping RO
229a71860547ec856b156179a9c6bef2de426f66
irq: Make the irqentry text section unconditional
needed to make later commit build: x86/mm/pti: Share entry text PMD
now cherry pick this series from 4.14.9: c09061aec2e5245f547ea6eecf321e172e42b7fb^..8388d287e361a2fd0a39bec
error: could not apply 42314edefac8... objtool: Don't report end of section error after an empty unwind hint
SKIP: don't care about objtool
error: could not apply 8af220c9e240... x86/unwind: Rename unwinder config options to 'CONFIG_UNWINDER_*'
SKIP: do not have this ORC unwinder stuff in 4.13
error: could not apply b40a923903d0... x86/unwind: Make CONFIG_UNWINDER_ORC=y the default in kconfig for 64-bit
SKIP: do not have this ORC unwinder stuff in 4.13
error: could not apply 3df257ddc5f4... x86/build: Beautify build log of syscall headers
easy conflict due to SPDX license header added in 4.14
error: could not apply 673b1522c658... x86/entry/64: Use pop instead of movq in syscall_return_via_sysret
doesnt apply since we dont have this 4.14 patch:
x86/entry/64: Add unwind hint annotations
which is part of ORC unwinder
easy conflict to resolve
error: could not apply e7273aae1397... x86/entry/64: Merge the fast and slow SYSRET paths
same reason as above, easy to resolve
error: could not apply 8d50dee92fb2... x86/entry/64: Remove the RESTORE_..._REGS infrastructure
same reason as above, easy to resolve
error: could not apply f53f7a3f0156... xen, x86/entry/64: Add xen NMI trap entry
conflicts because we do not have 4.14 commit:
x86/xen: Get rid of paravirt op adjust_exception_frame
hard to resolve, would be good to review
error: could not apply 6ff096cf2bf8... x86/entry/64: De-Xen-ify our NMI code
we dont have the unwind hint annotations nor paravirt op patches so this conflcits. easy to resolve
error: could not apply 35c1d57e6391... x86/traps: Use a new on_thread_stack() helper to clean up an assertion
conflicts because we dont have 4.14 optimization commit
x86/asm: Use register variable to get stack pointer value
skip: not needed overall
error: could not apply 64766453be2e... x86/mm: Define _PAGE_TABLE using _KERNPG_TABLE
conflicts beccause we dont have 4.14 commit:
x86/mm: Provide general kernel support for memory encryption
skip as this didnt change behaviour anyway
error: could not apply 47af9e68f3f2... x86/cpufeatures: Re-tabulate the X86_FEATURE definitions
conflicts because we dont have 4.14 patch that adds AMD SME support, easily resolved
error: could not apply 2d8c24ed9310... perf/x86: Enable free running PEBS for REGS_USER/INTR
conflicts because we dont have 4.14 commit
perf/core, x86: Add PERF_SAMPLE_PHYS_ADDR
easily resolved
x86/head: Add unwind hint annotations
SKIP: dont have the ORC unwinder
x86/xen: Add unwind hint annotations
SKIP: dont have ORC unwinder
error: could not apply 40ddc692b5a1... x86/unwinder/orc: Dont bail on stack overflow
skip - dont have orc unwinder
error: could not apply 5209e8ac9372... x86/unwinder: Handle stack overflows more gracefully
easily resolved conflcits due to not having ORC unwinder
error: could not apply bb568391775d... x86/entry/64: Move the IST stacks into struct cpu_entry_area
needed conflict resolution - worth checking
x86/entry/64: Use a per-CPU trampoline stack for IDT entries
modified to remove unwind hints
x86/entry/64: Create a per-CPU SYSCALL entry trampoline
modified to remove unwind hints
now cherry-pick 4.14.10 patches 62c37437a110cfec0d2b46^..752d01704ad18371fa6
error: could not apply 62c37437a110... objtool: Move synced files to their original relative locations
error: could not apply 2845aee45c36... objtool: Move kernel headers/code sync check to a script
error: could not apply 3033f9e601f4... objtool: Fix cross-build
error: could not apply 6a8f7688094c... tools/headers: Sync objtool UAPI header
error: could not apply 76358c8d90c7... objtool: Fix 64-bit build on 32-bit host
SKIP: objtool changes difficult to handle as we dont have the orc unwinder
error: could not apply 29606f10f399... x86/mm: Add comments to clarify which TLB-flush functions are supposed to flush what
SKIP: dont care about comments
x86/mm: Move the CR3 construction functions to tlbflush.h
modified to not use __sme_pa
x86/mm: Remove hard-coded ASID limit checks
modified to not use __sme_pa
x86/mm: Put MMU to hardware ASID translation in one place
modified to not use __sme_pa
error: could not apply 3440093266b7... x86/cpu_entry_area: Move it out of the fixmap
easily resolved #include conflicts (no SME)
now cherry-pick 4.14.11 patches 72a2beddcd32400^..e08acdb9620bcd4c55128c
error: could not apply 72a2beddcd32... x86/cpufeatures: Add X86_BUG_CPU_INSECURE
trivial conflicts due to no SME on 4.13
error: could not apply f3d2b767e912... x86/mm/pti: Prepare the x86/entry assembly code for entry/exit CR3 switching
trivial conficts in include list due to no ORC unwinder on 4.13
error: could not apply a4b07fb4e5a6... x86/mm/pti: Add infrastructure for page table isolation
resolved minor conflict due to SME
error: could not apply 61fd4049e676... x86/mm/pti: Allocate a separate user PGD
conflicts due to no SME, easily resolved
error: could not apply c796e2324094... x86/mm: Allow flushing for future ASID switches
trivial comment conflict easily resolved
error: could not apply b63812b81349... x86/mm: Use/Fix PCID to optimize user/kernel switches
trivial comment conflict easily resolved
take some patches that went into 4.9-stable recently
1e7f3d8875ee92983bd754982af7f4f044dd057d
x86/mm: Disable PCID on 32-bit kernels
04bdf71d9f7412364e9bae93f321e6bf776cd1d4
x86/mm/64: Fix reboot interaction with CR4.PCIDE
404ae546c7d1927b877d24bf447a462a5c5a5ad7
x86/smpboot: Remove stale TLB flush invocations
now cherry-pick what went into 4.14.12
151d7039757b71ebd9d17^..88dff1ab04d2792492e3f7e1
error: could not apply a841ba8f4d7e... x86/dumpstack: Fix partial register dumps
SKIP: no ORC unwinder in 4.13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment