[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH] tcg: add ability to dump /tmp/perf-<pid>.ma
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [RFC PATCH] tcg: add ability to dump /tmp/perf-<pid>.map files |
Date: |
Fri, 28 Mar 2014 11:12:55 +0000 |
User-agent: |
mu4e 0.9.9.6pre2; emacs 24.3.50.3 |
Richard Henderson <address@hidden> writes:
> On 03/27/2014 09:37 AM, address@hidden wrote:
>> From: Alex Bennée <address@hidden>
>>
>> This allows the perf tool to map samples to each individual translation
>> block. This could be expanded for user space but currently it gives
>> enough information to find any hotblocks by other means.
>
> Plausible, I suppose.
It works fine on my toy test case (kernel + single computation
user-space /init task) but I've not really used it in anger for any
performance tweaking hence it's only an RFC patch. Hopefully it will
save re-inventing the wheel should anyone actually want to do serious
tcg optimisation.
I've had a brief poke around the TCG profiling and seen it track
generation cost. Do we have any hotblock tracking in the built-in profiler?
<snip>
>> +static void tcg_write_perfmap(uint8_t *start, uint64_t size, uint64_t
>> target_pc)
>> +{
>> + if (tcg_perfmap) {
>> + g_fprintf(tcg_perfmap, "%lx %lx subject-0x%lx\n",
>> + (uint64_t) start, size, target_pc);
>> + }
>> +}
>
> Why oh why do you feel the need to use g_fprintf? That's just gratuitous glib
> obfuscation, that.
Sorry my bad, force of habit given that we have glib as a dependency.
But your right in this case it's just a dumb wrapper unlike when your
doing more string mangling where glib save a lot of time.
> For this small of a single-use function, I think it would be clearer to just
> do
> the printf directly in tcg_gen_code_common. Certainly no need to use uint64_t
> all over the place; ptrdiff_t and target_ulong are exactly the right
> thing.
Do we have a format macro for target_ulong? The uint64_t was just for
simplicity. I found when I was messing with the trace-event stuff some
of the target types where barred from the common code although I guess
in this case the tcg is very aware of the execution target.
--
Alex Bennée