[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC][PATCH]Add timestamp to error message
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [RFC][PATCH]Add timestamp to error message |
Date: |
Sat, 02 Feb 2013 08:23:41 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) |
Seiji Aguchi <address@hidden> writes:
>> > Are gmtime() + strftime() unsuitable for some reason?
>>
>> They are not async-signal safe, so they are not usable in between a
>> fork() and exec*(). Libvirt avoids them because it DOES log
>> information including timestamps in between fork/exec (and prior to
>> writing libvirt's virtime.c, we DID hit cases where libvirt would
>> deadlock a child process due to the non-safe use of a more naive
>> timestamp generator), but I don't know if qemu suffers from the same
>> restriction of when it has anything worth logging.
>
> In my understanding, gmtime() + strftime() is usable in error_report()
> because it seems to be called
> For just a option check.
error_report() is not bound to a particular task. It simply reports
either to the current monitor or to stderr. It's certainly not usuable
in a signal handler, or similar signal-unsafe context.
>>[TODO]
>>Other functions below are used to output error messages in qemu.
> >- qerror_report() is called in many source codes.
> >- fprintf() is called in vl.c.
>
> On the other hand, qerror_report() and fprintf () seems to be called
> in signal handers.
fprintf() in a signal handler? Where?
> So, in those cases, some signal-safe functions should be used.