Re: [XenPPC] copy_page speedup using dcbz on target

2006-12-18 Thread poff
On Sat, 16 Dec 2006 11:34, Jimi Xenidis wrote:

 If you really want to explore mem/page copy for XenPPC then you have  
 to understand that since we run without an MMU, profiling code with  
 MMU on, _including_ RMA, is not helpful because the access is guarded ... 

 Please run your experiments _in_ Xen ...

Timing code has been included in Xen, setup.c; 
however, results match prior timings in userspace:

JS20:
elapsed time: 0xa8f5
elapsed time using dcbz: 0x5410

elapsed time: 0xa987
elapsed time using dcbz: 0x5361


JS21:
elapsed time: 0x0862
elapsed time using dcbz: 0x0420

elapsed time: 0x0859
elapsed time using dcbz: 0x0424

...

 You will probably find that grouping (as Hollis suggests) by cache  
 line will be much better. but also prefetch the next line somehow.

Somewhat better... (following observations were made running in user space)
The unrolling the copy loop (by cache line) improves performance a few percent.
(did not record the time; also unrolled loop still used same number of registers
and no touching)

However, including dcbz at beginning of loop slowed things down. Perhaps need to
dcbz a couple lines ahead of usage?

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


[XenPPC] copy_page speedup using dcbz on target

2006-12-15 Thread poff
Using dcbz avoids first reading a cache line from memory before writing to the 
line.
Timing results (starting with clean cache, ie no write-backs for dirty lines):

JS20:
elapsed time: 0x9f5e
elapsed time using dcbz: 0x569e

elapsed time: 0x9fe9
elapsed time using dcbz: 0x5765


JS21:
elapsed time: 0x089e
elapsed time using dcbz: 0x0439

elapsed time: 0x0886
elapsed time using dcbz: 0x0438

.

#include stdio.h
#include stdlib.h
#include string.h
#include errno.h

typedef unsigned char uchar;
typedef unsigned long ulong;

#define LINE_SIZE 128
#define PAGE_SIZE 0x1000

#define BUF1_SIZE (PAGE_SIZE * 64)
#define BUF2_SIZE (PAGE_SIZE)
#define BUF3_SIZE (0x80)

static __inline__ ulong time_base(void);
static __inline__ void copy_page(void *dp, void *sp);
static __inline__ void cacheable_copy_page(void *dp, void *sp);
static __inline__ void cacheable_clear_page(void *addr);

static uchar clean_cache(uchar *buf3);


int main(int argc, char **argv){

  int i;
  ulong tb1, tb2;
  uchar *buf1, *buf2, *buf3, *bufp;

  buf1 = malloc(BUF1_SIZE + PAGE_SIZE);
  buf2 = malloc(BUF2_SIZE + PAGE_SIZE);
  buf3 = malloc(BUF3_SIZE + PAGE_SIZE);

  buf1 = (uchar *)((ulong)(buf1 + (PAGE_SIZE - 1))  ~(PAGE_SIZE - 1));
  buf2 = (uchar *)((ulong)(buf2 + (PAGE_SIZE - 1))  ~(PAGE_SIZE - 1));
  buf3 = (uchar *)((ulong)(buf3 + (PAGE_SIZE - 1))  ~(PAGE_SIZE - 1));

  memset(buf1, 1, BUF1_SIZE);
  memset(buf2, 2, BUF2_SIZE);
  memset(buf3, 3, BUF3_SIZE);

  clean_cache(buf3);  
  tb1 = time_base();

  for (bufp = buf1, i = 0; i  4; i++, bufp += PAGE_SIZE*16){
  copy_page(bufp, buf2);
  copy_page(bufp+(PAGE_SIZE*1), buf2);
  copy_page(bufp+(PAGE_SIZE*2), buf2);
  copy_page(bufp+(PAGE_SIZE*3), buf2);
  copy_page(bufp+(PAGE_SIZE*4), buf2);
  copy_page(bufp+(PAGE_SIZE*5), buf2);
  copy_page(bufp+(PAGE_SIZE*6), buf2);
  copy_page(bufp+(PAGE_SIZE*7), buf2);
  
  copy_page(bufp+(PAGE_SIZE*8), buf2);
  copy_page(bufp+(PAGE_SIZE*9), buf2);
  copy_page(bufp+(PAGE_SIZE*10), buf2);
  copy_page(bufp+(PAGE_SIZE*11), buf2);
  copy_page(bufp+(PAGE_SIZE*12), buf2);
  copy_page(bufp+(PAGE_SIZE*13), buf2);
  copy_page(bufp+(PAGE_SIZE*14), buf2);
  copy_page(bufp+(PAGE_SIZE*15), buf2);
  }

  tb2 = time_base();
  printf(elapsed time: 0x%016lx\n, tb2 - tb1);


  clean_cache(buf3);  
  tb1 = time_base();

  for (bufp = buf1, i = 0; i  4; i++, bufp += PAGE_SIZE*16){
  cacheable_copy_page(bufp, buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*1), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*2), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*3), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*4), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*5), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*6), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*7), buf2);
  
  cacheable_copy_page(bufp+(PAGE_SIZE*8), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*9), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*10), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*11), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*12), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*13), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*14), buf2);
  cacheable_copy_page(bufp+(PAGE_SIZE*15), buf2);
  }

  tb2 = time_base();
  printf(elapsed time using dcbz: 0x%016lx\n, tb2 - tb1);

  return(0);
}


static __inline__ ulong time_base(void)
{
ulong tb;

__asm__ __volatile__(
mftb   %0  # read time base
: =r (tb));

return tb;
}


static __inline__ void cacheable_clear_page(void *addr)
{
ulong lines, line_size;

line_size = LINE_SIZE;
lines = PAGE_SIZE / line_size;

__asm__ __volatile__(
mtctr  %1  # clear_page\n\
1:  dcbz0,%0\n\
add %0,%0,%3\n\
bdnz1b
: =r (addr)
: r (lines), 0 (addr), r (line_size)
: %ctr, memory);
}


static __inline__ void copy_page(void *dp, void *sp)
{
ulong dwords, dword_size;

dword_size = 8;
dwords = (PAGE_SIZE / dword_size) - 1;

__asm__ __volatile__(
mtctr  %2  # copy_page\n\
ld  %2,0(%1)\n\
std %2,0(%0)\n\
1:  ldu %2,8(%1)\n\
stdu%2,8(%0)\n\
bdnz1b
: /* no result */
: r (dp), r (sp), r (dwords)
: %ctr, memory);
}


static __inline__ void cacheable_copy_page(void *dp, void *sp)
{

cacheable_clear_page(dp);
copy_page(dp, sp);
}


static uchar clean_cache(uchar *buf3)
{ 
  int i;
  uchar uc, *ucp = buf3;

  for (i = 0; i  BUF3_SIZE / LINE_SIZE; i++){
  uc += *ucp;
  ucp += LINE_SIZE;
  }

  return(uc);
}

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com

Re: [XenPPC] copy_page speedup using dcbz on target

2006-12-15 Thread poff
 So do you have a patch for copy_page()?

In Xen for PPC, the only copy_page() is in arch/powerpc/mm.c:

extern void copy_page(void *dp, void *sp)
{
if (on_systemsim()) {
systemsim_memcpy(dp, sp, PAGE_SIZE);
} else {
memcpy(dp, sp, PAGE_SIZE);
}
}


1) Also copy_page is not referenced in current Xen sources?

2) dcbz depends on cacheability and cache alignment.
   Should a newname be given to this version of copy_page()?

3) Useful when PPC must do page copies in place of 'page flipping'.

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] copy_page speedup using dcbz on target

2006-12-15 Thread poff
  3) Useful when PPC must do page copies in place of 'page flipping'.
 
 So you're saying we should worry about it later?


For the future, copy_page using dcbz:

diff -r 7669fca80bfc xen/arch/powerpc/mm.c
--- a/xen/arch/powerpc/mm.c Mon Dec 04 11:46:53 2006 -0500
+++ b/xen/arch/powerpc/mm.c Fri Dec 15 17:52:58 2006 -0500
@@ -280,7 +280,8 @@ extern void copy_page(void *dp, void *sp
 if (on_systemsim()) {
 systemsim_memcpy(dp, sp, PAGE_SIZE);
 } else {
-memcpy(dp, sp, PAGE_SIZE);
+   clear_page(dp);
+   __copy_page(dp, sp);
 }
 }
 
diff -r 7669fca80bfc xen/include/asm-powerpc/page.h
--- a/xen/include/asm-powerpc/page.hMon Dec 04 11:46:53 2006 -0500
+++ b/xen/include/asm-powerpc/page.hFri Dec 15 17:52:58 2006 -0500
@@ -90,6 +90,25 @@ 1:  dcbz0,%0\n\
 
 extern void copy_page(void *dp, void *sp);
 
+static __inline__ void __copy_page(void *dp, void *sp)
+{
+   ulong dwords, dword_size;
+
+   dword_size = 8;
+   dwords = (PAGE_SIZE / dword_size) - 1;
+
+   __asm__ __volatile__(
+   mtctr  %2  # copy_page\n\
+   ld  %2,0(%1)\n\
+   std %2,0(%0)\n\
+1: ldu %2,8(%1)\n\
+   stdu%2,8(%0)\n\
+   bdnz1b
+   : /* no result */
+   : r (dp), r (sp), r (dwords)
+   : %ctr, memory);
+}
+
 #define linear_pg_table linear_l1_table
 
 static inline int get_order(unsigned long size)


___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


[XenPPC] [PATCH] xm save / restore

2006-12-13 Thread poff
 - logical translation array */
+uint64_t *shadow;  /* idx - logical translation array */
 };
 #endif
diff -r 7669fca80bfc xen/include/public/arch-powerpc.h
--- a/xen/include/public/arch-powerpc.h Mon Dec 04 11:46:53 2006 -0500
+++ b/xen/include/public/arch-powerpc.h Wed Dec 13 15:39:32 2006 -0500
@@ -98,11 +98,66 @@ typedef struct cpu_user_regs cpu_user_re
 
 typedef uint64_t tsc_timestamp_t; /* RDTSC timestamp */ /* XXX timebase */
 
+#defineNUM_SLB_ENTRIES 64
+struct slb_entry {
+   uint64_t slb_vsid;
+   uint64_t slb_esid;
+};
+typedef struct slb_entry slb_entry_t;
+
+#ifndef HAS_VMX
+#define HAS_VMX 1
+#endif
+
+#ifndef HAS_FLOAT
+#define HAS_FLOAT 1
+#endif
+
+#ifdef HAS_VMX
+typedef struct {
+   uint32_t u[4];
+} __attribute__((aligned(16))) _vector128;
+#endif /* HAS_VMX */
+
+
 /* ONLY used to communicate with dom0! See also struct exec_domain. */
 struct vcpu_guest_context {
 cpu_user_regs_t user_regs; /* User-level CPU registers */
+slb_entry_tslb_entries[NUM_SLB_ENTRIES];   /* Segment Lookaside 
Buffer */
+
+/* Special-Purpose Registers */
+uint64_t sprg[4];
+uint64_t timebase;
+uint64_t dar;
+uint64_t dsisr;
+
+struct cpu_vcpu_tag {
+   uint64_t hid4;
+} cpu; /* CPU-specific bits */
+
+uint32_t dec;
+
+/* XXX etc */
+#ifdef HAS_FLOAT
+#define  NUM_FPRS 32
+double fprs[NUM_FPRS];
+#endif
+#ifdef HAS_VMX
+_vector128 vrs[32];
+_vector128 vscr;
+uint32_t vrsave;
+#endif
+
+#if 0
+struct xencomm *xencomm;
+
+/* I/O-port access bitmap. */
+u8 *iobmp;/* Guest kernel virtual address of the bitmap. */
+int iobmp_limit;  /* Number of ports represented in the bitmap.  */
+int iopl; /* Current IOPL for this VCPU. */
+#endif
+
 uint64_t sdr1; /* Pagetable base   */
-/* XXX etc */
 };
 typedef struct vcpu_guest_context vcpu_guest_context_t;
 DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
diff -r 7669fca80bfc xen/include/public/domctl.h
--- a/xen/include/public/domctl.h   Mon Dec 04 11:46:53 2006 -0500
+++ b/xen/include/public/domctl.h   Wed Dec 13 15:39:32 2006 -0500
@@ -392,6 +392,18 @@ typedef struct xen_domctl_real_mode_area
 typedef struct xen_domctl_real_mode_area xen_domctl_real_mode_area_t;
 DEFINE_XEN_GUEST_HANDLE(xen_domctl_real_mode_area_t);
 
+#define XEN_DOMCTL_getshadowlist   29
+struct xen_domctl_getshadowlist {
+   /* OUT variables */
+   /* Start of htab array */
+   uint64_t htab_map;
+   /* Number of ptes within htab */
+   uint32_t htab_num_ptes;
+};
+
+typedef struct xen_domctl_getshadowlistxen_domctl_getshadowlist_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_getshadowlist_t);
+ 
 struct xen_domctl {
 uint32_t cmd;
 uint32_t interface_version; /* XEN_DOMCTL_INTERFACE_VERSION */
@@ -418,6 +430,7 @@ struct xen_domctl {
 struct xen_domctl_arch_setuparch_setup;
 struct xen_domctl_settimeoffset settimeoffset;
 struct xen_domctl_real_mode_areareal_mode_area;
+struct xen_domctl_getshadowlist getshadowlist;
 uint8_t pad[128];
 } u;
 };
diff -r 7669fca80bfc tools/libxc/powerpc64/xc_linux_restore.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +
+++ b/tools/libxc/powerpc64/xc_linux_restore.c  Wed Dec 13 15:39:32 2006 -0500
@@ -0,0 +1,312 @@
+/**
+ * xc_linux_restore.c
+ *
+ * Restore the state of a Linux session.
+ *
+ * Copyright (c) 2003, K A Fraser.
+ * Rewritten for PPC:  Dan Poff [EMAIL PROTECTED], Yi Ge [EMAIL PROTECTED]
+ */
+
+#include inttypes.h
+#include stdlib.h
+#include unistd.h
+#include xen/asm/htab.h
+
+#include xg_private.h
+
+#define DECOR 0x8000// indicates htab address
+#define LOG_PTE_SIZE4
+
+#define INVALID_MFN   (~0ULL)
+
+#define PFN_TO_KB(_pfn) ((_pfn)  (PAGE_SHIFT - 10))
+
+/* total number of pages used by the current guest */
+static unsigned long max_pfn;
+
+static ssize_t
+read_exact(int fd, void *buf, size_t count)
+{
+int r = 0, s;
+unsigned char *b = buf;
+
+while (r  count) {
+s = read(fd, b[r], count - r);
+if ((s == -1)  (errno == EINTR))
+continue;
+if (s = 0) {
+break;
+}
+r += s;
+}
+
+return (r == count) ? 1 : 0;
+}
+
+static int
+read_page(int xc_handle, int io_fd, uint32_t dom, xen_pfn_t mfn)
+{
+void *mem;
+
+mem = xc_map_foreign_range(xc_handle, dom, PAGE_SIZE,
+   PROT_READ|PROT_WRITE, mfn);
+if (mem == NULL) {
+ERROR(cannot map page);
+   return -1;
+}
+if (!read_exact(io_fd, mem, PAGE_SIZE)) {
+ERROR(Error when reading from state file (5));
+return -1;
+}
+
+munmap(mem, PAGE_SIZE);
+return 0;
+}
+
+int

Re: [XenPPC] xend and routes

2006-12-11 Thread poff
 If this machine would like 192.x machines to acces the 9.x network  
 the ip_forwrding is necessary.

Right - I was thinking of DomU access to only 192.x.
For machines on 192.x to access 9.x, you need forwarding...

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] xend and routes

2006-12-11 Thread poff
 I think the problem is that the bridge favors the default route, so I  
 do not think swapping would work.

On my victim JS21, eth0 is the default, and xen scripts work as written.
However, in this case, DomU accesses the 9.2x network, rather than 192.x


___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] xend and routes

2006-12-11 Thread poff
 If this machine would like 192.x machines to acces the 9.x network  
 the ip_forwrding is necessary.

 Right - I was thinking of DomU access to only 192.x.
 For machines on 192.x to access 9.x, you need forwarding...


On the other hand...
CSO is setup with 192.168.0.1 as router/gateway (on the 'king node', cso3).
DomUs in CSO blades would gain access to the outside through the king
rather than ip_forwarding on the local blades. (talking w/ M. Banikazemi)


___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] xend and routes

2006-12-09 Thread poff
 BTW: If you would like to have DomUs to have access to the outside  
 world then you also want to make sure you have ip forwarding turned  
 on:
# echo 1 /proc/sys/net/ipv4/ip_forward

 forever change  IP_FORWARD= from no to yes in /etc/sysconfig/sysctl


'ip forwarding' is not necessary - I think bridging handles DomU packets
without involving Dom0 network stack.

For CSO the other issue is ip addresses for DomUs - viz 9.2... vs 192.168...
are the addresses routable or not?


___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] xend and routes

2006-12-08 Thread poff
We have had a couple network configuration mysteries, (including setting 
'network-bridge netdev=eth0')
due to CSO usage of eth1 as default/extenal adapter, rather than eth0. Probably 
the xen scripts would
have worked without mods if eth0  1 were swapped...

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] xend and routes

2006-12-07 Thread poff
 cso89:~ # netstat -rn
 netstat -rn
 Kernel IP routing table
 Destination Gateway Genmask Flags   MSS Window  irtt 
 Iface
 9.2.78.10.0.0.0 255.255.255.255 UH0 0  0 
 eth0
 9.2.78.00.0.0.0 255.255.255.0   U 0 0  0 
 eth1
 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0  0 
 eth0
 192.168.0.0 0.0.0.0 255.255.0.0 U 0 0  0 
 eth0
 127.0.0.0   0.0.0.0 255.0.0.0   U 0 0  0 lo
 0.0.0.0 9.2.78.10.0.0.0 UG0 0  0 
 eth0
 0.0.0.0 9.2.78.10.0.0.0 UG0 0  0 
 eth1


 The next to last route is bogus and interferes with the proper operation 
 of the machine as far as the network goes.   I am not sure what the 
 first route in the list above is all about, but seems strange as well.  
 In any case it was not there before. 


Not clear how this happened, but can fix the problem by deleting the eth0 
gateway, 'route del ...'

