[prev in list] [next in list] [prev in thread] [next in thread]
List: uclinux-dev
Subject: Re: [uClinux-dev] page_alloc2 mades blockdev inefficient?
From: Changwoo Ryu <cwryu () debian ! org>
Date: 2002-11-28 5:23:09
[Download RAW message or body]
David McCullough Wrote:
...
> > READ 48 sectors from sector 0
> > READ 8 sectors from sector 8
> > READ 8 sectors from sector 16
> > READ 8 sectors from sector 24
> > READ 48 sectors from sector 32
> > READ 8 sectors from sector 40
> > ...
> >
> > (number of sectors are different between different buffer sizes in
> > read()) Any idea why this inefficiency happens?
>
> CONFIG_CONGIGUOUS_PAGE_ALLOC is slower than the normal kernel allocator by
> virtue of the way it searches for free memory.
>
> If the IDE driver is allocating/freeing lots of memory blocks then
> page_alloc2 will slow it down, it should not cause it to read and re-read
> lots of sectors. Are you very low on memory ? If so it could be forcing
> buffers/caches etc to be revoked. page_alloc2 is very agressive in finding
> free memory once you are starting to run out. Much more so than the normal
> allocator. Look for "find_free_memory" in the source of page_alloc2.c
> and add trace to it to see if it is getting called a lot, it is very
> slow,
I don't understand why this happens but it does only when
I enable page_alloc2. I have 16MB memory and most are not used
by kernel or any apps. I added trace to "find_some_memory" but it
got called a few times, before I ran the test app.
I just added trace in do_blkmem_request() and it has the same result.
This happens only when I use page_alloc2.
blkmem: requst nr_sectors=48, sector=0
blkmem: requst nr_sectors=8, sector=8
blkmem: requst nr_sectors=8, sector=16
blkmem: requst nr_sectors=8, sector=24
blkmem: requst nr_sectors=48, sector=32
blkmem: requst nr_sectors=8, sector=40
blkmem: requst nr_sectors=8, sector=48
blkmem: requst nr_sectors=8, sector=56
blkmem: requst nr_sectors=48, sector=64
blkmem: requst nr_sectors=8, sector=72
blkmem: requst nr_sectors=8, sector=80
blkmem: requst nr_sectors=8, sector=88
blkmem: requst nr_sectors=48, sector=96
blkmem: requst nr_sectors=8, sector=104
blkmem: requst nr_sectors=8, sector=112
blkmem: requst nr_sectors=8, sector=120
The test app just open()s the blkmem device and read 16KB
block 4 times
--
Changwoo Ryu <cwryu@debian.org>
Debian
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic