Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(581)

Issue 271630043: i#1114 JIT optimization: resizable trace head counter hashtable

Can't Edit
Can't Publish+Mail
Start Review
Created:
8 years, 5 months ago by Byron
Modified:
8 years, 4 months ago
Reviewers:
bruening
CC:
dynamorio-devs_googlegroups.com
Visibility:
Public.

Description

Commit log for first patchset: --------------- i#1114 JIT optimization: resizable trace head counter hashtable Make the trace head counter hashtable resizable, since it can become a bottleneck in the larger Octane benchmarks. This custom bucket hashtable in monitor.c is better suited for JIT code than the generic open-address table in hashtable.h, which developed hotspots from clumping during some benchmarks. ---------------

Patch Set 1 #

Total comments: 3
Unified diffs Side-by-side diffs Delta from patch set Stats (+65 lines, -21 lines) Patch
M core/monitor.c View 6 chunks +65 lines, -21 lines 3 comments Download

Messages

Total messages: 5
Byron
8 years, 5 months ago (2015-11-30 11:45:19 UTC) #1
bruening
> This custom bucket hashtable in monitor.c is better suited for JIT > code than ...
8 years, 5 months ago (2015-12-01 01:31:24 UTC) #2
Byron
On 2015/12/01 01:31:24, bruening wrote: > > This custom bucket hashtable in monitor.c is better ...
8 years, 4 months ago (2015-12-02 20:20:21 UTC) #3
Byron
When I try the generic table now, there are no long collisions, so that is ...
8 years, 4 months ago (2015-12-03 09:45:47 UTC) #4
bruening
8 years, 4 months ago (2015-12-03 15:55:30 UTC) #5
On 2015/12/03 09:45:47, Byron wrote:
> When I try the generic table now, there are no long collisions, so that is
> probably the better choice. One issue is the "free entry" function--it does
not
> provide the dcontext, but the counter tables are thread-local and would
benefit
> from using the thread-local alloc/free routines. There are several ways to
> resolve this:
> 
> 1. Add the dcontext to the free() callback. 
>    - This affects 8 existing instances of the generic table.
> 2. Add an out-arg for the payload to generic_hash_iterate_remove() (since this
> table only uses range-remove). 
>    - This would affect only 3 of the existing generic tables (one in
> core/unix/os.c and two in core/unix/native_elf.c). 
> 3. Store the dcontext in each counter. 
>    - This is not space efficient.

I would vote for #1.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b