xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1 of 2] xenoprof: Use uint64_t explicitly for internal calls
       [not found] <patchbomb.1327421382@elijah>
@ 2012-01-24 16:09 ` George Dunlap
  2012-01-24 16:09 ` [PATCH 2 of 2] xenoprof: Make the escape code consistent across 32 and 64-bit xen George Dunlap
  2012-01-24 16:13 ` [PATCH 0 of 2] xenoprof: Fix 32-on-64 bit (supplemental) George Dunlap
  2 siblings, 0 replies; 4+ messages in thread
From: George Dunlap @ 2012-01-24 16:09 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap

A recent changeset to make XENOPROF_ESCAPE_CODE consistent across
32- and 64-bit builds caused a build failure, because values were
passed through functions as "unsigned long".  Replace these with
uint64_t explicitly.

Also remove redundant function prototype from perfmon.c, now that
it's in a header file.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>

diff -r 370924e204dc -r dc346270f1aa xen/arch/ia64/xen/oprofile/perfmon.c
--- a/xen/arch/ia64/xen/oprofile/perfmon.c	Mon Jan 23 15:10:43 2012 +0000
+++ b/xen/arch/ia64/xen/oprofile/perfmon.c	Tue Jan 24 16:09:14 2012 +0000
@@ -38,8 +38,6 @@
 #include <asm/vmx.h>    /* for vmx_user_mode() */
 
 // XXX move them to an appropriate header file
-extern void xenoprof_log_event(struct vcpu *vcpu, struct pt_regs * regs,
-                               unsigned long eip, int mode, int event);
 extern int is_active(struct domain *d);
 
 static int allow_virq;
diff -r 370924e204dc -r dc346270f1aa xen/common/xenoprof.c
--- a/xen/common/xenoprof.c	Mon Jan 23 15:10:43 2012 +0000
+++ b/xen/common/xenoprof.c	Tue Jan 24 16:09:14 2012 +0000
@@ -475,7 +475,7 @@ static int xenoprof_buf_space(struct dom
 
 /* Check for space and add a sample. Return 1 if successful, 0 otherwise. */
 static int xenoprof_add_sample(struct domain *d, xenoprof_buf_t *buf,
-                               unsigned long eip, int mode, int event)
+                               uint64_t eip, int mode, int event)
 {
     int head, tail, size;
 
@@ -512,7 +512,7 @@ static int xenoprof_add_sample(struct do
 }
 
 int xenoprof_add_trace(struct domain *d, struct vcpu *vcpu,
-                       unsigned long eip, int mode)
+                       uint64_t eip, int mode)
 {
     xenoprof_buf_t *buf = d->xenoprof->vcpu[vcpu->vcpu_id].buffer;
 
@@ -527,7 +527,7 @@ int xenoprof_add_trace(struct domain *d,
 }
 
 void xenoprof_log_event(struct vcpu *vcpu, 
-                        struct cpu_user_regs * regs, unsigned long eip, 
+                        struct cpu_user_regs * regs, uint64_t eip, 
                         int mode, int event)
 {
     struct domain *d = vcpu->domain;
diff -r 370924e204dc -r dc346270f1aa xen/include/xen/xenoprof.h
--- a/xen/include/xen/xenoprof.h	Mon Jan 23 15:10:43 2012 +0000
+++ b/xen/include/xen/xenoprof.h	Tue Jan 24 16:09:14 2012 +0000
@@ -69,7 +69,7 @@ int is_passive(struct domain *d);
 void free_xenoprof_pages(struct domain *d);
 
 int xenoprof_add_trace(struct domain *d, struct vcpu *v, 
-                       unsigned long eip, int mode);
+                       uint64_t eip, int mode);
 
 #define PMU_OWNER_NONE          0
 #define PMU_OWNER_XENOPROF      1
@@ -78,7 +78,7 @@ int acquire_pmu_ownship(int pmu_ownershi
 void release_pmu_ownship(int pmu_ownership);
 
 void xenoprof_log_event(struct vcpu *vcpu,
-                        struct cpu_user_regs * regs, unsigned long eip,
+                        struct cpu_user_regs * regs, uint64_t eip,
                         int mode, int event);
 
 #endif  /* __XEN__XENOPROF_H__ */

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

* [PATCH 2 of 2] xenoprof: Make the escape code consistent across 32 and 64-bit xen
       [not found] <patchbomb.1327421382@elijah>
  2012-01-24 16:09 ` [PATCH 1 of 2] xenoprof: Use uint64_t explicitly for internal calls George Dunlap
