qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] Clean up 32bit compilation for Migration
@ 2015-11-10 16:52 Juan Quintela
  2015-11-10 16:53 ` [Qemu-devel] [PATCH 1/2] migration: print ram_addr_t as RAM_ADDR_FMT not %zx Juan Quintela
  2015-11-10 16:53 ` [Qemu-devel] [PATCH 2/2] migration: Make 32bit linux compile with RDMA Juan Quintela
  0 siblings, 2 replies; 5+ messages in thread
From: Juan Quintela @ 2015-11-10 16:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: amit.shah, dgilbert

Hi

We had two warnings on 32bit targets.  With this change I am able to
compile with -Werror on:
- linux 64bit
- linux 32bit
- windows 32bit (cross-compile with Fedora mingw64)
- windows 64bit (cross-compile with Fedora mingw64)
  I am lying in this one, really my crosscompiler for windows 64 bit barf at

   CXX   disas/libvixl/a64/disasm-a64.o
/mnt/kvm/qemu/next/disas/libvixl/a64/disasm-a64.cc: In member function 'virtual void vixl::Disassembler::AppendPCRelativeOffsetToOutput(const vixl::Instruction*, int64_t)':
/mnt/kvm/qemu/next/disas/libvixl/a64/disasm-a64.cc:1365:57: error: unknown conversion type character 'l' in format [-Werror=format=]
   AppendToOutput("#%c0x%" PRIx64, sign, std::abs(offset));
                                                         ^
/mnt/kvm/qemu/next/disas/libvixl/a64/disasm-a64.cc:1365:57: error: too many arguments for format [-Werror=format-extra-args]
/mnt/kvm/qemu/next/disas/libvixl/a64/disasm-a64.cc: In member function 'virtual void vixl::Disassembler::AppendAddressToOutput(const vixl::Instruction*, const void*)':
/mnt/kvm/qemu/next/disas/libvixl/a64/disasm-a64.cc:1372:76: error: unknown conversion type character 'l' in format [-Werror=format=]
   AppendToOutput("(addr 0x%" PRIxPTR ")", reinterpret_cast<uintptr_t>(addr));
                                                                            ^
/mnt/kvm/qemu/next/disas/libvixl/a64/disasm-a64.cc:1372:76: error: too many arguments for format [-Werror=format-extra-args]
/mnt/kvm/qemu/next/disas/libvixl/a64/disasm-a64.cc: In member function 'virtual void vixl::Disassembler::AppendCodeRelativeAddressToOutput(const vixl::Instruction*, const void*)':
/mnt/kvm/qemu/next/disas/libvixl/a64/disasm-a64.cc:1393:52: error: unknown conversion type character 'l' in format [-Werror=format=]
     AppendToOutput("(addr 0x%" PRIx64 ")", rel_addr);
                                                    ^
/mnt/kvm/qemu/next/disas/libvixl/a64/disasm-a64.cc:1393:52: error: too many arguments for format [-Werror=format-extra-args]
/mnt/kvm/qemu/next/disas/libvixl/a64/disasm-a64.cc:1395:54: error: unknown conversion type character 'l' in format [-Werror=format=]
     AppendToOutput("(addr -0x%" PRIx64 ")", -rel_addr);
                                                      ^
.....

I am wondering if it really understand PRI*64 at all.

Please, review.

Juan.


Juan Quintela (2):
  migration: print ram_addr_t as RAM_ADDR_FMT not %zx
  migration: Make 32bit linux compile with RDMA

 migration/ram.c  | 5 +++--
 migration/rdma.c | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

-- 
2.5.0

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

* [Qemu-devel] [PATCH 1/2] migration: print ram_addr_t as RAM_ADDR_FMT not %zx
  2015-11-10 16:52 [Qemu-devel] [PATCH 0/2] Clean up 32bit compilation for Migration Juan Quintela
@ 2015-11-10 16:53 ` Juan Quintela
  2015-11-10 16:55   ` Dr. David Alan Gilbert
  2015-11-10 16:53 ` [Qemu-devel] [PATCH 2/2] migration: Make 32bit linux compile with RDMA Juan Quintela
  1 sibling, 1 reply; 5+ messages in thread
From: Juan Quintela @ 2015-11-10 16:53 UTC (permalink / raw)
  To: qemu-devel; +Cc: amit.shah, dgilbert

Not all the wold is 64bits (yet).

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/ram.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/migration/ram.c b/migration/ram.c
index 62cf42b..d8d5a50 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -1184,7 +1184,8 @@ int ram_save_queue_pages(MigrationState *ms, const char *rbname,
     }
     trace_ram_save_queue_pages(ramblock->idstr, start, len);
     if (start+len > ramblock->used_length) {
-        error_report("%s request overrun start=%zx len=%zx blocklen=%zx",
+        error_report("%s request overrun start=" RAM_ADDR_FMT " len="
+                     RAM_ADDR_FMT " blocklen=" RAM_ADDR_FMT,
                      __func__, start, len, ramblock->used_length);
         goto err;
     }
@@ -1845,7 +1846,7 @@ int ram_discard_range(MigrationIncomingState *mis,
         ret = postcopy_ram_discard_range(mis, host_startaddr, length);
     } else {
         error_report("ram_discard_range: Overrun block '%s' (%" PRIu64
-                     "/%zu/%zu)",
+                     "/%zx/" RAM_ADDR_FMT")",
                      block_name, start, length, rb->used_length);
     }

-- 
2.5.0

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

* [Qemu-devel] [PATCH 2/2] migration: Make 32bit linux compile with RDMA
  2015-11-10 16:52 [Qemu-devel] [PATCH 0/2] Clean up 32bit compilation for Migration Juan Quintela
  2015-11-10 16:53 ` [Qemu-devel] [PATCH 1/2] migration: print ram_addr_t as RAM_ADDR_FMT not %zx Juan Quintela