Multiple gateways occur when a second gateway is added without deleting the 
original gateway,
eg with 'route add gw...' However, in this case, the eth0 should not have been 
added, as you
point-out.

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] [RFC] 'xm restore' following boot

2006-12-07 Thread poff
I now think the console prints in previous mail are useless.
Example 2 runs while example 3 wedges, yet the prints are
roughly equivalent...

Also today there have been several runs similar to example 2.
I modified python code to skip the 'unpause' at the end of
domain restore. The drill: boot, xend start, xm restore,
then another activity eg rebuild tools or search kernel tree,
finally xm unpause. The guest domain often runs ok!

If the 'other activity' is skipped and restored domain
is unpaused immediately, almost always wedges.

However, sometimes the restored domain will wedge regardless
of other activity or multiple trys at restoring.

Earlier this week I was sure the wedging occured due to interrupts
or execptions in a loop, but have placed some counters, but see
nothing when wedging (via BUG() or printk()). Have not installed
gdb or tracing patches, thinking would not help with interrupt problems.

Yi thought there may be some kernel initialization during boot
that is missing with restore...


Anyway I see no way to proceed without knowing where the wedge occurs.

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


[XenPPC] [RFC] 'xm restore' following boot

2006-12-06 Thread poff
'xm restore' immediately following boot usually wedges the cpu.
However, xm save followed by xm restore works fine (even when
guest domain and htab are relocated to new memory areas).

^AAA shows:  with .plpar_hcall_norets  @ c003af78
 and  .HYPERVISOR_sched_op @ c004415c
(XEN) *** Dumping CPU3 state: ***
(XEN) [ Xen-3.0-unstable ]
(XEN) CPU: 0003   DOMID: 0001
(XEN) pc c003af88 msr 80009032
(XEN) lr c0044210 ctr c0044238
(XEN) srr0  srr1 
(XEN) r00: 2448 c065bcb0 c0656630 
(XEN) r04: 0001  2442 c000fc24
(XEN) r08: ecf515a8 c0044238 00989680 c00441a4
(XEN) r12: 01a9f9f8 c052e300  
(XEN) r16:    
(XEN) r20:    
(XEN) r24:   4000 c000
(XEN) r28:  0010 c053d3c8 0001
(XEN) reprogram_timer[00] Timeout in the past 0x004332DBA479  
0x0042C2424DF3


Here are typical console with debug prints and execptions:
If 'xm restore' is run several times, often it will start working,
though the exceptions still occur... (user domain has ramdisk  networking)
At the bottom, some code specified by a couple Exceptions...


1. 'xm restore' following xm save:

cso84:~ # xm console 6
mfdec: -12
TIMEBASE_FREQ: 71592390
Here we're resuming 
hid4: 0x62001242
arch_gnttab_map: grant table at d8008000
irq_resume() 
switch_idle_mm()
mfdec: 14315899
__sti()
xencons_resume() 
xenbus_resume()
smp_resume()
mfdec: 63024
returning
netfront: device eth0 has copying receive path.

[EMAIL PROTECTED] /]# 


2. reboot with 'xm restore' that worked 1st time:

cso84:~ # xm console 1
mfdec: -14
TIMEBASE_FREQ: 71592390
Here we're resuming 
hid4: 0x60001241
arch_gnttab_map: grant table at d8008000
irq_resume() 
switch_idle_mm()
mfdec: 14315924
__sti()
xencons_resume() 
xenbus_resume()
BUG: soft lockup detected on CPU#0!
Call Trace:
[C065B090] [C001062C] .show_stack+0x50/0x1cc (unreliable)
[C065B140] [C008956C] .softlockup_tick+0x100/0x128
[C065B200] [C0065BC0] .run_local_timers+0x1c/0x30
[C065B280] [C0023C60] .timer_interrupt+0x108/0x4f0
[C065B3B0] [C00034EC] decrementer_common+0xec/0x100
--- Exception: 901 at .handle_IRQ_event+0x4c/0x13c
LR = .__do_IRQ+0x1ac/0x2b4
[C065B6A0] [C05AB7B0] 0xc05ab7b0 (unreliable)
[C065B740] [C0089FC8] .__do_IRQ+0x1ac/0x2b4
[C065B800] [C02B7134] .evtchn_do_upcall+0x128/0x1a4
[C065B8C0] [C0043664] .xen_get_irq+0x10/0x28
[C065B940] [C000BD7C] .do_IRQ+0x7c/0x100
[C065B9C0] [C00041EC] hardware_interrupt_entry+0xc/0x10
--- Exception: 501 at .plpar_hcall_norets+0x10/0x1c
LR = .HYPERVISOR_sched_op+0xb4/0x10c
[C065BCB0] [C00BDA74] .kmem_cache_free+0xe4/0x2f4 (unreliable)
[C065BD60] [C00455CC] .xen_power_save+0x80/0x98
[C065BDE0] [C00120E4] .cpu_idle+0x14c/0x154
[C065BE70] [C0009174] .rest_init+0x44/0x5c
[C065BEF0] [C04E58D8] .start_kernel+0x2a0/0x308
[C065BF90] [C00084FC] .start_here_common+0x50/0x54
smp_resume()
mfdec: 90178
returning
netfront: device eth0 has copying receive path.

[EMAIL PROTECTED] /]# 


3. reboot with typical wedge:

cso84:~ # xm console 1
mfdec: -12
TIMEBASE_FREQ: 71592390
Here we're resuming 
hid4: 0x60001241
arch_gnttab_map: grant table at d8008000
irq_resume() 
switch_idle_mm()
mfdec: 14315903
__sti()
xencons_resume() 
xenbus_resume()
smp_resume()
mfdec: 14218880
returning
BUG: soft lockup detected on CPU#0!
Call Trace:
[C065B090] [C001062C] .show_stack+0x50/0x1cc (unreliable)
[C065B140] [C008956C] .softlockup_tick+0x100/0x128
[C065B200] [C0065BC0] .run_local_timers+0x1c/0x30
[C065B280] [C0023C60] .timer_interrupt+0x108/0x4f0
[C065B3B0] [C00034EC] decrementer_common+0xec/0x100
--- Exception: 901 at .handle_IRQ_event+0x4c/0x13c
LR = .__do_IRQ+0x1ac/0x2b4
[C065B6A0] [C05AB7B0] 0xc05ab7b0 (unreliable)
[C065B740] [C0089FC8] .__do_IRQ+0x1ac/0x2b4
[C065B800] [C02B7134] .evtchn_do_upcall+0x128/0x1a4
[C065B8C0] [C0043664] .xen_get_irq+0x10/0x28
[C065B940] [C000BD7C] .do_IRQ+0x7c/0x100
[C065B9C0] [C00041EC] hardware_interrupt_entry+0xc/0x10
--- Exception: 501 at .plpar_hcall_norets+0x10/0x1c
LR = .HYPERVISOR_sched_op+0xb4/0x10c
[C065BCB0] [C00BDA74] 

Re: [XenPPC] [linux-ppc-2.6] [XEN] The VIO rewrite

2006-11-08 Thread poff
 Hmm.. I capped my Dom0 to 192M and 64M and it worked fine.  The only  
 reason that mempool_create() can fail is if an underlying kmalloc  
 failed, I don't think that we are trying to get so much memory.

 Hey! did you update Xen as well? because the number of pages was way  
 too large before.

Just pulled xen and linux trees before lunch, rebuilt everything,
including tools, tried again:
 a) with initrd-0.8.img worked ok
 b) with /dev/hdc2 got problems below:
 c) fsck /dev/hdc2 then reboot  tried again - everything worked fine!
Built linux kernel in 12 min. Below is some log from vmstat 3:

Guest console:
netfront: Bad rx response id 256.
netfront: Bad rx response id 256.
netfront: Bad rx response id 256.
netfront: Bad rx response id 256.
netfront: Bad rx response id 256.
netfront: Bad rx response id 256.
netfront: Bad rx response id 256.
netfront: Bad rx response id 256.
netfront:lab082:~ # 
lab082:~ # 


Dom0 console:
Welcome to SUSE Linux Enterprise Server 10 (ppc) - Kernel 2.6.17-Xen (console).

lab082 login: (XEN) allocated RMA for Dom[1]: 0x1c00[0x400]
(XEN) Domain[1].0: initializing
(XEN) allocated RMA for Dom[2]: 0x1c00[0x400]
(XEN) Domain[2].0: initializing
(XEN) (file=grant_table.c, line=845) copy beyond page area.
(XEN) (file=grant_table.c, line=845) copy beyond page area.
(XEN) (file=grant_table.c, line=845) copy beyond page area.
(XEN) (file=grant_table.c, line=845) copy beyond page area.
(XEN) (file=grant_table.c, line=845) copy beyond page area.


vmstat 3 during kernel build:
procs ---memory-- ---swap-- -io -system-- -cpu--
 r  b   swpd   free   buff  cache   si   sobibo   in   cs us sy id wa st
 2  0  0  18704  32504  3769600   12988   18  121 41 10 44  5  0
 1  2  0  18156  33308  4027200   125   501   44  182 58 22  0 21  0
 1  0  0   6740  33316  405240023   192   42   80 80 14  0  6  0
 1  1  0   1796  34024  405960031   963   44  109 82 14  0  5  0
 1  0  0  18352  32548  405120033 0   14  219 75 20  0  5  0
 1  0  0   8800  33452  406480021   667   62   93 59 18  0 23  0
 1  0  0   3320  33348  407520025 06   82 85 14  0  1  0
 3  1  0   4128  28132  379080049   397   35  149 85  9  0  7  0
 1  0  0  19664  28152  3814800   177 0   14  249 78 17  0  5  0
 1  0  0  14328  28860  384800036   417   35   92 82 16  0  3  0
 2  1  0  22612  29676  389640037   144   10   90 84 14  0  1  0
 2  0  0  20352  29696  389440019   467   46  240 73 20  0  7  0
 2  0  0  19700  30392  392880017   464   43  223 75 22  0  3  0
 1  0  0  20484  30408  392720016 07  245 77 22  0  1  0
 1  0  0   2488  31180  398000043   383   21   99 73 18  0  8  0
 1  0  0  12812  29044  3803600   428 0   28  152 82 13  0  5  0
 1  0  0   2116  29844  382760040   553   44  141 76  8  0 17  0
 1  1  0  11592  28732  378280027576  129 87 12  0  2  0
 1  0  0   9632  28736  380840017   459   38  184 78 17  0  6  0
 1  0  0  12032  29456  381440028   457   43  157 74 17  0  9  0
 1  0  0   3464  29464  383960049 04   60 89  9  0  2  0
procs ---memory-- ---swap-- -io -system-- -cpu--
 r  b   swpd   free   buff  cache   si   sobibo   in   cs us sy id wa st
 0  1  0  27244  26364  381160051   432   41  214 73 15  0 12  0
 1  0  0  18076  26412  385880060 0   13  141 78 18  0  4  0
 1  0  0  10332  27296  390040056   617   48  151 63 17  0 20  0
 1  2  0  19276  28088  392520041   589   12  162 82 15  0  3  0
 1  0  0  20172  28088  39252001211   41  178 88 10  0  2  0
 1  0  0  18100  28788  395920028   529   44  252 82 17  0  1  0
 1  0  0   9168  28800  395800020 04  192 85 14  0  1  0
 1  0  0  14960  29520  399000017   528   46  223 74 18  0  8  0
 1  0  0   2116  29632  371880044   572   18   64 92  8  0  0  0
 2  0  0  25344  29020  372800035 0   35  157 79 16  0  5  0
procs ---memory-- ---swap-- -io -system-- -cpu--
 r  b   swpd   free   buff  cache   si   sobibo   in   cs us sy id wa st
 2  1  0  18620  27476  3908400   126   105   19  124 44 10 41  5  0
 1  1  0  14100  27596  394840071 0   26  146 77 23  0  1  0
 2  1  0  15680  28388  3895200   261   665   75  140 80 15  0  5  0
 3  1  0  18580  28484  3989600   145 0   18  204 77 22  0  1  0
 2  2  0   1544  26328  358120095   769   61  119 82  9  0  9  0
 1  2  0  12304  27340  3662000   355   573 

Re: [XenPPC] [linux-ppc-2.6] [XEN] The VIO rewrite

2006-11-04 Thread poff
 size: 0MB
Adding PCI host bridge /ht
Found U3-HT PCI host bridge. Firmware bus number: 0-239
PCI Host 0, io start: 0; io end: 3f
Using Xen idle loop
On node 0 totalpages: 49152
  DMA zone: 49152 pages, LIFO batch:15
***  : CF15

***  : Setup Done
[boot]0015 Setup Done
Built 1 zonelists.  Total pages: 49152
Kernel command line: root=/dev/hda2 sysrq=1 debug
Sharing PIC with Xen
mpic: Setting up MPIC Xen-U3-MPIC version 1.2 at f804, max 4 CPUs
mpic: ISU size: 124, shift: 7, mask: 7f
mpic: Initializing for 124 sources
mpic: Setting up HT PICs workarounds for U3/U4
mpic:   - HT:01.0 [0xb8] vendor 1022 device 7450 has 4 irqs
mpic:   - HT:02.0 [0xb8] vendor 1022 device 7450 has 4 irqs
mpic:   - HT:03.0 [0xf0] vendor 1022 device 7460 has 24 irqs
PID hash table entries: 1024 (order: 10, 8192 bytes)
time_init: decrementer frequency = 199.839336 MHz
time_init: processor frequency   = 1600.00 MHz
Maple: Found RTC at IO 0x1070
Console: colour dummy device 80x25
Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
freeing bootmem node 0
Memory: 186140k/196608k available (5256k kernel code, 10468k reserved, 1228k 
data, 562k bss, 244k init)
Calibrating delay loop... 398.95 BogoMIPS (lpj=1994752)
Mount-cache hash table entries: 256
Brought up 1 CPUs
smp_xen_setup_cpu(0)
migration_cost=0
arch_gnttab_map: grant table at d80082016000
setup_grant_area: mempool_create(): failed
kernel BUG in setup_grant_area at 
/home/poff/linux-ppc-2.6-work.hg/arch/powerpc/platforms/xen/gnttab.c:420!
cpu 0x0: Vector: 700 (Program Check) at [c0a3fa50]
pc: c0043fc0: .arch_gnttab_map+0x1bc/0x254
lr: c0043fbc: .arch_gnttab_map+0x1b8/0x254
sp: c0a3fcd0
   msr: 80028032
  current = 0xc0a31800
  paca= 0xc052e300
pid   = 1, comm = swapper
kernel BUG in setup_grant_area at 
/home/poff/linux-ppc-2.6-work.hg/arch/powerpc/platforms/xen/gnttab.c:420!
enter ? for help
0:mon 

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] xm restore: xc_get_pfn_list() returns bogus mfns

2006-10-16 Thread poff
 Dan, we assumed that xend built a domain shell before the restor  
 process, is this not the case.

The restore code does not call initDomain(), so allocMem() is never run:
If I change restore to include initDomain(), then good mfns showup...
Uncomfortable with this 'hack' - don't know where initDomain() came from,
and why it was omitted from restore code?


XendDomainInfo.py:
def create(config):
Create a VM from a configuration.

@param configconfiguration
@raise: VmError for invalid configuration


log.debug(XendDomainInfo.create(%s), config)

vm = findDomainClass()(parseConfig(config))
try:
vm.construct()
vm.initDomain()
vm.storeVmDetails()
vm.storeDomDetails()
vm.registerWatches()
vm.refreshShutdown()
return vm
except:
log.exception('Domain construction failed')
vm.destroy()
raise

def restore(config):
Create a domain and a VM object to do a restore.

@param config: domain configuration


log.debug(XendDomainInfo.restore(%s), config)

vm = findDomainClass()(parseConfig(config), None, None, False, False, True)
try:
vm.construct()
vm.storeVmDetails()
vm.createDevices()
vm.createChannels()
vm.storeDomDetails()
vm.endRestore()
return vm
except:
vm.destroy()
raise



___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] xm restore: xc_get_pfn_list() returns bogus mfns

2006-10-16 Thread poff
 It seems like an odd disconnect. I wonder if some of what we have in  
 initDomain should actually be in vm.construct()?!

Also, curious that createDevices() and createChannels() is included in 
initDomain(),
while vm.restore() calls them directly.

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


[XenPPC] xm restore: xc_get_pfn_list() returns bogus mfns

2006-10-14 Thread poff
'restore' maps guest memory then reads the saved memory image from disk.
xc_get_pfn_list() provides mfns of guest memory, used for mapping the guest 
pages.

When using these mfns, the system crashes. Ki realized these mfns are too small.
Also when creating a new domain, the console prints message whenever RMA is 
allocated;
however, when restoring a domain, there is no RMA message...

Looking through python code, RMA is created via allocMem, in XenDomainInfo.py.
However, allocMem is called only during initDomain for 'domain creation'.
'domain recreation' does not invoke allocMem...

Here is xend.log showing typical mfns, eg 2d97,  (in this case, no data was 
written to these pages):

