linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Rohan McLure <rmclure@linux.ibm.com>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Cc: "mpe@ellerman.id.au" <mpe@ellerman.id.au>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-riscv@lists.infradead.org"
	<linux-riscv@lists.infradead.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"x86@kernel.org" <x86@kernel.org>
Subject: Re: [PATCH v11 00/11] Support page table check PowerPC
Date: Thu, 28 Mar 2024 07:57:02 +0000	[thread overview]
Message-ID: <eb906bc3-b372-449b-a351-eb739ffa7418@csgroup.eu> (raw)
In-Reply-To: <5009c511-ec85-4d05-a106-8fca9189dd5d@csgroup.eu>



Le 28/03/2024 à 07:52, Christophe Leroy a écrit :
> 
> 
> Le 28/03/2024 à 05:55, Rohan McLure a écrit :
>> Support page table check on all PowerPC platforms. This works by
>> serialising assignments, reassignments and clears of page table
>> entries at each level in order to ensure that anonymous mappings
>> have at most one writable consumer, and likewise that file-backed
>> mappings are not simultaneously also anonymous mappings.
>>
>> In order to support this infrastructure, a number of stubs must be
>> defined for all powerpc platforms. Additionally, seperate set_pte_at()
>> and set_pte_at_unchecked(), to allow for internal, uninstrumented 
>> mappings.
> 
> I gave it a try on QEMU e500 (64 bits), and get the following Oops. What 
> do I have to look for ?
> 
> Freeing unused kernel image (initmem) memory: 2588K
> This architecture does not have kernel memory protection.
> Run /init as init process
> ------------[ cut here ]------------
> kernel BUG at mm/page_table_check.c:119!
> Oops: Exception in kernel mode, sig: 5 [#1]
> BE PAGE_SIZE=4K SMP NR_CPUS=32 QEMU e500

Same problem on my 8xx board:

[    7.358146] Freeing unused kernel image (initmem) memory: 448K
[    7.363957] Run /init as init process
[    7.370955] ------------[ cut here ]------------
[    7.375411] kernel BUG at mm/page_table_check.c:119!
[    7.380393] Oops: Exception in kernel mode, sig: 5 [#1]
[    7.385621] BE PAGE_SIZE=16K PREEMPT CMPC885
[    7.393483] CPU: 0 PID: 1 Comm: init Not tainted 
6.8.0-s3k-dev-13737-g8d9e247585fb #787
[    7.401505] Hardware name: MIAE 8xx 0x500000 CMPC885
[    7.406481] NIP:  c0183278 LR: c018316c CTR: 00000001
[    7.411541] REGS: c902bb20 TRAP: 0700   Not tainted 
(6.8.0-s3k-dev-13737-g8d9e247585fb)
[    7.419657] MSR:  00029032 <EE,ME,IR,DR,RI>  CR: 35055355  XER: 80007100
[    7.426550]
[    7.426550] GPR00: c018316c c902bbe0 c2118000 c7f7a0d8 7fab8000 
c23b5ae0 c902bc20 00000002
[    7.426550] GPR08: c11a0000 c7f7a0d8 c11143e0 00000000 95003355 
00000000 c0004a38 c23a0a00
[    7.426550] GPR16: 00004000 7fffc000 80000000 c23a0a00 00000001 
7fab8000 ffabc000 80000000
[    7.426550] GPR24: 7fffc000 c33be1c0 00004000 c902bc20 7fab8000 
00000001 c7fb0360 00000000
[    7.463291] NIP [c0183278] __page_table_check_ptes_set+0x1c8/0x210
[    7.469491] LR [c018316c] __page_table_check_ptes_set+0xbc/0x210
[    7.475514] Call Trace:
[    7.477957] [c902bbe0] [c018316c] 
__page_table_check_ptes_set+0xbc/0x210 (unreliable)
[    7.485809] [c902bc00] [c0012474] set_ptes+0x148/0x16c
[    7.490958] [c902bc50] [c0158a3c] move_page_tables+0x228/0x578
[    7.496806] [c902bcf0] [c0192f38] shift_arg_pages+0xf0/0x1d4
[    7.502479] [c902bd90] [c0193b40] setup_arg_pages+0x1c8/0x36c
[    7.508238] [c902be40] [c01f51a0] load_elf_binary+0x3c0/0x1218
[    7.514086] [c902beb0] [c01934b0] bprm_execve+0x21c/0x4a4
[    7.519497] [c902bf00] [c019516c] kernel_execve+0x13c/0x200
[    7.525082] [c902bf20] [c0004aa8] kernel_init+0x70/0x1b0
[    7.530406] [c902bf30] [c00111e4] ret_from_kernel_user_thread+0x10/0x18
[    7.537038] --- interrupt: 0 at 0x0
[    7.540534] Code: 39290004 7ce04828 30e70001 7ce0492d 40a2fff4 
2c070000 4080ff94 0fe00000 0fe00000 0fe00000 2c1f0000 4082ff80 
<0fe00000> 0fe00000 392affff 4bfffef8
[    7.556068] ---[ end trace 0000000000000000 ]---
[    7.560692]
[    8.531997] note: init[1] exited with irqs disabled
[    8.536891] note: init[1] exited with preempt_count 1
[    8.542032] Kernel panic - not syncing: Attempted to kill init! 
exitcode=0x00000005
[    8.549602] Rebooting in 180 seconds..

  reply	other threads:[~2024-03-28  7:57 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-28  4:55 Rohan McLure
2024-03-28  4:55 ` [PATCH v11 01/11] Revert "mm/page_table_check: remove unused parameter in [__]page_table_check_pud_set" Rohan McLure
2024-03-28  4:55 ` [PATCH v11 02/11] Revert "mm/page_table_check: remove unused parameter in [__]page_table_check_pmd_set" Rohan McLure
2024-03-28  4:55 ` [PATCH v11 04/11] Revert "mm/page_table_check: remove unused parameter in [__]page_table_check_pud_clear" Rohan McLure
2024-03-28  4:55 ` [PATCH v11 05/11] Revert "mm/page_table_check: remove unused parameter in [__]page_table_check_pmd_clear" Rohan McLure
2024-03-28  4:55 ` [PATCH v11 06/11] Revert "mm/page_table_check: remove unused parameter in [__]page_table_check_pte_clear" Rohan McLure
2024-03-28  4:55 ` [PATCH v11 07/11] mm: Provide address parameter to p{te,md,ud}_user_accessible_page() Rohan McLure
2024-03-28  4:55 ` [PATCH v11 11/11] powerpc: mm: Support page table check Rohan McLure
     [not found] ` <20240328045535.194800-11-rmclure@linux.ibm.com>
2024-03-28  5:33   ` [PATCH v11 08/11] powerpc: mm: Add pud_pfn() stub Christophe Leroy
     [not found] ` <20240328045535.194800-12-rmclure@linux.ibm.com>
2024-03-28  5:40   ` [PATCH v11 09/11] poweprc: mm: Implement *_user_accessible_page() for ptes Christophe Leroy
2024-03-28  5:44     ` Rohan McLure
2024-03-28  6:52 ` [PATCH v11 00/11] Support page table check PowerPC Christophe Leroy
2024-03-28  7:57   ` Christophe Leroy [this message]
2024-03-29  8:29     ` Christophe Leroy
2024-03-28  9:28 ` Ingo Molnar
2024-04-02  3:00   ` Rohan McLure

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eb906bc3-b372-449b-a351-eb739ffa7418@csgroup.eu \
    --to=christophe.leroy@csgroup.eu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=rmclure@linux.ibm.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox