Re: [PATCH v13 00/10] powerpc: Switch to CONFIG_THREAD_INFO_IN_TASK

From: Christophe Leroy
Date: Thu Jan 24 2019 - 10:08:59 EST




Le 24/01/2019 Ã 01:59, Michael Ellerman a ÃcritÂ:
Christophe Leroy <christophe.leroy@xxxxxx> writes:
Le 19/01/2019 Ã 11:23, Michael Ellerman a ÃcritÂ:
Christophe Leroy <christophe.leroy@xxxxxx> writes:

The purpose of this serie is to activate CONFIG_THREAD_INFO_IN_TASK which
moves the thread_info into task_struct.

Moving thread_info into task_struct has the following advantages:
- It protects thread_info from corruption in the case of stack
overflows.
- Its address is harder to determine if stack addresses are
leaked, making a number of attacks more difficult.

Changes since v12:
- Patch 1: Taken comment from Mike (re-introduced the 'panic' in case memblock allocation fails in setup_64.c
- Patch 1: Added alloc_stack() function in setup_32.c to also panic in case of allocation failure.

Hi Christophe,

I can't get this series to boot on qemu mac99. I'm getting eg:

[ 0.981514] NFS: Registering the id_resolver key type
[ 0.981752] Key type id_resolver registered
[ 0.981868] Key type id_legacy registered
[ 0.995711] Unrecoverable exception 0 at 0 (msr=0)
[ 0.996091] Oops: Unrecoverable exception, sig: 6 [#1]
[ 0.996314] BE PAGE_SIZE=4K MMU=Hash PowerMac
[ 0.996617] Modules linked in:
[ 0.996869] CPU: 0 PID: 416 Comm: modprobe Not tainted 5.0.0-rc2-gcc-7.3.0-00043-g53f2de798792 #342
[ 0.997138] NIP: 00000000 LR: 00000000 CTR: 00000000
[ 0.997309] REGS: ef237f50 TRAP: 0000 Not tainted (5.0.0-rc2-gcc-7.3.0-00043-g53f2de798792)
[ 0.997508] MSR: 00000000 <> CR: 00000000 XER: 00000000
[ 0.997712]
[ 0.997712] GPR00: 00000000 ef238000 00000000 00000000 00000000 00000000 00000000 00000000
[ 0.997712] GPR08: 00000000 00000000 00000000 00000000 00000000 00000000 c006477c ef13d8c0
[ 0.997712] GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 0.997712] GPR24: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 0.998671] NIP [00000000] (null)
[ 0.998774] LR [00000000] (null)
[ 0.998895] Call Trace:
[ 0.999030] Instruction dump:
[ 0.999320] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
[ 0.999546] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 60000000 XXXXXXXX XXXXXXXX XXXXXXXX
[ 1.000023] ---[ end trace 925ea3419844fe68 ]---

No such issue on my side. Do you have a ramdisk with anythink special or
a special config ? I see your kernel is modprobing something, know what
it is ?

It's just a debian installer image, nothing special AFAIK.

Especially, what is the amount of memory in your config ? On my side
there is 128M:

I have 1G.

But today I can't reproduce the crash :/

So I guess it must have been something else in my config.

Or it could be because I didn't protect stack walks ? See

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9bbd4c56b0b642f04396da378296e68096d5afca

Anyway, I'll soon send out v14 including a patch for that.

Christophe