[2006-10-14 12:44:23 xend.XendDomainInfo 8887] DEBUG (XendDomainInfo:268) 
XendDomainInfo.restore(['domain', ['domid', '2'], ['uuid', 
'052ea7ad-8567-74dd-3096-6e447cb7f059'], ['vcpus', '1'], ['vcpu_avail', '1'], 
['cpu_weight', '1.0'], ['memory', '64'], ['powerpc_rma_log', '26'], 
['shadow_memory', '1'], ['maxmem', '64'], ['features'], ['name', 
'S-1160762357.95'], ['on_poweroff', 'destroy'], ['on_reboot', 'restart'], 
['on_crash', 'restart'], ['image', ['linux', ['kernel', '/root/vmlinux.strip'], 
['ramdisk', '/root/ramdisk.image.gz'], ['args', 'xencons=tty128 
console=tty128']]], ['state', '--'], ['shutdown_reason', 'poweroff'], 
['cpu_time', '1.17065513'], ['online_vcpus', '1'], ['up_time', '59.548593998'], 
['start_time', '1160762358.2'], ['store_mfn', '131070'], ['console_mfn', 
'131069']])
[2006-10-14 12:44:23 xend.XendDomainInfo 8887] DEBUG (XendDomainInfo:299) 
parseConfig: config is ['domain', ['domid', '2'], ['uuid', 
'052ea7ad-8567-74dd-3096-6e447cb7f059'], ['vcpus', '1'], ['vcpu_avail', '1'], 
['cpu_weight', '1.0'], ['memory', '64'], ['powerpc_rma_log', '26'], 
['shadow_memory', '1'], ['maxmem', '64'], ['features'], ['name', 
'S-1160762357.95'], ['on_poweroff', 'destroy'], ['on_reboot', 'restart'], 
['on_crash', 'restart'], ['image', ['linux', ['kernel', '/root/vmlinux.strip'], 
['ramdisk', '/root/ramdisk.image.gz'], ['args', 'xencons=tty128 
console=tty128']]], ['state', '--'], ['shutdown_reason', 'poweroff'], 
['cpu_time', '1.17065513'], ['online_vcpus', '1'], ['up_time', '59.548593998'], 
['start_time', '1160762358.2'], ['store_mfn', '131070'], ['console_mfn', 
'131069']]
[2006-10-14 12:44:23 xend.XendDomainInfo 8887] DEBUG (XendDomainInfo:398) 
parseConfig: result is {'shadow_memory': 1, 'powerpc_rma_log': 26, 
'bootloader': None, 'on_reboot': 'restart', 'localtime': None, 'image': 
['linux', ['kernel', '/root/vmlinux.strip'], ['ramdisk', 
'/root/ramdisk.image.gz'], ['args', 'xencons=tty128 console=tty128']], 
'on_poweroff': 'destroy', 'bootloader_args': None, 'cpus': None, 'on_crash': 
'restart', 'name': 'S-1160762357.95', 'backend': [], 'vcpus': 1, 'cpu_weight': 
1.0, 'features': None, 'vcpu_avail': 1, 'memory': 64, 'device': [], 'maxmem': 
64, 'cpu': None, 'uuid': '052ea7ad-8567-74dd-3096-6e447cb7f059'}
[2006-10-14 12:44:23 xend.XendDomainInfo 8887] DEBUG (XendDomainInfo:1247) 
XendDomainInfo.construct: None
[2006-10-14 12:44:23 xend.XendDomainInfo 8887] DEBUG (XendDomainInfo:714) 
Storing VM details: {'shadow_memory': '1', 'powerpc_rma_log': '26', 'on_crash': 
'restart', 'on_reboot': 'restart', 'image': (linux (kernel 
/root/vmlinux.strip) (ramdisk /root/ramdisk.image.gz) (args 'xencons=tty128 
console=tty128')), 'on_poweroff': 'destroy', 'name': 'S-1160762357.95', 
'xend/restart_count': '0', 'vcpus': '1', 'vcpu_avail': '1', 'memory': '64', 
'maxmem': '64', 'uuid': '052ea7ad-8567-74dd-3096-6e447cb7f059'}
[2006-10-14 12:44:23 xend.XendDomainInfo 8887] DEBUG (XendDomainInfo:749) 
Storing domain details: {'console/port': '2', 'name': 'S-1160762357.95', 
'console/limit': '1048576', 'vm': '/vm/052ea7ad-8567-74dd-3096-6e447cb7f059', 
'domid': '6', 'cpu/0/availability': 'online', 'memory/target': '65536', 
'store/port': '1'}
[2006-10-14 12:44:23 xend 8887] DEBUG (balloon:127) Balloon: 215472 KiB free; 
need 65536; done.
[2006-10-14 12:44:23 xend 8887] DEBUG (XendCheckpoint:155) [xc_restore]: 
/usr/lib/xen/bin/xc_restore 4 6 16384 1 2
[2006-10-14 12:44:23 xend 8887] ERROR (XendCheckpoint:236) xc_linux_restore 
start: max_pfn = 16384
[2006-10-14 12:44:23 xend 8887] ERROR (XendCheckpoint:236) Increased domain 
reservation by 65536 KB
[2006-10-14 12:44:23 xend 8887] ERROR (XendCheckpoint:236) Reloading memory 
pages:   0%
[2006-10-14 12:44:23 xend 8887] ERROR (XendCheckpoint:236) xc_linux_restore: 
page 0/16384 at 2d97
[2006-10-14 12:44:23 xend 8887] ERROR (XendCheckpoint:236) xc_linux_restore: 
page 1/16384 at 2d96
[2006-10-14 12:44:23 xend 8887] ERROR (XendCheckpoint:236) xc_linux_restore: 
page 2/16384 at 2d95
[2006-10-14 12:44:23 xend 8887] ERROR (XendCheckpoint:236) xc_linux_restore: 
page 3/16384 at 2d94
[2006-10-14 12:44:23 xend 8887] ERROR (XendCheckpoint:236) xc_linux_restore: 
page 4/16384 at 2d9f
[2006-10-14 12:44:23 xend 8887] ERROR (XendCheckpoint:236) xc_linux_restore: 
page 5/16384 at 2d9e

Re: [XenPPC] Where is htab?

2006-10-08 Thread poff
 Looking at xlate.c, the htab and entries are access in following way:

 struct vcpu *v = get_current();
 struct domain *d = v-domain;
 struct domain_htab *htab = d-arch.htab;
 union pte volatile *pte;

 pte = htab-map[ptex];

 htab-map is the HTAB, remember it is treated like an array.



 I've inserted this code into xen/arch/powerpc/domctl.c, just to see  
 if I could recognize
 the htab before mapping back to user space. The 'current domain'  
 has some entries that
 could be htab. However, the guest domain always contains 0s.


 current domain:
 (XEN) XEN_DOMCTL_getshadowlist:
 (XEN) dd-arch.htab.map: 0x0200
 (XEN) rma_base_mfn: 0x4000   rma_size_mfn:  
 0x4000
 (XEN) pte: 0x02000800  vsid: 0x181a80047001  rpn:  
 0x0349b196
 (XEN) pte: 0x02000810  vsid: 0x  rpn:  
 0x
 (XEN) pte: 0x02000820  vsid: 0x  rpn:  
 0x

 guest domain:
 (XEN) d-arch.htab.map: 0x0010
 (XEN) rma_base_mfn2: 0x0001c000   rma_size_mfn2:  
 0x4000
 (XEN) pte: 0x00100800  vsid: 0x  rpn:  
 0x
 (XEN) pte: 0x00100810  vsid: 0x  rpn:  
 0x
 (XEN) pte: 0x00100820  vsid: 0x  rpn:  
 0x

 How early in the guest run is this?

Guest domain is up and running. Printing code is invoked via 'xm save'.


 Remember the h in htab stands for Hash, though it is odd to see a  
 whole PTEG (group of 8 PTEs) to be clear for Linux (and you are only  
 showing 3).



 1) What is the arch.htab.map address? I thought Xen ran with  
 translate off and without RMA?

 Xen runs that way but the domains run in RMA while in Real Mode and  
 transalted (uses htab) when not.
 The when we create a domain we allocate the htab it will remain 0  
 until the domain creates the first entries.  The first entries in  
 Linux are created by the domain while it runs in the RMA.

 -JX

After reading your note, I tried printing all non-zero rpns in guest domain.
There are lots- in fact 'bios' got a watchdog timeout and reverted out of SLOF
while printing...

Think I was spooked yesterday, since even page 0 had no rpn address, 
and I thought every domain had to have 2 or 4 pages setup beginning at 0 ?

Thanks



___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] xm save: adding couple domctl operations to access htab

2006-10-08 Thread poff

 I don't know if I'm off base but have you added appropriate code to 
 linux? specifically arch/powerpc/platforms/xen/hcall.c ?

Yes, this was the problem, but I had been looking at xen/arch/powerpc/hcalls.c,
not realizing that you were pointing-out a different file...
In face hcall.c resides on linux side while hcalls.c is part of xen.
Also was surprise to me that linux was involved in this way...

Somehow when Jimi spelled-out more detail, I finally realized a 2nd file was 
involved.

Anyway, thanks for trying ;-)

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


[XenPPC] Where is htab?

2006-10-07 Thread poff
Looking at xlate.c, the htab and entries are access in following way:

struct vcpu *v = get_current();
struct domain *d = v-domain;
struct domain_htab *htab = d-arch.htab;
union pte volatile *pte;

pte = htab-map[ptex];


I've inserted this code into xen/arch/powerpc/domctl.c, just to see if I could 
recognize
the htab before mapping back to user space. The 'current domain' has some 
entries that
could be htab. However, the guest domain always contains 0s.


current domain:
(XEN) XEN_DOMCTL_getshadowlist:
(XEN) dd-arch.htab.map: 0x0200
(XEN) rma_base_mfn: 0x4000   rma_size_mfn: 0x4000
(XEN) pte: 0x02000800  vsid: 0x181a80047001  rpn: 0x0349b196
(XEN) pte: 0x02000810  vsid: 0x  rpn: 0x
(XEN) pte: 0x02000820  vsid: 0x  rpn: 0x

guest domain:
(XEN) d-arch.htab.map: 0x0010
(XEN) rma_base_mfn2: 0x0001c000   rma_size_mfn2: 0x4000
(XEN) pte: 0x00100800  vsid: 0x  rpn: 0x
(XEN) pte: 0x00100810  vsid: 0x  rpn: 0x
(XEN) pte: 0x00100820  vsid: 0x  rpn: 0x


1) What is the arch.htab.map address? I thought Xen ran with translate off and 
without RMA?

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] xm-test can panic Xen on JS20

2006-10-06 Thread poff
Similar panic whenever 'shutdown -h' on JS20 (using local ide for root fs):

...
/dev/hda2 umounted   done
 done
Shutting down MD Raiddone
Stopping udevd:  done
proc umounted
The system will be halted immediately.
Synchronizing SCSI cache for disk sda: 
Shutdown: hdc
Shutdown: hda
Power down.
(XEN) [F960] 004246C4 .debugger_trap_immediate+0x18/0x28
(XEN) [F9E0] 004245E0 .dom0_shutdown+0x20/0xec
(XEN) [FA70] 00405ACC .domain_shutdown+0x44/0x128
(XEN) [FB00] 004232DC .do_sched_op+0x15c/0x2e8
(XEN) [FBF0] 00439388 .hcall_xen+0xc4/0xf0
(XEN) [FC90] 004394A4 .do_hcall+0x54/0x84
(XEN) [FD20] 0044C278 ex_hcall_continued+0xe4/0xf4
(XEN) [00437EC8] 800100017C0802A6
(XEN) SP (60004bd8) is not in xen space
(XEN) program_exception: type: 0x700
(XEN) [ Xen-3.0-unstable ]
(XEN) CPU:    DOMID: 
(XEN) pc 004246c4 msr 90029002
(XEN) lr 004246c4 ctr 0042f15c
(XEN) srr0  srr1 
(XEN) r00: 004246c4 f960 0074cb38 90009002
(XEN) r04:    0001
(XEN) r08: 0075229c 0075229c  00752228
(XEN) r12: 00439450 9080 1007 0001
(XEN) r16: 100a 100aa0b0  fff6
(XEN) r20: 0001   
(XEN) r24:  1001 0001 4000
(XEN) r28: cb5a3b80 fd90 c0542160 f960
(XEN) dar 0xd8008016, dsisr 0x0220
(XEN) hid4 0x6240
(XEN) ---[ backtrace ]---
(XEN) [F9E0] 004245E0 .dom0_shutdown+0x20/0xec
(XEN) [FA70] 00405ACC .domain_shutdown+0x44/0x128
(XEN) [FB00] 004232DC .do_sched_op+0x15c/0x2e8
(XEN) [FBF0] 00439388 .hcall_xen+0xc4/0xf0
(XEN) [FC90] 004394A4 .do_hcall+0x54/0x84
(XEN) [FD20] 0044C278 ex_hcall_continued+0xe4/0xf4
(XEN) [00437EC8] 800100017C0802A6
(XEN) SP (60004bd8) is not in xen space
(XEN) machine_halt called
(XEN) machine_halt failed, manual powercycle required!

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] save/restore: suspending DomU

2006-09-19 Thread poff
 2) How do you 'refresh' python?

Answer: restart xend


___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


[XenPPC] LTC Wiki XenPPC/SLOF

2006-09-18 Thread poff
Have updated LTC Wiki to include http://watgsa.ibm.com/projects/s/slof
as local source for SLOF images. Could you please include local source
for 'update_flash' utility as well (ie copy to //watgsa for examaple?)

Can find this utility at klinux7:/home/reflash/slof/

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] JS20 hangs while 'Quiescing Open Firmware ...'

2006-09-14 Thread poff
 SOL is broken on our older model bladecenter.

 To be clear, this is a problem with _your_specific_ blade center or  
 older models
 if you can use SOL to talk to your linux console without Xen and you  
 cannot _with_ Xen then we need to get to the bottom of that.

SOL is broken on the 'older model' bladecenters - this has nothing to do with 
Xen,
ie SOL does not work at all, Xen or not.

When I place the blade in a newer bladecenter, SOL works ok.

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] JS20 hangs while 'Quiescing Open Firmware ...'

2006-09-13 Thread poff
 sources
mpic: Setting up HT PICs workarounds for U3/U4
mpic:   - HT:01.0 [0xb8] vendor 1022 device 7450 has 4 irqs
mpic:   - HT:02.0 [0xb8] vendor 1022 device 7450 has 4 irqs
mpic:   - HT:03.0 [0xf0] vendor 1022 device 7460 has 24 irqs
PID hash table entries: 1024 (order: 10, 8192 bytes)
Maple: Found RTC at IO 0x1070
Console: colour dummy device 80x25
Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
Memory: 186004k/196608k available (5276k kernel code, 10264k reserved, 1212k 
data, 456k bss, 236k init)
Mount-cache hash table entries: 256
Brought up 1 CPUs
smp_xen_setup_cpu(0)
migration_cost=0
grant table at c3ff
Grant table initialized
NET: Registered protocol family 16
***  : Linux ppc64

***  : 2.6.17-Xen
Failed to request PCI IO region on PCI domain 
IDE Fixup IRQ: Can't find IO-APIC !
IOMMU table initialized, virtual merging enabled
 - maple_pcibios_fixup
 - maple_pcibios_fixup
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 2, 16384 bytes)
TCP established hash table entries: 8192 (order: 5, 131072 bytes)
TCP bind hash table entries: 4096 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 4096)
TCP reno registered
rtas_flash: no firmware flash support
scan-log-dump not implemented on this system
Initializing Cryptographic API
io scheduler noop registered
io scheduler deadline registered (default)
Generic RTC Driver v1.07
RAMDISK driver initialized: 16 RAM disks of 10240K size 1024 blocksize
loop: loaded (max 8 devices)
Intel(R) PRO/1000 Network Driver - version 7.0.38-k4
Copyright (c) 1999-2006 Intel Corporation.
tg3.c:v3.60 (June 17, 2006)
eth0: Tigon3 [partno(none) rev 2003 PHY(serdes)] (PCIX:133MHz:64-bit) 
10/100/1000BaseT Ethernet 00:0d:60:1e:34:40
eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] Split[0] WireSpeed[0] TSOcap[0] 
eth0: dma_rwctrl[769f4000] dma_mask[64-bit]
eth1: Tigon3 [partno(none) rev 2003 PHY(serdes)] (PCIX:133MHz:64-bit) 
10/100/1000BaseT Ethernet 00:0d:60:1e:34:41
eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] Split[0] WireSpeed[0] TSOcap[1] 
eth1: dma_rwctrl[769f4000] dma_mask[64-bit]
Xen virtual console successfully installed as ttyS0
Event-channel device installed.
blkif_init: reqs=64, pages=704, mmap_vstart=0xc0001f80
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
AMD8111: IDE controller at PCI slot :00:04.1
AMD8111: chipset revision 3
AMD8111: :00:04.1 (rev 03) UDMA133 controller
AMD8111: 100% native mode on irq 16
ide0: BM-DMA at 0x8020-0x8027, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x8028-0x802f, BIOS settings: hdc:pio, hdd:pio
hda: TOSHIBA MK4019GAXB, ATA DISK drive
ide0 at 0x8000-0x8007,0x800a on irq 16
hdc: TOSHIBA MK4019GAXB, ATA DISK drive
ide1 at 0x8010-0x8017,0x801a on irq 16
hda: max request size: 128KiB
hda: 78140160 sectors (40007 MB), CHS=65535/16/63
hda: cache flushes supported
 hda: hda1 hda2 hda3
hdc: max request size: 128KiB
hdc: 78140160 sectors (40007 MB), CHS=65535/16/63
hdc: cache flushes supported
 hdc: hdc1 hdc2 hdc3
ipr: IBM Power RAID SCSI Device Driver version: 2.1.3 (March 29, 2006)
scsi0 : scsi_debug, version 1.75 [20050113], dev_size_mb=8, opts=0x0
  Vendor: Linux Model: scsi_debugRev: 0004
  Type:   Direct-Access  ANSI SCSI revision: 05
