Thread (18 messages) 18 messages, 4 authors, 2012-01-31

Re: [PATCH 1/3] percpu: use ZERO_SIZE_PTR / ZERO_OR_NULL_PTR

From: Rusty Russell <hidden>
Date: 2012-01-31 09:59:15
Also in: lkml

On Mon, 30 Jan 2012 10:16:39 -0800, Tejun Heo [off-list ref] wrote:
On Mon, Jan 30, 2012 at 12:12:18PM -0600, Christoph Lameter wrote:
quoted
quoted
I thought it didn't.  I rememer thinking about this and determining
that NULL can't be allocated for dynamic addresses.  Maybe I'm
imagining things.  Anyways, if it can return NULL for valid
allocation, it is a bug and should be fixed.
I dont see anything that would hinder an arbitrary value to be returned.
NULL is also used for the failure case. Definitely a bug.
Given the address translation we do and kernel image layout, I don't
think this can happen on x86.  It may theoretically possible on other
archs tho.  Anyways, yeah, this one needs improving.
I tried setting the lower bit on all percpu ptrs, but since non-dynamic
percpu vars could have odd alignments, that fails in general.
quoted
quoted
We don't have returned addr >= PAGE_SIZE guarantee yet but I'm fairly
sure that's the only acceptable direction if we want any improvement
in this area.
The ZERO_SIZE_PTR patch would not make the situation that much worse.
I'm not objecting to marking zero-sized allocations per-se.  I'm
saying the patch is pointless at this point.  It doesn't contribute
anything while giving the illusion of better error checking than we
actually do.  Let's do it when it can actually work.
Disagree: This patch works.  It allows zero-size per-cpu allocs, like
the other allocators.  Nor does it fail in practice.

We should do better, but the perfect is the enemy of the good.

Cheers,
Rusty.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help