From: Jeremy Fitzhardinge <jeremy@goop.org>
To: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: xen-devel@lists.xensource.com, Akio Takebe <takebe_akio@jp.fujitsu.com>
Subject: Re: Announcement: xenalyze trace analysis tool released
Date: Fri, 30 Apr 2010 15:02:17 -0700 [thread overview]
Message-ID: <4BDB5369.6040204@goop.org> (raw)
In-Reply-To: <de76405a0908140319g2b3f9cd4m67dc117aeff6f4aa@mail.gmail.com>
On 08/14/2009 03:19 AM, George Dunlap wrote:
> Hmm, that won't do; with this patch it won't compile on x86-32. :-)
>
> I'll take a look and see what the best solution is. Thanks for the patch!
>
This should fix it properly. The key is to use the "z" format modifier
meaning "size_t".
J
Fix 64-bit compilation
This fixes 64-bit compilation by using the 'z' printf format modifier
to tell the compiler we're using size_t-typed arguments, and explicitly
casting loff_t types to unsigned long long to match the format.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
diff -r 6466afa95122 -r 4efef3092ce7 dump-raw.c
--- a/dump-raw.c Mon Nov 30 12:43:09 2009 -0600
+++ b/dump-raw.c Fri Apr 30 12:56:57 2010 -0700
@@ -94,7 +94,7 @@
return 0;
} else if(r < sizeof(uint32_t)) {
/* Full header not read */
- fprintf(stderr, "%s: short read (%d bytes)\n",
+ fprintf(stderr, "%s: short read (%zd bytes)\n",
__func__, r);
exit(1);
}
@@ -103,7 +103,7 @@
if(r < rsize) {
/* Full record not read */
- fprintf(stderr, "%s: short read (%d, expected %d)\n",
+ fprintf(stderr, "%s: short read (%zd, expected %zd)\n",
__func__, r, rsize);
return 0;
}
@@ -146,7 +146,8 @@
/* File sanity check */
if(p->file_offset != p->next_cpu_change_offset) {
printf("Strange, pcpu %d expected offet %llx, actual %llx!\n",
- p->pid, p->next_cpu_change_offset, p->file_offset);
+ p->pid, (unsigned long long)p->next_cpu_change_offset,
+ (unsigned long long)p->file_offset);
}
p->next_cpu_change_offset = p->file_offset + ri->size + r->window_size;
@@ -159,7 +160,7 @@
int i;
printf("R p%2d o%016llx %8lx %d ",
- p->pid, p->file_offset,
+ p->pid, (unsigned long long)p->file_offset,
(unsigned long)ri->rec.event, ri->rec.extra_words);
if(ri->rec.cycle_flag)
diff -r 6466afa95122 -r 4efef3092ce7 xenalyze.c
--- a/xenalyze.c Mon Nov 30 12:43:09 2009 -0600
+++ b/xenalyze.c Fri Apr 30 12:56:57 2010 -0700
@@ -1328,7 +1328,7 @@
if(h->summary.extint_histogram)
bzero(h->summary.extint_histogram, size);
else {
- fprintf(stderr, "FATAL: Could not allocate %d bytes for interrupt histogram!\n",
+ fprintf(stderr, "FATAL: Could not allocate %zd bytes for interrupt histogram!\n",
size);
exit(1);
}
@@ -4062,7 +4062,7 @@
if(ri->extra_words != (sizeof(*r)/sizeof(unsigned long) + 1))
{
- fprintf(warn, "FATAL: msr_write extra_words %d, expected %d!\n",
+ fprintf(warn, "FATAL: msr_write extra_words %d, expected %zd!\n",
ri->extra_words, sizeof(*r)/sizeof(unsigned long));
dump_unexpected_and_exit(ri);
}
@@ -4111,7 +4111,7 @@
if(ri->extra_words != (sizeof(*r)/sizeof(unsigned long) + 1))
{
- fprintf(warn, "FATAL: msr_read extra_words %d, expected %d!\n",
+ fprintf(warn, "FATAL: msr_read extra_words %d, expected %zd!\n",
ri->extra_words, sizeof(*r)/sizeof(unsigned long));
dump_unexpected_and_exit(ri);
}
@@ -5152,7 +5152,7 @@
case 2:
if(sizeof(r->gpl2) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl2), h->v->guest_paging_levels,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -5166,7 +5166,7 @@
case 3:
if(sizeof(r->gpl3) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl3), h->v->guest_paging_levels,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -5180,7 +5180,7 @@
case 4:
if(sizeof(r->gpl4) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl4), h->v->guest_paging_levels,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -5252,7 +5252,7 @@
case 2:
if(sizeof(r->gpl2) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl2), rec_gpl,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -5268,7 +5268,7 @@
case 3:
if(sizeof(r->gpl3) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl3), rec_gpl,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -5280,7 +5280,7 @@
case 4:
if(sizeof(r->gpl4) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl4), rec_gpl,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -5469,7 +5469,7 @@
case 2:
if(sizeof(r->gpl2) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl2), h->v->guest_paging_levels,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -5482,7 +5482,7 @@
case 3:
if(sizeof(r->gpl3) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl3), h->v->guest_paging_levels,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -5495,7 +5495,7 @@
case 4:
if(sizeof(r->gpl4) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl4), h->v->guest_paging_levels,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -5583,7 +5583,7 @@
case 3:
if(sizeof(r->gpl2) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl2), h->v->guest_paging_levels,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -5594,7 +5594,7 @@
case 4:
if(sizeof(r->gpl4) != ri->extra_words * 4)
{
- fprintf(warn, "%s: expected %d bytes for %d-level guest, got %d!\n",
+ fprintf(warn, "%s: expected %zd bytes for %d-level guest, got %d!\n",
__func__, sizeof(r->gpl4), h->v->guest_paging_levels,
ri->extra_words * 4);
dump_unexpected_and_exit(ri);
@@ -6106,7 +6106,7 @@
if((v=malloc(sizeof(*v)))==NULL)
{
- fprintf(stderr, "%s: malloc %d failed!\n", __func__, sizeof(*d));
+ fprintf(stderr, "%s: malloc %zd failed!\n", __func__, sizeof(*d));
exit(1);
}
@@ -6148,7 +6148,7 @@
if((d=malloc(sizeof(*d)))==NULL)
{
- fprintf(stderr, "%s: malloc %d failed!\n", __func__, sizeof(*d));
+ fprintf(stderr, "%s: malloc %zd failed!\n", __func__, sizeof(*d));
exit(1);
}
@@ -7145,7 +7145,7 @@
struct pcpu_info *p = P.pcpu + cd->cpu;
fprintf(warn, "%s: Activating pcpu %d at offset %lld\n",
- __func__, cd->cpu, offset);
+ __func__, cd->cpu, (unsigned long long)offset);
p->active = 1;
/* Process this cpu_change record first */
@@ -7220,7 +7220,8 @@
/* File sanity check */
if(p->file_offset != p->next_cpu_change_offset) {
fprintf(warn, "Strange, pcpu %d expected offet %llx, actual %llx!\n",
- p->pid, p->next_cpu_change_offset, p->file_offset);
+ p->pid, (unsigned long long)p->next_cpu_change_offset,
+ (unsigned long long)p->file_offset);
}
if(r->cpu > MAX_CPUS)
@@ -7246,7 +7247,7 @@
P.max_active_pcpu = r->cpu;
fprintf(warn, "%s: Activating pcpu %d at offset %lld\n",
- __func__, r->cpu, p->file_offset);
+ __func__, r->cpu, (unsigned long long)p->file_offset);
sched_default_vcpu_activate(p2);
@@ -7271,7 +7272,7 @@
activate_early_eof();
} else if(P.early_eof && p->file_offset > P.last_epoch_offset) {
fprintf(warn, "%s: early_eof activated, pcpu %d past last_epoch_offset %llx, deactivating.\n",
- __func__, p->pid, P.last_epoch_offset);
+ __func__, p->pid, (unsigned long long)P.last_epoch_offset);
deactivate_pcpu(p);
}
}
@@ -7571,7 +7572,7 @@
return 0;
} else if(r < sizeof(uint32_t)) {
/* Full header not read */
- fprintf(stderr, "%s: short read (%d bytes)\n",
+ fprintf(stderr, "%s: short read (%zd bytes)\n",
__func__, r);
exit(1);
}
@@ -7580,7 +7581,7 @@
if(r < rsize) {
/* Full record not read */
- fprintf(stderr, "%s: short read (%d, expected %d)\n",
+ fprintf(stderr, "%s: short read (%zd, expected %zd)\n",
__func__, r, rsize);
return 0;
}
@@ -7627,7 +7628,7 @@
if ( opt.dump_raw_reads ) {
int i;
printf("R p%2d o%016llx %8lx %d ",
- p->pid, p->file_offset,
+ p->pid, (unsigned long long)p->file_offset,
(unsigned long)ri->rec.event, ri->rec.extra_words);
if(ri->rec.cycle_flag)
prev parent reply other threads:[~2010-04-30 22:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-13 15:51 Announcement: xenalyze trace analysis tool released George Dunlap
2009-08-14 1:26 ` Akio Takebe
2009-08-14 10:19 ` George Dunlap
2010-04-30 22:02 ` Jeremy Fitzhardinge [this message]
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=4BDB5369.6040204@goop.org \
--to=jeremy@goop.org \
--cc=George.Dunlap@eu.citrix.com \
--cc=takebe_akio@jp.fujitsu.com \
--cc=xen-devel@lists.xensource.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.