Thread (69 messages) 69 messages, 4 authors, 2016-01-27

[PATCH v3 07/21] arm64: move kernel image to base of vmalloc area

From: Ard Biesheuvel <hidden>
Date: 2016-01-27 14:31:40
Also in: lkml

On 15 January 2016 at 12:23, Mark Rutland [off-list ref] wrote:
On Fri, Jan 15, 2016 at 10:54:26AM +0100, Ard Biesheuvel wrote:
quoted
On 14 January 2016 at 19:57, Mark Rutland [off-list ref] wrote:
quoted
On Wed, Jan 13, 2016 at 01:51:10PM +0000, Mark Rutland wrote:
quoted
On Wed, Jan 13, 2016 at 09:39:41AM +0100, Ard Biesheuvel wrote:
quoted
If I remove the rounding, I get false positive kasan errors which I
have not quite diagnosed yet, but are probably due to the fact that
the rounding performed by vmemmap_populate() goes in the wrong
direction.
As far as I can see, it implicitly rounds the base down and end up to
SWAPPER_BLOCK_SIZE granularity.

I can see that it might map too much memory, but I can't see why that
should trigger KASAN failures. Regardless of what was mapped KASAN
should stick to the region it cares about, and everything else should
stay out of that.

When do you see the failures, and are they in any way consistent?

Do you have an example to hand?
For some reason, this issue has evaporated, i.e., I can no longer
reproduce it on my WIP v4 branch.
So I will remove the rounding.
Ok.

I'll let you know if I stumble across anything that looks like a
potential cause of the KASAN failures, and I'll try to give v4 a go at
some point soon.
OK, I managed to track this down (I think). The issue here is that,
while vmemmap_populate() does the right thing wrt the start and end
boundaries, populate_zero_shadow() will map the adjoining regions down
to page granularity, replacing vmemmap_populate()'s PMD block mappings
with PMD table mappings. So I need to put back the rounding (I removed
it in v4)

Thanks,
Ard.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help