Summary: | Added large allocation support to MarkedSpace | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Geoffrey Garen <ggaren> | ||||||||||
Component: | New Bugs | Assignee: | Geoffrey Garen <ggaren> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | ||||||||||||
Priority: | P2 | ||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Attachments: |
|
Description
Geoffrey Garen
2012-09-09 12:53:23 PDT
Created attachment 163010 [details]
Patch
Comment on attachment 163010 [details]
Patch
I'm not sure I buy the removal of imprecise size classes. That seems like a pure regression.
Why aren't you just using the large allocation support for >=64KB allocations?
Comment on attachment 163010 [details] Patch Attachment 163010 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/13797564 Created attachment 163011 [details]
Patch
> Why aren't you just using the large allocation support for >=64KB allocations?
Currently, our fixed allocators only go up to 2KB. So, I had to choose:
- add 1024 "imprecise" allocators
- increase the "imprecise" allocator slop, and add < 1024 "imprecise" allocators
- over-allocate large allocations by up to 62KB
- support < 64KB with the large allocator
I slightly preferred supporting < 64KB with the large allocator because:
- it makes a few large allocations actually happen in TOT, to give the code path some testing
- the other options optimize some things while pessimizing others, which feels like an odd thing to do since they literally never happen in TOT
> I'm not sure I buy the removal of imprecise size classes. That seems like a pure regression.
Regression measured by what?
Comment on attachment 163011 [details] Patch Attachment 163011 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/13798568 Created attachment 163016 [details]
Patch
Created attachment 163266 [details]
Patch
Large for >= 64KB turned out to be a simpler implementation, so I've restored the imprecise size classes. Comment on attachment 163266 [details] Patch Attachment 163266 [details] did not pass win-ews (win): Output: http://queues.webkit.org/results/13827026 Committed r128141: <http://trac.webkit.org/changeset/128141> |