SCSI device sda: 16384 512-byte hdwr sectors (8 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write back
SCSI device sda: 16384 512-byte hdwr sectors (8 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write back
 sda: unknown partition table
sd 0:0:0:0: Attached scsi disk sda
sd 0:0:0:0: Attached scsi generic sg0 type 0
usbmon: debugfs is not available
ohci_hcd :03:00.0: OHCI Host Controller
ohci_hcd :03:00.0: new USB bus registered, assigned bus number 1
ohci_hcd :03:00.0: irq 19, io mem 0xc010
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
ohci_hcd :03:00.1: OHCI Host Controller
ohci_hcd :03:00.1: new USB bus registered, assigned bus number 2
ohci_hcd :03:00.1: irq 19, io mem 0xc0101000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
USB Universal Host Controller Interface driver v3.0
usbcore: registered new driver usbhid
/home/poff/linux-ppc-2.6-work.hg/drivers/usb/input/hid-core.c: v2.6:USB HID 
core driver
pegasus: v0.6.13 (2005/11/13), Pegasus/Pegasus II USB Ethernet driver
usbcore: registered new driver pegasus
usbcore: registered new driver usbserial
/home/poff/linux-ppc-2.6-work.hg/drivers/usb/serial/usb-serial.c: USB Serial 
support registered for generic
usbcore: registered new driver usbserial_generic
/home/poff/linux-ppc-2.6-work.hg

Re: [XenPPC] JS20 hangs while 'Quiescing Open Firmware ...'

2006-09-13 Thread poff
 If you want ssh, you need init scripts to run, so you're going to need
 to drop the init=/bin/bash here.

Yes, that worked nicely -
Was confused since when booting Dom0 with an nfs root, sshd comes up
even though 'init=/sbin/quickinit noshell' ... looks like quickinit
provides some services.


 2. Looks like system is now sitting with root prompt?
Can ping, but ssh gets 'connection refused'.
(and cannot type at serial port, per usual)

 How is that usual?

I've never been able to type at a serial port, JS21 or JS20.
Thought it was an 'understood feature' (though never been clear to me;-)




___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


[XenPPC] PATCH: Inline assembler for clear_page() and copy_page()

2006-08-25 Thread poff

Following code includes assembler versions of clear_page_cacheable(), by 
Xenidis,
copy_page(), and copy_page_cacheable(). The 'cacheable' versions use 'dcbz' for
clearing cache lines; the target page is assumed to be cacheable. 

This code has been debugged with a small application program on JS21. Also code
has been incorporated into a xen tree and runs on JS21 (though copy_page() is 
not
being used).

note: in some documentation, dcbz is for 32 byte cache lines, dcbzl for 128
However, the crossbuild assembler does not recognize dcbzl. The native assembler
(for building the test application) would accept either dcbz or dcbzl, and in 
either
case the 128 byte cache line was cleared.

note2: in page_alloc.c, one of the three clear_page() calls breaks the system
when changed to clear_page_cacheable().



diff -r 326e6736d92b xen/include/asm-powerpc/page.h
--- a/xen/include/asm-powerpc/page.hMon Aug 21 10:04:37 2006 -0400
+++ b/xen/include/asm-powerpc/page.hFri Aug 25 17:05:22 2006 -0400
@@ -70,8 +70,67 @@ typedef struct { unsigned long l1_lo; } 
 #define pfn_to_paddr(pfn)   ((paddr_t)(pfn)  PAGE_SHIFT)
 #define paddr_to_pfn(pa)((unsigned long)((pa)  PAGE_SHIFT))
 
+
 extern void clear_page(void *p);
-extern void copy_page(void *dp, void *sp);
+
+static __inline__ void copy_page(void *dp, void *sp)
+{
+   unsigned long dwords, dword_size;
+
+   dword_size = 8;
+   dwords = (PAGE_SIZE / dword_size) - 1;
+
+   __asm__ __volatile__(
+   mtctr  %2  # copy_page\n\
+   ld  %2,0(%1)\n\
+   std %2,0(%0)\n\
+1: ldu %2,8(%1)\n\
+   stdu%2,8(%0)\n\
+   bdnz1b
+   : /* no result */
+   : r (dp), r (sp), r (dwords)
+   : %ctr, memory);
+}
+
+/* assumes page, *addr, is cacheable */
+static __inline__ void clear_page_cacheable(void *addr)
+{
+   unsigned long lines, line_size;
+
+   line_size = CACHE_LINE_SIZE;
+   lines = PAGE_SIZE / CACHE_LINE_SIZE;
+
+   __asm__ __volatile__(
+   mtctr  %1  # clear_page\n\
+1:  dcbz   0,%0\n\
+   add %0,%0,%3\n\
+   bdnz1b
+: =r (addr)
+: r (lines), 0 (addr), r (line_size)
+   : %ctr, memory);
+}
+
+/* assumes destination page, *dp, is cacheable */
+static __inline__ void copy_page_cacheable(void *dp, void *sp)
+{
+   unsigned long dwords, dword_size;
+
+   dword_size = 8;
+   dwords = (PAGE_SIZE / dword_size) - 1;
+
+   clear_page_cacheable(dp);
+
+   __asm__ __volatile__(
+   mtctr  %2  # copy_page\n\
+   ld  %2,0(%1)\n\
+   std %2,0(%0)\n\
+1: ldu %2,8(%1)\n\
+   stdu%2,8(%0)\n\
+   bdnz1b
+   : /* no result */
+   : r (dp), r (sp), r (dwords)
+   : %ctr, memory);
+}
 
 #define linear_pg_table linear_l1_table
 

diff -r 326e6736d92b xen/arch/powerpc/mm.c
--- a/xen/arch/powerpc/mm.c Mon Aug 21 10:04:37 2006 -0400
+++ b/xen/arch/powerpc/mm.c Fri Aug 25 17:08:02 2006 -0400
@@ -97,16 +97,6 @@ void clear_page(void *page)
 }
 }
 
-extern void copy_page(void *dp, void *sp)
-{
-if (on_mambo()) {
-extern void *mambo_memcpy(void *,const void *,__kernel_size_t);
-mambo_memcpy(dp, sp, PAGE_SIZE);
-} else {
-memcpy(dp, sp, PAGE_SIZE);
-}
-}
-
 ulong pfn2mfn(struct domain *d, long pfn, int *type)
 {
 ulong rma_base_mfn = page_to_mfn(d-arch.rma_page);


diff -r 326e6736d92b xen/common/page_alloc.c
--- a/xen/common/page_alloc.c   Mon Aug 21 10:04:37 2006 -0400
+++ b/xen/common/page_alloc.c   Fri Aug 25 17:09:12 2006 -0400
@@ -412,13 +412,13 @@ void scrub_heap_pages(void)
 {
 p = page_to_virt(mfn_to_page(pfn));
 memguard_unguard_range(p, PAGE_SIZE);
-clear_page(p);
+clear_page_cacheable(p);
 memguard_guard_range(p, PAGE_SIZE);
 }
 else
 {
 p = map_domain_page(pfn);
-clear_page(p);
+clear_page_cacheable(p);
 unmap_domain_page(p);
 }
 }
@@ -794,7 +794,7 @@ static void page_scrub_softirq(void)
 pg = list_entry(ent, struct page_info, list);
 ent = ent-prev;
 p = map_domain_page(page_to_mfn(pg));
-clear_page(p);
+clear_page(p); /* some pages not 
cacheable? */
 unmap_domain_page(p);
 free_heap_pages(pfn_dom_zone_type(page_to_mfn(pg)), pg, 0);
 }


diff -r 326e6736d92b xen/arch/powerpc/domain.c
--- a/xen/arch/powerpc/domain.c Mon Aug 21 10:04:37 2006 -0400
+++ b/xen/arch/powerpc/domain.c Fri Aug 25 17:07:58 2006 -0400
@@ -79,7 +79,7 @@ int arch_domain_create(struct domain *d)
 
 if (d-domain_id == IDLE_DOMAIN_ID) {
 d-shared_info = (void *)alloc_xenheap_page();
-clear_page(d-shared_info);
+clear_page_cacheable(d-shared_info);
 
 return 0;
 }



[XenPPC] [xenppc-unstable] [POWERPC] RFC: memory clean up

2006-08-22 Thread poff

This code walks the OF dev tree, finding end-of-memory and memory holes.
All memory beyond the hypervisor's RMA is added to domheap. (Previously
only memory upto 1st hole was used.) Finally, parts of setup.c have been
swept into memory.c as cleanup.


diff -r 9c72449e4370 xen/arch/powerpc/setup.c
--- a/xen/arch/powerpc/setup.c  Fri Aug 18 17:52:04 2006 -0500
+++ b/xen/arch/powerpc/setup.c  Tue Aug 22 09:52:03 2006 -0400
@@ -43,6 +43,7 @@
 #include asm/percpu.h
 #include exceptions.h
 #include of-devtree.h
+#include memory.h
 
 #define DEBUG
 unsigned long xenheap_phys_end;
@@ -195,7 +196,7 @@ void startup_cpu_idle_loop(void)
 reset_stack_and_jump(idle_loop);
 }
 
