qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL 0/1] Tracing patches
@ 2025-07-21 18:10 Stefan Hajnoczi
  2025-07-21 18:10 ` [PULL 1/1] trace: log.py: human-readable timestamp Stefan Hajnoczi
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Hajnoczi @ 2025-07-21 18:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: Pierrick Bouvier, Mahmoud Mandour, Stefan Hajnoczi,
	Alexandre Iooss, Alex Bennée, Mads Ynddal

The following changes since commit 56a3033abcfcf72a2f4f1376a605a0b1ad526b67:

  Merge tag 'pull-request-2025-07-21' of https://gitlab.com/thuth/qemu into staging (2025-07-21 06:34:56 -0400)

are available in the Git repository at:

  https://gitlab.com/stefanha/qemu.git tags/tracing-pull-request

for you to fetch changes up to 50700e97d85e435363ca4525754b5f00b13491c0:

  trace: log.py: human-readable timestamp (2025-07-21 14:02:52 -0400)

----------------------------------------------------------------
Pull request

----------------------------------------------------------------

Vladimir Sementsov-Ogievskiy (1):
  trace: log.py: human-readable timestamp

 scripts/tracetool/backend/log.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

-- 
2.50.1



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PULL 1/1] trace: log.py: human-readable timestamp
  2025-07-21 18:10 [PULL 0/1] Tracing patches Stefan Hajnoczi
@ 2025-07-21 18:10 ` Stefan Hajnoczi
  2025-07-21 18:57   ` Daniel P. Berrangé
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Hajnoczi @ 2025-07-21 18:10 UTC (permalink / raw)
  To: qemu-devel
  Cc: Pierrick Bouvier, Mahmoud Mandour, Stefan Hajnoczi,
	Alexandre Iooss, Alex Bennée, Mads Ynddal,
	Vladimir Sementsov-Ogievskiy

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

So tired to parse all these timestamps, when need to compare them
with other logs.

Use iso8601 format as in warn_report() (info_report(), error_report())
already used.

Also, start line with date, to be similar with warn_report() as well.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-id: 20250626195514.366177-1-vsementsov@yandex-team.ru
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 scripts/tracetool/backend/log.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/log.py
index 17ba1cd90e..61118474b1 100644
--- a/scripts/tracetool/backend/log.py
+++ b/scripts/tracetool/backend/log.py
@@ -39,10 +39,15 @@ def generate_h(event, group):
         '        if (message_with_timestamp) {',
         '            struct timeval _now;',
         '            gettimeofday(&_now, NULL);',
+        '            time_t _seconds = _now.tv_sec;',
+        '            struct tm _tm;',
+        '            gmtime_r(&_seconds, &_tm);',
         '#line %(event_lineno)d "%(event_filename)s"',
-        '            qemu_log("%%d@%%zu.%%06zu:%(name)s " %(fmt)s "\\n",',
-        '                     qemu_get_thread_id(),',
-        '                     (size_t)_now.tv_sec, (size_t)_now.tv_usec',
+        '            qemu_log("%%04d-%%02d-%%02dT%%02d:%%02d:%%02d.%%06ldZ'
+        ' (%%d) %(name)s " %(fmt)s "\\n",',
+        '                     _tm.tm_year + 1900, _tm.tm_mon + 1, _tm.tm_mday,',
+        '                     _tm.tm_hour, _tm.tm_min, _tm.tm_sec, _now.tv_usec,',
+        '                     qemu_get_thread_id()',
         '                     %(argnames)s);',
         '#line %(out_next_lineno)d "%(out_filename)s"',
         '        } else {',
-- 
2.50.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PULL 1/1] trace: log.py: human-readable timestamp
  2025-07-21 18:10 ` [PULL 1/1] trace: log.py: human-readable timestamp Stefan Hajnoczi
@ 2025-07-21 18:57   ` Daniel P. Berrangé
  2025-07-21 20:16     ` Stefan Hajnoczi
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel P. Berrangé @ 2025-07-21 18:57 UTC (permalink / raw)
  To: Stefan Hajnoczi
  Cc: qemu-devel, Pierrick Bouvier, Mahmoud Mandour, Alexandre Iooss,
	Alex Bennée, Mads Ynddal, Vladimir Sementsov-Ogievskiy

On Mon, Jul 21, 2025 at 02:10:51PM -0400, Stefan Hajnoczi wrote:
> From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
> 
> So tired to parse all these timestamps, when need to compare them
> with other logs.
> 
> Use iso8601 format as in warn_report() (info_report(), error_report())
> already used.
> 
> Also, start line with date, to be similar with warn_report() as well.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
> Message-id: 20250626195514.366177-1-vsementsov@yandex-team.ru
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  scripts/tracetool/backend/log.py | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/log.py
> index 17ba1cd90e..61118474b1 100644
> --- a/scripts/tracetool/backend/log.py
> +++ b/scripts/tracetool/backend/log.py
> @@ -39,10 +39,15 @@ def generate_h(event, group):
>          '        if (message_with_timestamp) {',
>          '            struct timeval _now;',
>          '            gettimeofday(&_now, NULL);',
> +        '            time_t _seconds = _now.tv_sec;',
> +        '            struct tm _tm;',
> +        '            gmtime_r(&_seconds, &_tm);',
>          '#line %(event_lineno)d "%(event_filename)s"',
> -        '            qemu_log("%%d@%%zu.%%06zu:%(name)s " %(fmt)s "\\n",',
> -        '                     qemu_get_thread_id(),',
> -        '                     (size_t)_now.tv_sec, (size_t)_now.tv_usec',
> +        '            qemu_log("%%04d-%%02d-%%02dT%%02d:%%02d:%%02d.%%06ldZ'
> +        ' (%%d) %(name)s " %(fmt)s "\\n",',
> +        '                     _tm.tm_year + 1900, _tm.tm_mon + 1, _tm.tm_mday,',
> +        '                     _tm.tm_hour, _tm.tm_min, _tm.tm_sec, _now.tv_usec,',
> +        '                     qemu_get_thread_id()',
>          '                     %(argnames)s);',

IMHO this is undesirable, as it bloats the QEMU binaries by another 1 MB
as we have an excessive amount of code being inlined in every trace call
location. I've co-incidentally just sent a patch that would fix the same
problem based on a discussion last week about a bug caused by this log
backend adding 'error-report.h' into all files:

  https://lists.nongnu.org/archive/html/qemu-devel/2025-07/msg04905.html

>          '#line %(out_next_lineno)d "%(out_filename)s"',
>          '        } else {',

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PULL 1/1] trace: log.py: human-readable timestamp
  2025-07-21 18:57   ` Daniel P. Berrangé
@ 2025-07-21 20:16     ` Stefan Hajnoczi
  0 siblings, 0 replies; 4+ messages in thread
From: Stefan Hajnoczi @ 2025-07-21 20:16 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Stefan Hajnoczi, qemu-devel, Pierrick Bouvier, Mahmoud Mandour,
	Alexandre Iooss, Alex Bennée, Mads Ynddal,
	Vladimir Sementsov-Ogievskiy

On Mon, Jul 21, 2025 at 3:04 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Mon, Jul 21, 2025 at 02:10:51PM -0400, Stefan Hajnoczi wrote:
> > From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
> >
> > So tired to parse all these timestamps, when need to compare them
> > with other logs.
> >
> > Use iso8601 format as in warn_report() (info_report(), error_report())
> > already used.
> >
> > Also, start line with date, to be similar with warn_report() as well.
> >
> > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
> > Message-id: 20250626195514.366177-1-vsementsov@yandex-team.ru
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > ---
> >  scripts/tracetool/backend/log.py | 11 ++++++++---
> >  1 file changed, 8 insertions(+), 3 deletions(-)
> >
> > diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/log.py
> > index 17ba1cd90e..61118474b1 100644
> > --- a/scripts/tracetool/backend/log.py
> > +++ b/scripts/tracetool/backend/log.py
> > @@ -39,10 +39,15 @@ def generate_h(event, group):
> >          '        if (message_with_timestamp) {',
> >          '            struct timeval _now;',
> >          '            gettimeofday(&_now, NULL);',
> > +        '            time_t _seconds = _now.tv_sec;',
> > +        '            struct tm _tm;',
> > +        '            gmtime_r(&_seconds, &_tm);',
> >          '#line %(event_lineno)d "%(event_filename)s"',
> > -        '            qemu_log("%%d@%%zu.%%06zu:%(name)s " %(fmt)s "\\n",',
> > -        '                     qemu_get_thread_id(),',
> > -        '                     (size_t)_now.tv_sec, (size_t)_now.tv_usec',
> > +        '            qemu_log("%%04d-%%02d-%%02dT%%02d:%%02d:%%02d.%%06ldZ'
> > +        ' (%%d) %(name)s " %(fmt)s "\\n",',
> > +        '                     _tm.tm_year + 1900, _tm.tm_mon + 1, _tm.tm_mday,',
> > +        '                     _tm.tm_hour, _tm.tm_min, _tm.tm_sec, _now.tv_usec,',
> > +        '                     qemu_get_thread_id()',
> >          '                     %(argnames)s);',
>
> IMHO this is undesirable, as it bloats the QEMU binaries by another 1 MB
> as we have an excessive amount of code being inlined in every trace call
> location. I've co-incidentally just sent a patch that would fix the same
> problem based on a discussion last week about a bug caused by this log
> backend adding 'error-report.h' into all files:
>
>   https://lists.nongnu.org/archive/html/qemu-devel/2025-07/msg04905.html
>
> >          '#line %(out_next_lineno)d "%(out_filename)s"',
> >          '        } else {',

There is also a format string portability issue that CI has just found:
https://gitlab.com/qemu-project/qemu/-/jobs/10761777777#L2294

This patch will need to be reworked.

Stefan

>
> With regards,
> Daniel
> --
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
>
>


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-07-21 20:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-21 18:10 [PULL 0/1] Tracing patches Stefan Hajnoczi
2025-07-21 18:10 ` [PULL 1/1] trace: log.py: human-readable timestamp Stefan Hajnoczi
2025-07-21 18:57   ` Daniel P. Berrangé
2025-07-21 20:16     ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).