# git rev-parse -q --verify 8ff468c29e9a9c3afe9152c10c7b141343270bf3^{commit} 8ff468c29e9a9c3afe9152c10c7b141343270bf3 already have revision, skipping fetch # git checkout -q -f -B kisskb 8ff468c29e9a9c3afe9152c10c7b141343270bf3 # git clean -qxdf # < git log -1 # commit 8ff468c29e9a9c3afe9152c10c7b141343270bf3 # Merge: 68253e718c27 d9c9ce34ed5c # Author: Linus Torvalds # Date: Tue May 7 10:24:10 2019 -0700 # # Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip # # Pull x86 FPU state handling updates from Borislav Petkov: # "This contains work started by Rik van Riel and brought to fruition by # Sebastian Andrzej Siewior with the main goal to optimize when to load # FPU registers: only when returning to userspace and not on every # context switch (while the task remains in the kernel). # # In addition, this optimization makes kernel_fpu_begin() cheaper by # requiring registers saving only on the first invocation and skipping # that in following ones. # # What is more, this series cleans up and streamlines many aspects of # the already complex FPU code, hopefully making it more palatable for # future improvements and simplifications. # # Finally, there's a __user annotations fix from Jann Horn" # # * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (29 commits) # x86/fpu: Fault-in user stack if copy_fpstate_to_sigframe() fails # x86/pkeys: Add PKRU value to init_fpstate # x86/fpu: Restore regs in copy_fpstate_to_sigframe() in order to use the fastpath # x86/fpu: Add a fastpath to copy_fpstate_to_sigframe() # x86/fpu: Add a fastpath to __fpu__restore_sig() # x86/fpu: Defer FPU state load until return to userspace # x86/fpu: Merge the two code paths in __fpu__restore_sig() # x86/fpu: Restore from kernel memory on the 64-bit path too # x86/fpu: Inline copy_user_to_fpregs_zeroing() # x86/fpu: Update xstate's PKRU value on write_pkru() # x86/fpu: Prepare copy_fpstate_to_sigframe() for TIF_NEED_FPU_LOAD # x86/fpu: Always store the registers in copy_fpstate_to_sigframe() # x86/entry: Add TIF_NEED_FPU_LOAD # x86/fpu: Eager switch PKRU state # x86/pkeys: Don't check if PKRU is zero before writing it # x86/fpu: Only write PKRU if it is different from current # x86/pkeys: Provide *pkru() helpers # x86/fpu: Use a feature number instead of mask in two more helpers # x86/fpu: Make __raw_xsave_addr() use a feature number instead of mask # x86/fpu: Add an __fpregs_load_activate() internal helper # ... # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux-ld --version # < git log --format=%s --max-count=1 8ff468c29e9a9c3afe9152c10c7b141343270bf3 # < make -s -j 80 ARCH=arm64 O=/kisskb/build/linus-rand_arm64-randconfig_arm64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux- randconfig KCONFIG_SEED=0xF3E76BAA # Added to kconfig CONFIG_PREVENT_FIRMWARE_BUILD=y # yes \n | make -s -j 80 ARCH=arm64 O=/kisskb/build/linus-rand_arm64-randconfig_arm64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux- oldconfig yes: standard output: Broken pipe # make -s -j 80 ARCH=arm64 O=/kisskb/build/linus-rand_arm64-randconfig_arm64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux- Completed OK # rm -rf /kisskb/build/linus-rand_arm64-randconfig_arm64-gcc8 # Build took: 0:03:06.462057