-static ulong free_xenheap(ulong start, ulong end)
+ulong free_xenheap(ulong start, ulong end)
 {
 start = ALIGN_UP(start, PAGE_SIZE);
 end = ALIGN_DOWN(end, PAGE_SIZE);
@@ -217,10 +218,6 @@ static void __init __start_xen(multiboot
 {
 char *cmdline;
 module_t *mod = (module_t *)((ulong)mbi-mods_addr);
-ulong heap_start;
-ulong eomem = 0;
-ulong heap_size = 0;
-ulong bytes = 0;
 ulong freemem;
 ulong dom0_start, dom0_len;
 ulong initrd_start, initrd_len;
@@ -267,61 +264,8 @@ static void __init __start_xen(multiboot
 mod[mbi-mods_count-1].mod_end = 0;
 --mbi-mods_count;
 
-printk(Physical RAM map:\n);
-
-/* lets find out how much memory there is */
-while (bytes  mbi-mmap_length) {
-u64 end;
-u64 addr;
-u64 size;
-
-memory_map_t *map = (memory_map_t *)((ulong)mbi-mmap_addr + bytes);
-addr = ((u64)map-base_addr_high  32) | (u64)map-base_addr_low;
-size = ((u64)map-length_high  32) | (u64)map-length_low;
-end = addr + size;
-
-printk( %016lx - %016lx (usable)\n, addr, end);
-
-if (addr  eomem) {
-printk(found a hole skipping remainder of memory at:\n
-%016lx and beyond\n, addr);
-break;
-}
-if (end  eomem) {
-eomem = end;
-}
-bytes += map-size + 4;
-}
-
-printk(System RAM: %luMB (%lukB)\n, eomem  20, eomem  10);
-
-/* top of memory */
-max_page = PFN_DOWN(ALIGN_DOWN(eomem, PAGE_SIZE));
-total_pages = max_page;
-
-/* Architecturally the first 4 pages are exception hendlers, we
- * will also be copying down some code there */
-heap_start = 4  PAGE_SHIFT;
-if (oftree  (ulong)_start)
-heap_start = ALIGN_UP(oftree_end, PAGE_SIZE);
-
-heap_start = init_boot_allocator(heap_start);
-if (heap_start  (ulong)_start) {
-panic(space below _start (%p) is not enough memory 
-  for heap (0x%lx)\n, _start, heap_start);
-}
-
-/* we give the first RMA to the hypervisor */
-xenheap_phys_end = rma_size(cpu_rma_order());
-
-/* allow everything else to be allocated */
-init_boot_pages(xenheap_phys_end, eomem);
-init_frametable();
-end_boot_allocator();
-
-/* Add memory between the beginning of the heap and the beginning
- * of out text */
-free_xenheap(heap_start, (ulong)_start);
+xenheap_phys_end = setup_memory();
+
 freemem = ALIGN_UP((ulong)_end, PAGE_SIZE);
 
 for (i = 0; i  mbi-mods_count; i++) {
@@ -355,10 +299,6 @@ static void __init __start_xen(multiboot
 /* make sure the OF devtree is good */
 ofd_walk((void *)oftree, OFD_ROOT, ofd_dump_props, OFD_DUMP_ALL);
 #endif
-
-heap_size = xenheap_phys_end - heap_start;
-
-printk(Xen heap: %luMB (%lukB)\n, heap_size  20, heap_size  10);
 
 percpu_init_areas();
 


./xen/arch/powerpc/memory.c:

#include xen/sched.h
#include xen/mm.h
#include of-devtree.h
#include oftree.h
#include memory.h

typedef ulong (*walk_mem_fn)(ulong *membuf, int entries, ulong ret, ulong arg);

static ulong ofd_walk_mem(void *m, walk_mem_fn fn, ulong arg);
static ulong end_of_mem(ulong *membuf, int entries, ulong end, ulong unused);
static ulong init_unused_pages(ulong *membuf, int entries, ulong ret, ulong 
freemem);


ulong setup_memory(void)
{
ulong eomem, holes;
ulong heap_start, xenheap_phys_end, heap_size;

printk(Physical RAM map:\n);

/* lets find out how much memory there is */
eomem = ofd_walk_mem((void *)oftree, end_of_mem, 0 /*unused*/);
if (eomem == 0){
panic(ofd_walk_mem((void *)oftree, end_of_mem, 0 /*unused*/) 
failed\n);
}
printk(End of RAM: %luMB (%lukB)\n, eomem  20, eomem  10);

/* top of memory */
max_page = PFN_DOWN(ALIGN_DOWN(eomem, PAGE_SIZE));

/* Architecturally the first 4 pages are exception hendlers, we
 * will also be copying down some code there */
heap_start = 4  PAGE_SHIFT;
if (oftree  (ulong)_start)
heap_start = ALIGN_UP(oftree_end, PAGE_SIZE);

heap_start = init_boot_allocator(heap_start);
if (heap_start  (ulong)_start) {
panic(space below _start (%p) is not enough memory 
  for heap (0x%lx)\n, _start, heap_start);
}

/* we give the first 

Re: [XenPPC] [xenppc-unstable] [POWERPC] Enable gcc -Wshadow and fix the warnings

2006-08-21 Thread poff

 wow, thats a little unexpected, what version of gcc is that?
 anyway, does the following patch solve the issue?
 -JX

 diff -r dbe9249ba61b xen/include/asm-powerpc/current.h
 --- a/xen/include/asm-powerpc/current.h   Sun Aug 20 13:28:45 2006 -0400
 +++ b/xen/include/asm-powerpc/current.h   Sun Aug 20 21:11:22 2006 -0400
 @@ -66,7 +66,7 @@ static inline struct cpu_user_regs *gues
 static inline void reset_stack_and_jump(void (*f)(void))
 {
 -void _reset_stack_and_jump(void (*f)(void), struct cpu_user_regs  
 *regs);
 +void _reset_stack_and_jump(void (*)(void), struct cpu_user_regs *);
   struct cpu_user_regs *regs = guest_cpu_user_regs();
 #ifdef TRACK_RESUME


Yes, this patch solved the problem.
Yet another shadow problem (this seems to be the last one):

powerpc64-unknown-linux-gnu-gcc -m64 -ffreestanding -fno-builtin -fno-common 
-fno-strict-aliasing -iwithprefix include -Wall -Werror -pipe 
-I/home/poff/xenppc-unstable-work7.hg/xen/include 
-I/home/poff/xenppc-unstable-work7.hg/xen/include/asm-powerpc/mach-generic 
-I/home/poff/xenppc-unstable-work7.hg/xen/include/asm-powerpc/mach-default 
-Wpointer-arith -Wredundant-decls -Wpacked -msoft-float -O2 -O0 -g -D__XEN__ 
-DVERBOSE -DCRASH_DEBUG -Wundef -Wmissing-prototypes -Wmissing-declarations 
-Wshadow -c dart.c -o dart.o
In file included from dart.c:29:
oftree.h:28: warning: declaration of 'oftree' shadows a global declaration
oftree.h:24: warning: shadowed declaration is here
make[3]: *** [dart.o] Error 1


gcc version:

powerpc64-unknown-linux-gnu-gcc -v
Reading specs from 
/opt/crosstool/powerpc64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/lib/gcc/powerpc64-unknown-linux-gnu/3.4.1/specs
Configured with: 
/home/poff/crosstool-0.28-rc35/build/powerpc64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/gcc-3.4.1/configure
 --target=powerpc64-unknown-linux-gnu --host=i686-host_pc-linux-gnu 
--prefix=/opt/crosstool/powerpc64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3 
--disable-multilib 
--with-sysroot=/opt/crosstool/powerpc64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/powerpc64-unknown-linux-gnu/sys-root
 
--with-local-prefix=/opt/crosstool/powerpc64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/powerpc64-unknown-linux-gnu/sys-root
 --disable-nls --enable-threads=posix --enable-symvers=gnu 
--enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 
--enable-long-long
Thread model: posix
gcc version 3.4.1

-- 

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] [xenppc-unstable] [POWERPC] Enable gcc -Wshadow and fix the warnings

2006-08-20 Thread poff

Addition of -Wshadow generates warnings when compiling powerpc64/asm-offsets.c

 diff -r 0af18fd083ed -r b10e48a5d1e3 xen/arch/powerpc/Makefile
 --- a/xen/arch/powerpc/Makefile   Fri Aug 18 05:00:37 2006 -0400
 +++ b/xen/arch/powerpc/Makefile   Fri Aug 18 05:17:14 2006 -0400
 @@ -47,6 +47,7 @@ obj-y += elf32.o
  # These are extra warnings like for the arch/ppc directory but may not
  # allow the rest of the tree to build.
  PPC_C_WARNINGS += -Wundef -Wmissing-prototypes -Wmissing-declarations
 +PPC_C_WARNINGS += -Wshadow
  CFLAGS += $(PPC_C_WARNINGS)

make -f /home/poff/xenppc-unstable-work7.hg/xen/Rules.mk -C arch/powerpc 
asm-offsets.s
make[2]: Entering directory 
`/home/poff/xenppc-unstable-work7.hg/xen/arch/powerpc'
powerpc64-unknown-linux-gnu-gcc -m64 -ffreestanding -fno-builtin -fno-common 
-fno-strict-aliasing -iwithprefix include -Wall -Werror -pipe 
-I/home/poff/xenppc-unstable-work7.hg/xen/include 
-I/home/poff/xenppc-unstable-work7.hg/xen/include/asm-powerpc/mach-generic 
-I/home/poff/xenppc-unstable-work7.hg/xen/include/asm-powerpc/mach-default 
-Wpointer-arith -Wredundant-decls -Wpacked -msoft-float -O2 -O0 -g -D__XEN__ 
-DVERBOSE -DCRASH_DEBUG -Wundef -Wmissing-prototypes -Wmissing-declarations 
-Wshadow -S -o asm-offsets.s powerpc64/asm-offsets.c
In file included from 
/home/poff/xenppc-unstable-work7.hg/xen/include/asm/smp.h:26,
 from 
/home/poff/xenppc-unstable-work7.hg/xen/include/xen/smp.h:13,
 from 
/home/poff/xenppc-unstable-work7.hg/xen/include/asm/spinlock.h:25,
 from 
/home/poff/xenppc-unstable-work7.hg/xen/include/xen/spinlock.h:39,
 from 
/home/poff/xenppc-unstable-work7.hg/xen/include/xen/sched.h:7,
 from powerpc64/asm-offsets.c:9:
/home/poff/xenppc-unstable-work7.hg/xen/include/asm/current.h: In function 
`reset_stack_and_jump':
/home/poff/xenppc-unstable-work7.hg/xen/include/asm/current.h:69: warning: 
declaration of 'f' shadows a parameter
/home/poff/xenppc-unstable-work7.hg/xen/include/asm/current.h:67: warning: 
shadowed declaration is here
make[2]: *** [asm-offsets.s] Error 1

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel


Re: [XenPPC] xend error messages

2006-08-20 Thread poff

We have xen running on an Intel blade with SuSE10; may be helpful to view 
scripts  logs...

___
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel