Thread (19 messages) flat view 19 messages, 4 authors, 2020-03-05

Re: [PATCH V14] mm/debug: Add tests validating architecture page table helpers

From: Anshuman Khandual <hidden>
Date: 2020-02-27 02:34:27
Also in: linux-arch, linux-arm-kernel, linux-mm, linux-riscv, linux-s390, lkml

On 02/26/2020 08:14 PM, Christophe Leroy wrote:

Le 26/02/2020 à 15:12, Qian Cai a écrit :
quoted
On Wed, 2020-02-26 at 09:09 -0500, Qian Cai wrote:
quoted
On Mon, 2020-02-17 at 08:47 +0530, Anshuman Khandual wrote:

How useful is this that straightly crash the powerpc?
And then generate warnings on arm64,

[  146.634626][    T1] debug_vm_pgtable: debug_vm_pgtable: Validating
architecture page table helpers
[  146.643995][    T1] ------------[ cut here ]------------
[  146.649350][    T1] virt_to_phys used for non-linear address:
(____ptrval____) (start_kernel+0x0/0x580)
Must be something wrong with the following in debug_vm_pgtable()

    paddr = __pa(&start_kernel);

Is there any explaination why start_kernel() is not in linear memory on ARM64 ?

Cc: + James Morse <james.morse@arm.com>

This warning gets exposed with DEBUG_VIRTUAL due to __pa() on a kernel symbol
i.e 'start_kernel' which might be outside the linear map. This happens due to
kernel mapping position randomization with KASLR. Adding James here in case he
might like to add more.

__pa_symbol() should have been used instead, for accessing the physical address
here. On arm64 __pa() does check for linear address with __is_lm_address() and
switch accordingly if it is a kernel text symbol. Nevertheless, its much better
to use __pa_symbol() here rather than __pa().

Rather than respining the patch once more, will just send a fix replacing this
helper __pa() with __pa_symbol() for Andrew to pick up as this patch is already
part of linux-next (next-20200226). But can definitely respin if that will be
preferred.

Thanks Qian for catching this.
Christophe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help