Re: [PATCH 4.4 00/37] 4.4.110-stable review

From: Pavel Tatashin
Date: Thu Jan 04 2018 - 11:38:33 EST


I am getting the following panic when trying to boot 4.4.110rc1 on
Intel(R) Xeon(R) CPU E5-2630:

[ 5.923489] BUG: unable to handle kernel NULL pointer dereference
at 000000000000000d
[ 5.932259] IP: [<ffffffff810e70d2>] dyntick_save_progress_counter+0x12/0x50
[ 5.940142] PGD 0
[ 5.942400] Oops: 0002 [#1] SMP
[ 5.946023] Modules linked in:
[ 5.949448] CPU: 5 PID: 8 Comm: rcu_sched Not tainted
4.4.110-rc1_pt_linux-4.4.110rc1 #1
[ 5.958484] Hardware name: Oracle Corporation ORACLE SERVER
X6-2/ASM,MOTHERBOARD,1U, BIOS 38050100 08/30/2016
[ 5.969552] task: ffff881ff2f1ab00 ti: ffff881ff2f24000 task.ti:
ffff881ff2f24000
[ 5.977905] RIP: 0010:[<ffffffff810e70d2>] [<ffffffff810e70d2>]
dyntick_save_progress_counter+0x12/0x50
[ 5.988505] RSP: 0000:ffff881ff2f27dc0 EFLAGS: 00010046
[ 5.994434] RAX: 0000000000000001 RBX: ffffffff81b02140 RCX: ffff883fec768000
[ 6.002403] RDX: 0000000000000000 RSI: ffff881ff2f27e5f RDI: ffff88407e958140
[ 6.010368] RBP: ffff881ff2f27dc0 R08: ffff881ff2f27e78 R09: 000000016110f359
[ 6.018333] R10: 0000000000000b10 R11: 0000000000000000 R12: ffffffff81b02140
[ 6.026297] R13: 00000000ffffffdf R14: 0000000000000021 R15: 0000000200000000
[ 6.034262] FS: 0000000000000000(0000) GS:ffff881fff940000(0000)
knlGS:0000000000000000
[ 6.043293] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 6.049707] CR2: 000000000000000d CR3: 0000000001aa6000 CR4: 0000000000360670
[ 6.057672] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 6.065638] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 6.073603] Stack:
[ 6.075847] ffff881ff2f27e18 ffffffff810e8fac 0000000000000202
ffff881ff2f27e60
[ 6.084158] ffff881ff2f27e5f ffffffff810e70c0 ffffffff81b02140
ffffffff81b127a0
[ 6.092465] 0000000000000001 0000000000000000 0000000000000003
ffff881ff2f27eb8
[ 6.100768] Call Trace:
[ 6.103501] [<ffffffff810e8fac>] force_qs_rnp+0xdc/0x150
[ 6.109527] [<ffffffff810e70c0>] ? rcu_start_gp+0x70/0x70
[ 6.115654] [<ffffffff810ea118>] rcu_gp_kthread+0x468/0x9b0
[ 6.121976] [<ffffffff810c9190>] ? prepare_to_wait_event+0xf0/0xf0
[ 6.128973] [<ffffffff810e9cb0>] ? rcu_process_callbacks+0x5f0/0x5f0
[ 6.136167] [<ffffffff810a4a25>] kthread+0xe5/0x100
[ 6.141710] [<ffffffff810a4940>] ? kthread_park+0x60/0x60
[ 6.147840] [<ffffffff81714e8f>] ret_from_fork+0x3f/0x70
[ 6.153868] [<ffffffff810a4940>] ? kthread_park+0x60/0x60

I tried to bisect the problem, but when I try to boot only with:
"KAISER: Kernel Address Isolation" machine hangs during boot and
reboots without any panic message.

4.4.109 boots fine
4.9.75rc1 also boots fine.

Thank you,
Pavel

