|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Sat, 05 Aug 2006
Network tree alocator.
First test stage completed - more than 52 milliards of allocations
of different sizes (currently tested only from 1 to PAGE_SIZE
with 32 bytes granularity) have been done, so roughly it is correct. To prove correctness more
I plan to start second testing stage, which will include much faster freeing
(test will keep pointers to allocated objects inside array, which indexes will be
structured to not contain any gaps) and full utilisation of allocated page pools,
so if allocation fails, it will be restarted with smaller size until all allocator's
memory is used. That will give an interesting statistics of memory usage and fragmentation
in tree allocator. I will also include periodical dump of bitmasks of free and used
objects so it would be possible to visually observe fragmentation issues.
I've found a way to determine if given address belongs to PAGE_SIZEd
chunk or to bigger contiguous region - it is quite simply by looking at
page->lru.next and page->private, which can be used
to detect compound pages and it's order, which solves a
problem
of converting a freed address into a page which holds freed area.
/devel/networking/nta :: Link / Comments (0)
Please solve this captcha to be allowed to post (need to reload in a minute): 11 * 98
|