[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-ia64-devel] [PATCH] xentrace buffer alignment


  • To: "Masaki Kanno" <kanno.masaki@xxxxxxxxxxxxxx>, <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
  • Date: Thu, 24 Nov 2005 13:17:40 +0800
  • Delivery-date: Thu, 24 Nov 2005 05:17:34 +0000
  • List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
  • Thread-index: AcXwsJraos3zhUgmTXqX/n0OjhRqGQABAlzQ
  • Thread-topic: [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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.