[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH qemu] loader: Trace loaded images
From: |
Alexey Kardashevskiy |
Subject: |
Re: [Qemu-devel] [PATCH qemu] loader: Trace loaded images |
Date: |
Fri, 14 Jun 2019 10:13:04 +1000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 |
On 13/06/2019 23:08, Philippe Mathieu-Daudé wrote:
> Hi Alexey,
>
> On 6/13/19 7:09 AM, Alexey Kardashevskiy wrote:
>> This adds a trace point which prints every loaded image. This includes
>> bios/firmware/kernel/initradmdisk/pcirom.
>>
>> Signed-off-by: Alexey Kardashevskiy <address@hidden>
>> ---
>>
>> The example for a pseries guest:
>>
>> loader_write_rom slof.bin: @0x0 size=0xe22e0 ROM=0
>> loader_write_rom phdr #0: /home/aik/t/vml4120le: @0x400000 size=0x13df000
>> ROM=0
>> loader_write_rom /home/aik/t/le.cpio: @0x1ad0000 size=0x9463a00 ROM=0
>
> I find the "ROM=0" part confuse, maybe you can change to "ROM:false".
How? I mean I can do that in the code as rom->isrom?"true":"false" and
make trace point accept "%s" but it is quite ugly and others seem to
just use %d for bool.
>
> Regardless:
> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Thanks!
>
>>
>> Sadly "spapr-rtas.bin" does not show up because it is loaded from
>> the spapr machine reset handler rather than via rom_reset(), may be needs
>> to be fixed.
>>
>> ---
>> Makefile.objs | 1 +
>> hw/core/loader.c | 3 +++
>> hw/core/trace-events | 2 ++
>> 3 files changed, 6 insertions(+)
>> create mode 100644 hw/core/trace-events
>>
>> diff --git a/Makefile.objs b/Makefile.objs
>> index c8337fa34be8..036ca6752908 100644
>> --- a/Makefile.objs
>> +++ b/Makefile.objs
>> @@ -200,6 +200,7 @@ trace-events-subdirs += target/riscv
>> trace-events-subdirs += target/s390x
>> trace-events-subdirs += target/sparc
>> trace-events-subdirs += util
>> +trace-events-subdirs += hw/core
>>
>> trace-events-files = $(SRC_PATH)/trace-events
>> $(trace-events-subdirs:%=$(SRC_PATH)/%/trace-events)
>>
>> diff --git a/hw/core/loader.c b/hw/core/loader.c
>> index a097bbe30a74..7fe083af492f 100644
>> --- a/hw/core/loader.c
>> +++ b/hw/core/loader.c
>> @@ -44,6 +44,7 @@
>>
>> #include "qemu/osdep.h"
>> #include "qapi/error.h"
>> +#include "trace.h"
>> #include "hw/hw.h"
>> #include "disas/disas.h"
>> #include "monitor/monitor.h"
>> @@ -1114,6 +1115,8 @@ static void rom_reset(void *unused)
>> * CPU definitely fetches its instructions from the just written
>> data.
>> */
>> cpu_flush_icache_range(rom->addr, rom->datasize);
>> +
>> + trace_loader_write_rom(rom->name, rom->addr, rom->datasize,
>> rom->isrom);
>> }
>> }
>>
>> diff --git a/hw/core/trace-events b/hw/core/trace-events
>> new file mode 100644
>> index 000000000000..fe47a9c8cb1f
>> --- /dev/null
>> +++ b/hw/core/trace-events
>> @@ -0,0 +1,2 @@
>> +# loader.c
>> +loader_write_rom(const char *name, uint64_t gpa, uint64_t size, bool isrom)
>> "%s: @0x%"PRIx64" size=0x%"PRIx64" ROM=%d"
>>
--
Alexey