MPS issue job003814

Title{VM,Client}ArenaReserved iterates over the chunks
Statusclosed
Prioritynice
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionVMArenaReserved and ClientArenaReserved iterate over all the chunks in order to calculate the total reserved address space. Profiling shows that when there are many chunks and the arena runs out of zones, this happens on many (most?) calls to ArenaAlloc.
AnalysisAccumulate the total reserved size instead.
How foundmanual_test
EvidenceNone.
Created byGareth Rees
Created on2014-05-20 12:39:32
Last modified byGareth Rees
Last modified on2014-10-13 23:36:08
History2014-05-20 GDR Created.

Fixes

Change Effect Date User Description
187089 closed 2014-09-29 22:50:46 Gareth Rees Instead of iterating over the chunks to compute the total reserved address space, maintain a running total in ArenaChunkInsert and (new function) ArenaChunkRemoved.
New arena class method chunkReserved handles the class-specific computation of the reserved size of a chunk.