[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-ia64-devel] [PATCH] xentrace buffer alignment
Hi, Kanno, First there's no need to add "align" for struct t_rec since theirs is a uint64_t field inside which promises 8 bytes alignment by compiler. Then I'm curious why unaligned fault is raised upon the second structure t_buf. Since all 3 fields inside are unsigned integer, I think there's no need to push any manual alignment to them. The caller should walk these fields by defined type. ;-) Thanks, Kevin >-----Original Message----- >From: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx >[mailto:xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Masaki Kanno >Sent: 2005年11月24日 12:36 >To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx >Subject: [Xen-ia64-devel] [PATCH] xentrace buffer alignment > >Hi, > >When the "tbuf_size=" option was added, >Xen cannot be booted and show the following messages. > >(XEN) About to call init_trace_bufs() >(XEN) Xen trace buffers: initialised >(XEN) About to call schedulers_start dom0=f0000000040ec100, >idle0_dom=f0000000040d2e10 >(XEN) ia64_handle_reflection: reflecting with priv=0!! > >Unaligned Reference fault occurred in trace function. >This small patch correct alignment of the trace buffer. > >Signed-off-by: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx> > >Thanks, > kan > >diff -r 51f32d60536b xen/include/public/trace.h >--- a/xen/include/public/trace.h Fri Nov 18 00:35:14 2005 >+++ b/xen/include/public/trace.h Thu Nov 24 11:43:40 2005 >@@ -58,7 +58,11 @@ > uint64_t cycles; /* cycle counter timestamp */ > uint32_t event; /* event ID */ > unsigned long data[5]; /* event data items */ >+#ifdef __ia64__ >+} __attribute__((__aligned__(8))); >+#else > }; >+#endif > > /* > * This structure contains the metadata for a single trace buffer. The head >@@ -69,7 +73,11 @@ > unsigned int prod; /* Next item to be produced by Xen. */ > unsigned int nr_recs; /* Number of records in this trace buffer. */ > /* 'nr_recs' records follow immediately after the meta-data header. */ >+#ifdef __ia64__ >+} __attribute__((__aligned__(8))); >+#else > }; >+#endif > > #endif /* __XEN_PUBLIC_TRACE_H__ */ > > > >_______________________________________________ >Xen-ia64-devel mailing list >Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx >http://lists.xensource.com/xen-ia64-devel _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |