8 messages in com.xensource.lists.xen-ia64-develRe: [Xen-ia64-devel] GET_THIS_PADDR a...
FromSent OnAttachments
Horms27 Jun 2007 02:59 
tgin...@free.fr27 Jun 2007 05:18 
Horms27 Jun 2007 06:38 
tgin...@free.fr27 Jun 2007 08:30 
Horms27 Jun 2007 18:11 
Tristan Gingold27 Jun 2007 20:07 
Tristan Gingold27 Jun 2007 20:14 
Horms27 Jun 2007 21:17 
Subject:Re: [Xen-ia64-devel] GET_THIS_PADDR appears to be broken
From:tgin...@free.fr (tgin@free.fr)
Date:06/27/2007 05:18:57 AM
List:com.xensource.lists.xen-ia64-devel

Quoting Horms <hor@verge.net.au>:

GET_THIS_PADDR() doesn't appear to work correclty on xen-ia64-unstable.hg 15165:96331db61e47

Long-winded description of why

cpu_data = 0xf000000004410000 ia64_tpa(cpu_data) = 0x0000000004410000 __per_cpu_start = 0x0003ffffffff0000

ia64_set_kr(IA64_KR_PER_CPU_DATA, ia64_tpa(cpu_data) - (long) __per_cpu_start); ar.k3 = ia64_tpa(cpu_data) - __per_cpu_start; = 0x0000000004410000 - 0xf000000004410000 = 0x0f00000004420000 # N.B Underflow

I am lost here :-( I though ar.kX were reserved by the domains.

...

Solution 1

... /home/horms/work/xen/xen-ia64-unstable.hg/xen/arch/ia64/linux-xen/mca_asm.S:271:

relocation truncated to fit: IMM22 against symbol `per_cpu__ia64_mca_pal_base' defined in .data.percpu section in /home/horms/work/xen/xen-ia64-unstable.hg/xen/arch/ia64/built_in.o

I'm not really sure what that means, other than that per_cpu__ia64_mca_pal_base aka THIS_CPU(ia64_mca_pal_base) ought to be a 22bit integer, which it isn't.

This is the right reason.

I also noticed that the assembled code on xen and linux differ.

Hue, there are data not code!

Tristan.