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

From: Mike Galbraith
Date: Thu Jan 04 2018 - 23:39:05 EST


On Thu, 2018-01-04 at 15:45 -0800, Guenter Roeck wrote:
>
> The crash part of this problem may be solved with the following patch
> (thanks to Hugh for the hint). There is still another problem, though -
> with this patch applied, the qemu session aborts with "VCPU Shutdown
> request", whatever that means.

The crash part is not fixed by your patch here, w/wo I get this, and it
is PTI, as virgin 109 boots/works with identical everything else.  My
shiny new PTI equipped enterprise 4.4 RT kernels also boot/work fine,
which seems a bit odd.. and not particularly comforting.

[ 1.244354] Freeing unused kernel memory: 1192K
[ 1.245278] Write protecting the kernel read-only data: 10240k
[ 1.247626] Freeing unused kernel memory: 1152K
[ 1.251318] Freeing unused kernel memory: 1476K
[ 1.253393] init[1]: segfault at ffffffffff5ff100 ip 00007fffb7ffac6e sp 00007fffb7fa07d8 error 5
[ 1.254629] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 1.254629]
[ 1.256202] CPU: 4 PID: 1 Comm: init Not tainted 4.4.110-rc1-smp #4
[ 1.257169] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014
[ 1.258563] 0000000000000000 ffffffff8125a9c0 ffffffff817de7c8 ffff880197e83cf0
[ 1.260850] ffffffff8112bb2d ffffffff00000010 ffff880197e83d00 ffff880197e83ca0
[ 1.263091] ffffffff81c3cf30 000000000000000b ffff880197e90010 0000000000000000
[ 1.264580] Call Trace:
[ 1.265617] [<ffffffff8125a9c0>] ? dump_stack+0x5c/0x7c
[ 1.266671] [<ffffffff8112bb2d>] ? panic+0xc8/0x20f
[ 1.267799] [<ffffffff81060af0>] ? do_exit+0xa50/0xa50
[ 1.268971] [<ffffffff810618e9>] ? do_group_exit+0x39/0xa0
[ 1.270281] [<ffffffff8106c8a0>] ? get_signal+0x1d0/0x600
[ 1.271347] [<ffffffff810041e3>] ? do_signal+0x23/0x5b0
[ 1.272259] [<ffffffff8106ade9>] ? __send_signal+0x179/0x460
[ 1.273235] [<ffffffff8104b88f>] ? force_sig_info_fault+0x5f/0x70
[ 1.274258] [<ffffffff8104bf6c>] ? __bad_area_nosemaphore+0x1cc/0x200
[ 1.275268] [<ffffffff8105a052>] ? exit_to_usermode_loop+0x54/0x95
[ 1.276262] [<ffffffff81001961>] ? prepare_exit_to_usermode+0x31/0x40
[ 1.277266] [<ffffffff814d9dbe>] ? retint_user+0x8/0x2c
[ 1.278274] Dumping ftrace buffer:
[ 1.279011] (ftrace buffer empty)
[ 1.279728] Kernel Offset: disabled
[ 1.280432] Rebooting in 60 seconds..

virsh # exit
 
>
> Guenter
>
> ---
> From: Guenter Roeck <groeck@xxxxxxxxxxxx>
> Date: Thu, 4 Jan 2018 13:41:55 -0800
> Subject: [PATCH 2/2] WIP: kaiser: Set _PAGE_NX only if supported
>
> Change-Id: Ie6ab566c1d725b24c4b3aa80a47c3ff3a5feddb9
> Signed-off-by: Guenter Roeck <groeck@xxxxxxxxxxxx>
> ---
> arch/x86/mm/kaiser.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/mm/kaiser.c b/arch/x86/mm/kaiser.c
> index 7d2f7eb6857f..e4706273d4a1 100644
> --- a/arch/x86/mm/kaiser.c
> +++ b/arch/x86/mm/kaiser.c
> @@ -421,7 +421,8 @@ pgd_t kaiser_set_shadow_pgd(pgd_t *pgdp, pgd_t pgd)
> * get out to userspace running on the kernel CR3,
> * userspace will crash instead of running.
> */
> - pgd.pgd |= _PAGE_NX;
> + if (__supported_pte_mask & _PAGE_NX)
> + pgd.pgd |= _PAGE_NX;
> }
> } else if (!pgd.pgd) {
> /*