linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* 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

only message in thread, other threads:[~2000-12-05 14:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20001130101742.A22088@pusa.informat.uv.es>
2000-12-05 14:02 ` innofensive BUG and fix: area->map's size is not calculated ok uaca

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox