From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org, stefanha@redhat.com,
Juan Quintela <quintela@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 06/30] trace: Fix parameter types in migration
Date: Tue, 14 Mar 2017 11:32:35 +0000 [thread overview]
Message-ID: <20170314113234.GE2445@work-vm> (raw)
In-Reply-To: <89b9b8e6-b5ca-8056-783b-598e07bf5da0@redhat.com>
* Eric Blake (eblake@redhat.com) wrote:
> On 03/13/2017 03:07 PM, Dr. David Alan Gilbert wrote:
> > * Eric Blake (eblake@redhat.com) wrote:
> >> An upcoming patch will let the compiler warn us when we are silently
> >> losing precision in traces; update the trace definitions to pass
> >> through the full value at the callsite.
> >>
> >> Signed-off-by: Eric Blake <eblake@redhat.com>
> >> ---
> >> migration/trace-events | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
>
> >> -postcopy_ram_fault_thread_request(uint64_t hostaddr, const char *ramblock, size_t offset) "Request for HVA=%" PRIx64 " rb=%s offset=%zx"
> >> +postcopy_ram_fault_thread_request(unsigned long long hostaddr, const char *ramblock, size_t offset) "Request for HVA=%llx rb=%s offset=%zx"
> >
> > Hmm - why?
> > That's called as:
> > trace_postcopy_ram_fault_thread_request(msg.arg.pagefault.address,
> > qemu_ram_get_idstr(rb),
> > rb_offset);
> > struct uffd_msg msg;
> > struct uffd_msg {
> > ..
> > union {
> > struct {
> > __u64 flags;
> > __u64 address;
> > } pagefault;
> > ..
> > } arg;
> > }
> >
> > So why is a PRIx64 not the right way to print a __u64 ?
>
> Because __u64 is not the same type as uint64_t. On 64-bit Linux, __u64
> is 'unsigned long long', while uint64_t is 'unsigned long'.
>
> > (I prefer %llx to the horrid PRIx64 syntax, but it still seems weird in this case)
>
> As it is, I'm not sure if __u64 is always 'unsigned long long' in ALL
> Linux clients; an even-more-conservative patch would be to switch all
> callers to use explicit casts to something (like uint64_t or unsigned
> long long) that we have full control over, rather than passing __u64
> where we have no control over what type it ultimately resolves to.
That would be my preference - casting to (uint64_t) at the caller and
keep this as PRIx64. We know it's a 64bit value so we should never
use unsigned long long anywhere for it.
Dave
>
> --
> Eric Blake eblake redhat com +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2017-03-14 11:32 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-13 19:55 [Qemu-devel] [PATCH for-2.9 v2 00/30] trace type mismatch cleanups Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 01/30] trace: Fix backwards mirror_yield parameters Eric Blake
2017-03-16 7:36 ` Stefan Hajnoczi
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 02/30] trace: Fix incorrect megasas trace parameters Eric Blake
2017-03-14 6:49 ` Hannes Reinecke
2017-03-16 7:36 ` Stefan Hajnoczi
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 03/30] trace: Avoid abuse of amdvi_mmio_read Eric Blake
2017-03-16 7:36 ` Stefan Hajnoczi
2017-03-23 15:23 ` Stefan Hajnoczi
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 04/30] trace: Fix parameter types in block Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 05/30] trace: Fix parameter types in io Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 06/30] trace: Fix parameter types in migration Eric Blake
2017-03-13 20:07 ` Dr. David Alan Gilbert
2017-03-13 20:18 ` Eric Blake
2017-03-14 11:32 ` Dr. David Alan Gilbert [this message]
2017-03-14 14:36 ` Eric Blake
2017-03-15 19:55 ` Eric Blake
2017-03-15 22:33 ` Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 07/30] trace: Fix parameter types in ui Eric Blake
2017-03-14 9:16 ` Gerd Hoffmann
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 08/30] trace: Fix parameter types in top level Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 09/30] trace: Fix parameter types in linux-user Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 10/30] trace: Fix parameter types in hw/acpi Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 11/30] trace: Fix parameter types in hw/audio Eric Blake
2017-03-14 9:16 ` Gerd Hoffmann
2017-03-22 15:10 ` Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 12/30] trace: Fix parameter types in hw/block Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 13/30] trace: Fix parameter types in hw/char Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 14/30] trace: Fix parameter types in hw/display Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 15/30] trace: Fix parameter types in hw/dma Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 16/30] trace: Fix parameter types in hw/i386 Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 17/30] trace: Fix parameter types in hw/input Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 18/30] trace: Fix parameter types in hw/intc Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 19/30] trace: Fix parameter types in hw/isa Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 20/30] trace: Fix parameter types in hw/misc Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 21/30] trace: Fix parameter types in hw/net Eric Blake
2017-03-14 7:21 ` Dmitry Fleytman
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 22/30] trace: Fix parameter types in hw/nvram Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 23/30] trace: Fix parameter types in hw/ppc Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 24/30] trace: Fix parameter types in hw/sd Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 25/30] trace: Fix parameter types in hw/scsi Eric Blake
2017-03-14 6:50 ` Hannes Reinecke
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 26/30] trace: Fix parameter types in hw/timer Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 27/30] trace: Fix parameter types in hw/usb Eric Blake
2017-03-14 9:16 ` Gerd Hoffmann
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 28/30] trace: Fix parameter types in hw/vfio Eric Blake
2017-03-13 19:55 ` [Qemu-devel] [PATCH v2 29/30] trace: Fix parameter types in hw/virtio Eric Blake
2017-03-16 7:45 ` Stefan Hajnoczi
2017-03-13 19:55 ` [Qemu-devel] [RFC PATCH v2 30/30] trace: Force compiler warnings on trace parameter type mismatches Eric Blake
2017-03-15 19:59 ` Eric Blake
2017-03-16 7:28 ` Stefan Hajnoczi
2017-03-13 20:27 ` [Qemu-devel] [PATCH for-2.9 v2 00/30] trace type mismatch cleanups no-reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170314113234.GE2445@work-vm \
--to=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).