* Re: innofensive BUG and fix: area->map's size is not calculated ok
[not found] <20001130101742.A22088@pusa.informat.uv.es>
@ 2000-12-05 14:02 ` uaca
0 siblings, 0 replies; only message in thread
From: uaca @ 2000-12-05 14:02 UTC (permalink / raw)
To: linux-mm; +Cc: quintela
Hi
this is an email I sent a week ago to lkml, since I've got no reply Riel
suggested me to send it here, I've also attached some more info at the end
On Thu, Nov 30, 2000 at 10:17:42AM +0100, ulisses wrote:
>
> In a 2.4 kernel, mm/page_alloc.c:free_area_init_core(), in the following
> assignement...
>
> bitmap_size = size >> i;
>
> ...makes bitmap_size be the double of the needed size, this calculum
> assumes that with a 512 byte map size the kernel is mapping 8*512= 4096 chunks
> of memory, that is: one bit of the map is used for each chunk of memory,
> and that's not true.
>
> Really one bit of area->map is used to map two chunks of memory, so in the
> example above an area->map of just 256 bytes is really needed, the other 256
> bytes are _never accessed_.
>
> So the righ thing would be to do is:
>
> bitmap_size = size >> (i+1);
>
>
> also I tested it and it works ok, so I believe I'm right...
>
>
> Please CC: your replies to (I'm not subscribed to this list)
>
> Ulisses Alonso Camaro <uaca@NOSPAM.alumni.uv.es>
>
> PD: my nick on #kernelnewbies is despistao
an easy to understand indicator to see that I am right is to see
(for instance) how a page index of area->map is calculated,
in __free_pages_ok() we can see the following:
page_idx = page - base;
index = page_idx >> (1 + order);
Imagine the order is 0, that is a continious block of PAGE_SIZE size,
we still shift page_idx one bit, that is two blocks of "order" size are
maped in each bit of area->map
you can also see that MARK_USED macro also makes this shift
Please CC: your replies to (I'm not subscribed to this list)
Ulisses Alonso Camaro <uaca@NOSPAM.alumni.uv.es>
PD: my nick on #kernelnewbies is despistao
Debian GNU/Linux: a dream come true
-----------------------------------------------------------------------------
"Computers are useless. They can only give answers." Pablo Picasso
---> Visita http://www.valux.org/ para saber acerca de la <---
---> Asociacion Valenciana de Usuarios de Linux <---
--
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.eu.org/Linux-MM/
^ permalink raw reply [flat|nested] only message in thread