Re: 2.6.8.1-mm2

From: Hans Reiser
Date: Fri Aug 20 2004 - 02:38:14 EST


Andrew Morton wrote:

Hans Reiser <reiser@xxxxxxxxxxx> wrote:


John Cherry wrote:



The new "errors" are from reiser4 code and they all appear to be...

fs/reiser4/reiser4.h:18:2: #error "Please turn 4k stack off"





zam, can you or Mr. Demidov work on using kmalloc to reduce stack usage?

Andrew suggested that for statically sized objects kmalloc is quite fast (one instruction I think he said), so my objection to kmallocing a lot has faded.



err, not that quick - but it's pretty quick.

With a kmalloc with a constant size and, preferably, a constant gfp mask
we'll jump directly into __cache_alloc() and in the common case we'll pluck
an entry directly out of the cpu-local head array:

So the kmalloc fastpath is, effectively:

local_irq_save(save_flags);
ac = ac_data(cachep);
if (likely(ac->avail)) {
ac->touched = 1;
objp = ac_entry(ac)[--ac->avail];
}
local_irq_restore(save_flags);
return objp;


Not bad...




but not trivial. Sigh. It means determining whether we can get below 4k without performance loss requires detailed code examination to determine what is using up the stack in practice, and discussion.

Well, maybe zam has a comment.

Hans
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/