Messages in this thread | | | Date | Mon, 21 Jul 2014 16:29:51 +0200 | From | Joerg Roedel <> | Subject | Re: [PATCH 0/6] PM / Hibernate: Memory bitmap scalability improvements |
| |
Hi,
On Mon, Jul 21, 2014 at 01:45:07PM +0200, Pavel Machek wrote: > Ok, so you have sped it up from O(n) to O(log(n)) speed, and increased > memory requirements from O(n) to O(n * log(n)), right?
No, new memory requirements are still ~O(n), because the additional pages needed for the index in the radix tree are outweighted by the memory saved by the smaller size of struct rtree_node compared to struct bm_block.
If you want to see real numbers, here is a small tool which tells you exactly when you need more memory and how much you save with the new memory bitmap implementation:
http://www.zlug.org/~joro/data/mem_req.c
It will tell you that the new implementation uses at most 2 more pages for smaller RAM sizes (2 pages because 2 memory bitmaps are allocated) and will actually save pages for bigger RAM sizes (already 30 pages on a 1TB machine, 384 pages on a 12TB machine)
You can also modify the above tool to give you some data to plot, then you will also SEE that there is still a linear relationship between RAM size and memory required by the old and new memory bitmap implementation.
Joerg
| |