On Wed, Jan 3, 2018 at 3:11 PM, Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> This is the start of the stable review cycle for the 4.4.110 release.
> There are 37 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Fri Jan 5 19:50:38 UTC 2018.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.4.110-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.4.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>
> -------------
> Pseudo-Shortlog of commits:
>
> Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Linux 4.4.110-rc1
>
> Kees Cook <keescook@xxxxxxxxxxxx>
> KPTI: Report when enabled
>
> Kees Cook <keescook@xxxxxxxxxxxx>
> KPTI: Rename to PAGE_TABLE_ISOLATION
>
> Borislav Petkov <bp@xxxxxxx>
> x86/kaiser: Move feature detection up
>
> Jiri Kosina <jkosina@xxxxxxx>
> kaiser: disabled on Xen PV
>
> Borislav Petkov <bp@xxxxxxx>
> x86/kaiser: Reenable PARAVIRT
>
> Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> x86/paravirt: Dont patch flush_tlb_single
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: kaiser_flush_tlb_on_return_to_user() check PCID
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: asm/tlbflush.h handle noPGE at lower level
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: drop is_atomic arg to kaiser_pagetable_walk()
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: use ALTERNATIVE instead of x86_cr3_pcid_noflush
>
> Borislav Petkov <bp@xxxxxxx>
> x86/kaiser: Check boottime cmdline params
>
> Borislav Petkov <bp@xxxxxxx>
> x86/kaiser: Rename and simplify X86_FEATURE_KAISER handling
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: add "nokaiser" boot option, using ALTERNATIVE
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: fix unlikely error in alloc_ldt_struct()
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: _pgd_alloc() without __GFP_REPEAT to avoid stalls
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: paranoid_entry pass cr3 need to paranoid_exit
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: x86_cr3_pcid_noflush and x86_cr3_pcid_user
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: PCID 0 for kernel and 128 for user
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: load_new_mm_cr3() let SWITCH_USER_CR3 flush user
>
> Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> kaiser: enhanced by kernel and user PCIDs
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: vmstat show NR_KAISERTABLE as nr_overhead
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: delete KAISER_REAL_SWITCH option
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: name that 0x1000 KAISER_SHADOW_PGD_OFFSET
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: cleanups while trying for gold link
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: kaiser_remove_mapping() move along the pgd
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: tidied up kaiser_add/remove_mapping slightly
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: tidied up asm/kaiser.h somewhat
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: ENOMEM if kaiser_pagetable_walk() NULL
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: fix perf crashes
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: fix regs to do_nmi() ifndef CONFIG_KAISER
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: KAISER depends on SMP
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: fix build and FIXME in alloc_ldt_struct()
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: stack map PAGE_SIZE at THREAD_SIZE-PAGE_SIZE
>
> Hugh Dickins <hughd@xxxxxxxxxx>
> kaiser: do not set _PAGE_NX on pgd_none
>
> Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> kaiser: merged update
>
> Richard Fellner <richard.fellner@xxxxxxxxxxxxxxxxx>
> KAISER: Kernel Address Isolation
>
> Tom Lendacky <thomas.lendacky@xxxxxxx>
> x86/boot: Add early cmdline parsing for options with arguments
>
>
> -------------
>
> Diffstat:
>
> Documentation/kernel-parameters.txt | 8 +
> Makefile | 4 +-
> arch/x86/boot/compressed/misc.h | 1 +
> arch/x86/entry/entry_64.S | 164 ++++++++--
> arch/x86/entry/entry_64_compat.S | 7 +
> arch/x86/include/asm/cmdline.h | 2 +
> arch/x86/include/asm/cpufeature.h | 4 +
> arch/x86/include/asm/desc.h | 2 +-
> arch/x86/include/asm/hw_irq.h | 2 +-
> arch/x86/include/asm/kaiser.h | 141 +++++++++
> arch/x86/include/asm/pgtable.h | 28 +-
> arch/x86/include/asm/pgtable_64.h | 25 +-
> arch/x86/include/asm/pgtable_types.h | 29 +-
> arch/x86/include/asm/processor.h | 2 +-
> arch/x86/include/asm/tlbflush.h | 74 ++++-
> arch/x86/include/uapi/asm/processor-flags.h | 3 +-
> arch/x86/kernel/cpu/common.c | 28 +-
> arch/x86/kernel/cpu/perf_event_intel_ds.c | 57 +++-
> arch/x86/kernel/espfix_64.c | 10 +
> arch/x86/kernel/head_64.S | 35 ++-
> arch/x86/kernel/irqinit.c | 2 +-
> arch/x86/kernel/ldt.c | 25 +-
> arch/x86/kernel/paravirt_patch_64.c | 2 -
> arch/x86/kernel/process.c | 2 +-
> arch/x86/kernel/setup.c | 7 +
> arch/x86/kernel/tracepoint.c | 2 +
> arch/x86/kvm/x86.c | 3 +-
> arch/x86/lib/cmdline.c | 105 +++++++
> arch/x86/mm/Makefile | 1 +
> arch/x86/mm/init.c | 2 +-
> arch/x86/mm/init_64.c | 10 +
> arch/x86/mm/kaiser.c | 455 ++++++++++++++++++++++++++++
> arch/x86/mm/pageattr.c | 63 +++-
> arch/x86/mm/pgtable.c | 16 +-
> arch/x86/mm/tlb.c | 39 ++-
> include/asm-generic/vmlinux.lds.h | 7 +
> include/linux/kaiser.h | 52 ++++
> include/linux/mmzone.h | 3 +-
> include/linux/percpu-defs.h | 32 +-
> init/main.c | 2 +
> kernel/fork.c | 6 +
> mm/vmstat.c | 1 +
> security/Kconfig | 10 +
> 43 files changed, 1375 insertions(+), 98 deletions(-)
>
>



--
Life Is BeAuTifuL :)