From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40265) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bBPOU-00039k-KT for qemu-devel@nongnu.org; Fri, 10 Jun 2016 12:34:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bBPOP-000163-Gs for qemu-devel@nongnu.org; Fri, 10 Jun 2016 12:34:49 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:58622) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bBPON-00014t-4w for qemu-devel@nongnu.org; Fri, 10 Jun 2016 12:34:45 -0400 Date: Fri, 10 Jun 2016 12:34:32 -0400 From: "Emilio G. Cota" Message-ID: <20160610163432.GA22231@flamenco> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [Qemu-devel] [PULL 00/15] tb hash improvements List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Richard Henderson , QEMU Developers On Fri, Jun 10, 2016 at 16:33:10 +0100, Peter Maydell wrote: > Fails to build on ppc64be :-( > > In file included from /home/pm215/qemu/include/qemu/thread.h:4:0, > from /home/pm215/qemu/include/block/aio.h:20, > from /home/pm215/qemu/include/block/block.h:4, > from /home/pm215/qemu/include/monitor/monitor.h:6, > from /home/pm215/qemu/trace/control.c:23: > /home/pm215/qemu/include/qemu/processor.h:24:35: error: expected > identifier or ‘(’ before string constant > "or 2, 2, 2;" ::: "memory") On Fri, Jun 10, 2016 at 16:57:19 +0100, Peter Maydell wrote: > Also fails trying to build a test on 32-bit: > > /home/petmay01/qemu/tests/qht-bench.c: In function 'pr_params': > /home/petmay01/qemu/tests/qht-bench.c:270:5: error: format '%zu' > expects argument of type 'size_t', but argument 2 has type 'long > unsigned int' [-Werror=format=] > printf(" lookup range: %zu\n", lookup_range); Can you please test again after applying the appended delta? Thanks, Emilio diff --git a/include/qemu/processor.h b/include/qemu/processor.h index 42bcc99..c28d7e3 100644 --- a/include/qemu/processor.h +++ b/include/qemu/processor.h @@ -20,8 +20,12 @@ #elif defined(__powerpc64__) /* set Hardware Multi-Threading (HMT) priority to low; then back to medium */ -# define cpu_relax() asm volatile("or 1, 1, 1;" - "or 2, 2, 2;" ::: "memory") +# define cpu_relax() \ + do { \ + asm volatile("or 1,1,1"); \ + asm volatile("or 2,2,2"); \ + barrier(); \ + } while (0) #else # define cpu_relax() barrier() diff --git a/tests/qht-bench.c b/tests/qht-bench.c index c7f73b4..ad8efbc 100644 --- a/tests/qht-bench.c +++ b/tests/qht-bench.c @@ -267,8 +267,8 @@ static void pr_params(void) printf(" update rate: %f%%\n", update_rate * 100.0); printf(" offset: %ld\n", populate_offset); printf(" initial key range: %zu\n", init_range); - printf(" lookup range: %zu\n", lookup_range); - printf(" update range: %zu\n", update_range); + printf(" lookup range: %lu\n", lookup_range); + printf(" update range: %lu\n", update_range); } static void do_threshold(double rate, uint64_t *threshold)