Zbr's days.
August
Sun Mon Tue Wed Thu Fri Sat
    5
   
2006
Months
Aug

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

Comments are closed for this story.