On Wed, 2011-03-23 at 10:54 +0100, Christoph Szeppek wrote:
Hello,
as far as I understand, the mapping database consists of a treemap with an entry for each superpage. Each entry points to an array describing the page's mappings (mapping tree). Each element of this mapping tree either represents a mapping or stores the address of a treemap, if the superpage has been splitted into pieces with a size of the next smaller valid page size.
correct.
Is it correct that an element of a mapping tree references another treemap only in case the page has been spllitted and therefor the maximum recursion depth is limited by the amount of valid page sizes?
yes.
The mapping trees in the database are iteratively traversed. The only recursion is at page splits. On 32bit architectures we have usually 2 page-sizes for 64bit there are three to four size.