@ 2015-11-10 16:53 ` Juan Quintela
  2015-11-10 16:56   ` Dr. David Alan Gilbert
  1 sibling, 1 reply; 5+ messages in thread
From: Juan Quintela @ 2015-11-10 16:53 UTC (permalink / raw)
  To: qemu-devel; +Cc: amit.shah, dgilbert

Rest of the file already use that trick. 64bit offsets make no sense in
32bit archs, but that is ram_addr_t for you.

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/rdma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/migration/rdma.c b/migration/rdma.c
index 553fbd7..dcabb91 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -577,7 +577,7 @@ static int rdma_add_block(RDMAContext *rdma, const char *block_name,
     block->is_ram_block = local->init ? false : true;

     if (rdma->blockmap) {
-        g_hash_table_insert(rdma->blockmap, (void *) block_offset, block);
+        g_hash_table_insert(rdma->blockmap, (void *)(uintptr_t)block_offset, block);
     }

     trace_rdma_add_block(block_name, local->nb_blocks,
-- 
2.5.0

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

* Re: [Qemu-devel] [PATCH 1/2] migration: print ram_addr_t as RAM_ADDR_FMT not %zx
  2015-11-10 16:53 ` [Qemu-devel] [PATCH 1/2] migration: print ram_addr_t as RAM_ADDR_FMT not %zx Juan Quintela
@ 2015-11-10 16:55   ` Dr. David Alan Gilbert
  0 siblings, 0 replies; 5+ messages in thread
From: Dr. David Alan Gilbert @ 2015-11-10 16:55 UTC (permalink / raw)
  To: Juan Quintela; +Cc: amit.shah, qemu-devel

* Juan Quintela (quintela@redhat.com) wrote:
> Not all the wold is 64bits (yet).
> 
> Signed-off-by: Juan Quintela <quintela@redhat.com>

Yep that's my fault.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  migration/ram.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/migration/ram.c b/migration/ram.c
> index 62cf42b..d8d5a50 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -1184,7 +1184,8 @@ int ram_save_queue_pages(MigrationState *ms, const char *rbname,
>      }
>      trace_ram_save_queue_pages(ramblock->idstr, start, len);
>      if (start+len > ramblock->used_length) {
> -        error_report("%s request overrun start=%zx len=%zx blocklen=%zx",
> +        error_report("%s request overrun start=" RAM_ADDR_FMT " len="
> +                     RAM_ADDR_FMT " blocklen=" RAM_ADDR_FMT,
>                       __func__, start, len, ramblock->used_length);
>          goto err;
>      }
> @@ -1845,7 +1846,7 @@ int ram_discard_range(MigrationIncomingState *mis,
>          ret = postcopy_ram_discard_range(mis, host_startaddr, length);
>      } else {
>          error_report("ram_discard_range: Overrun block '%s' (%" PRIu64
> -                     "/%zu/%zu)",
> +                     "/%zx/" RAM_ADDR_FMT")",
>                       block_name, start, length, rb->used_length);
>      }
> 
> -- 
> 2.5.0
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

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

* Re: [Qemu-devel] [PATCH 2/2] migration: Make 32bit linux compile with RDMA
  2015-11-10 16:53 ` [Qemu-devel] [PATCH 2/2] migration: Make 32bit linux compile with RDMA Juan Quintela
@ 2015-11-10 16:56   ` Dr. David Alan Gilbert
  0 siblings, 0 replies; 5+ messages in thread
From: Dr. David Alan Gilbert @ 2015-11-10 16:56 UTC (permalink / raw)
  To: Juan Quintela; +Cc: amit.shah, qemu-devel

* Juan Quintela (quintela@redhat.com) wrote:
> Rest of the file already use that trick. 64bit offsets make no sense in
> 32bit archs, but that is ram_addr_t for you.
> 
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
>  migration/rdma.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/migration/rdma.c b/migration/rdma.c
> index 553fbd7..dcabb91 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -577,7 +577,7 @@ static int rdma_add_block(RDMAContext *rdma, const char *block_name,
>      block->is_ram_block = local->init ? false : true;
> 
>      if (rdma->blockmap) {
> -        g_hash_table_insert(rdma->blockmap, (void *) block_offset, block);
> +        g_hash_table_insert(rdma->blockmap, (void *)(uintptr_t)block_offset, block);

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

Dave

>      }
> 
>      trace_rdma_add_block(block_name, local->nb_blocks,
> -- 
> 2.5.0
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

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

end of thread, other threads:[~2015-11-10 16:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-10 16:52 [Qemu-devel] [PATCH 0/2] Clean up 32bit compilation for Migration Juan Quintela
2015-11-10 16:53 ` [Qemu-devel] [PATCH 1/2] migration: print ram_addr_t as RAM_ADDR_FMT not %zx Juan Quintela
2015-11-10 16:55   ` Dr. David Alan Gilbert
2015-11-10 16:53 ` [Qemu-devel] [PATCH 2/2] migration: Make 32bit linux compile with RDMA Juan Quintela
2015-11-10 16:56   ` Dr. David Alan Gilbert

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).