|
|
Message-ID: <20200410170407.GQ11469@brightrain.aerifal.cx>
Date: Fri, 10 Apr 2020 13:04:07 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: Concrete case-by-case examples of mallocng @ low usage
The following are tables of initial allocation behavior for all sizes
up through 16k assuming 4k page size. The fine classing figures won't
actually be used for initial allocations, but I've included them for
comparison to illustrate why coarse classes are used. These numbers
were all done by hand independently of the code, so that if actual
behavior differs, it indicates a bug in one or the other.
First 16 size classes, no coarse classing:
0-12: 2x2032 -> 2x1008 -> 2x496 -> 30x16
13-28: 2x2032 -> 2x1008 -> 2x496 -> 15x32
29-44: 2x2032 -> 2x1008 -> 2x496 -> 10x48
45-60: 2x2032 -> 2x1008 -> 2x496 -> 7x64
61-76: 2x2032 -> 2x1008 -> 2x496 -> 6x80
77-92: 2x2032 -> 2x1008 -> 2x496 -> 5x96
93-108: 2x2032 -> 2x1008 -> 2x496 -> 4x112
109-124: 2x2032 -> 2x1008 -> 7x128
125-140: 2x2032 -> 2x1008 -> 7x144
141-156: 2x2032 -> 2x1008 -> 2x496 -> 3x160
157-188: 2x2032 -> 2x1008 -> 5x192
189-236: 2x2032 -> 2x1008 -> 2x496 -> 2x240
237-272: 2x2032 -> 7x288
273-332: 2x2032 -> 2x1008 -> 3x336
333-396: 2x2032 -> 5x400
397-492: 2x2032 -> 2x1008 -> 2x496
Coarse classing for classes 16-31:
493-668: 2x2032 -> 3x672
669-1004: 2x2032 -> 2x1008
1005-1356: 3x1360 (1 page)
1357-2028: 2x2032 (1 page)
2029-2716: 3x2720 (2 pages)
2717-4076: 1x4080 (1 page)
4077-5452: 2x5456 (3 pages)
5453-8172: 1x8176 (2 pages)
Fine classing for classes 16-31:
493-572: 7x576
573-668: 2x2032 -> 3x672
669-812: 5x816
813-1004: 2x2032 -> 2x1008
1005-1164: 7x1168 (2 pages)
1165-1356: 3x1360 (1 page)
1357-1628: 5x1632 (2 pages)
1629-2028: 2x2032 (1 page)
2029-2332: 5x2336 (3 pages)
2333-2716: 3x2720 (2 pages)
2717-3260: 5x3264 (4 pages)
3261-4076: 1x4080 (1 page)
4077-4668: 5x4672 (6 pages)
4669-5452: 2x5456 (3 pages)
5453-6540: 3x6544 (5 pages)
6541-8172: 1x8176 (2 pages)
Individual mmap for classes 32+:
8173-12268: 3 pages
12269-16364: 4 pages
16365-20460: 5 pages
...
And for comparison to without individual mmap, fine classes:
8173-9340: 3x9344 (7 pages)
9341-10908: 1x10912 (3 pages)
10909-13084: 3x13088 (10 pages)
13085-16364: 1x16386 (4 pages)
16365-18700: 3x18704 (14 pages)
18701-21820: 1x21824 (6 pages)
...
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.