@ 2012-01-24 16:09 ` George Dunlap
  2012-01-24 16:13 ` [PATCH 0 of 2] xenoprof: Fix 32-on-64 bit (supplemental) George Dunlap
  2 siblings, 0 replies; 4+ messages in thread
From: George Dunlap @ 2012-01-24 16:09 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap

At the moment, the xenoprof escape code is defined as "~0UL".
Unfortunately, this expands to 0xffffffff on 32-bit systems
and 0xffffffffffffffff on 64-bit systems; with the result that
while 32-on-32 and 64-in-64 work fine, 32-on-64 (also known as
"compat mode") is broken.

This patch makes the definition consistent across architectures.
In so doing, it will break old-32-bit-on-new-Xen, and vice versa;
but this was seen as an acceptable thing to do.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>

diff -r dc346270f1aa -r c6111aec665a xen/include/public/xenoprof.h
--- a/xen/include/public/xenoprof.h	Tue Jan 24 16:09:14 2012 +0000
+++ b/xen/include/public/xenoprof.h	Tue Jan 24 16:09:15 2012 +0000
@@ -68,7 +68,7 @@ struct event_log {
 };
 
 /* PC value that indicates a special code */
-#define XENOPROF_ESCAPE_CODE ~0UL
+#define XENOPROF_ESCAPE_CODE (~0ULL)
 /* Transient events for the xenoprof->oprofile cpu buf */
 #define XENOPROF_TRACE_BEGIN 1

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

* Re: [PATCH 0 of 2] xenoprof: Fix 32-on-64 bit (supplemental)
       [not found] <patchbomb.1327421382@elijah>
  2012-01-24 16:09 ` [PATCH 1 of 2] xenoprof: Use uint64_t explicitly for internal calls George Dunlap
  2012-01-24 16:09 ` [PATCH 2 of 2] xenoprof: Make the escape code consistent across 32 and 64-bit xen George Dunlap
@ 2012-01-24 16:13 ` George Dunlap
  2012-01-24 16:17   ` George Dunlap
  2 siblings, 1 reply; 4+ messages in thread
From: George Dunlap @ 2012-01-24 16:13 UTC (permalink / raw)
  To: George Dunlap; +Cc: xen-devel@lists.xensource.com

Actually, please hold off on applying these for a minute -- I meant to
cancel the send pending a final build check (both 32- and 64-bit), but
it didn't work.  I'll send an ACK when they're ready.

 -George

On Tue, 2012-01-24 at 16:09 +0000, George Dunlap wrote:

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

* Re: [PATCH 0 of 2] xenoprof: Fix 32-on-64 bit (supplemental)
  2012-01-24 16:13 ` [PATCH 0 of 2] xenoprof: Fix 32-on-64 bit (supplemental) George Dunlap
@ 2012-01-24 16:17   ` George Dunlap
  0 siblings, 0 replies; 4+ messages in thread
From: George Dunlap @ 2012-01-24 16:17 UTC (permalink / raw)
  To: George Dunlap; +Cc: xen-devel@lists.xensource.com

On Tue, 2012-01-24 at 16:13 +0000, George Dunlap wrote:
> Actually, please hold off on applying these for a minute -- I meant to
> cancel the send pending a final build check (both 32- and 64-bit), but
> it didn't work.  I'll send an ACK when they're ready.

OK, I think things are all good.

ACKed-by: George Dunlap <george.dunlap@eu.citrix.com>

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

end of thread, other threads:[~2012-01-24 16:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <patchbomb.1327421382@elijah>
2012-01-24 16:09 ` [PATCH 1 of 2] xenoprof: Use uint64_t explicitly for internal calls George Dunlap
2012-01-24 16:09 ` [PATCH 2 of 2] xenoprof: Make the escape code consistent across 32 and 64-bit xen George Dunlap
2012-01-24 16:13 ` [PATCH 0 of 2] xenoprof: Fix 32-on-64 bit (supplemental) George Dunlap
2012-01-24 16:17   ` George Dunlap

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