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

[Xen-devel] about __XEN_VIRT_START and 0x100000



I am a little confused.
in RHEL5.7 xen version , in /boot/ ,there are some files about xen:

.vmlinuz-2.6.18-268.el5xen.hmac   config-2.6.18-268.el5xen      vmlinuz-2.6.18-268.el5xen  xen.gz-2.6.18-268.el5
System.map-2.6.18-268.el5xen    symvers-2.6.18-268.el5xen.gz  xen-syms-2.6.18-268.el5

two important files:xen-syms-2.6.18-268.e15 and xen.gz-2.6.18-268.e15
a) I unzip xen.gz-2.6.18-268.e15 to get xen-2.6.18-268.e15 

I know in grub.conf , we will use this file (xen.gz link to this file)

## readelf -h xen-2.6.18-268.e15
ELF Header:
 Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
 Class:                             ELF32          //why ELF32 ,it should be ELF64
 Data:                              2's complement, little endian
 Version:                           1 (current)
 OS/ABI:                            UNIX - System V
 ABI Version:                       0
 Type:                              EXEC (Executable file)
 Machine:                           Intel 80386
 Version:                           0x1
 Entry point address:               0x100000                //as document , xen-kernel will be load physically address 0x100000 
 Start of program headers:          52 (bytes into file)
 Start of section headers:          980552 (bytes into file)
 Flags:                             0x0
 Size of this header:               52 (bytes)
 Size of program headers:           32 (bytes)
 Number of program headers:         1
 Size of section headers:           40 (bytes)
 Number of section headers:         3
 Section header string table index: 2

b)## readelf -h xen-syms-2.6.18-268.el5
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64         // this is ELF64 .above is ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0xffff828c80100000             //why here is virtual address , and above 0x100000 is physical address ?
  Start of program headers:          64 (bytes into file)
  Start of section headers:          984784 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         1
  Size of section headers:           64 (bytes)
  Number of section headers:         22
  Section header string table index: 21

---------------------------------
my question is that ,  what is xen-syms-2.6.18-268.el5(readelf result is virtual address)  used for ?  it seems that useless. grub.conf seems don't need it.

in xen/arch/x86/boot/head.S:

#undef bootsym_phys
#define sym_phys(sym)     ((sym) - __XEN_VIRT_START
I know all symbols address should be virtual address , its physical address should be minus __XEN_VIRT_START  
if want to check symbols , 
##   objdump -t xen-syms-2.6.18-268.el5 

xen-syms-2.6.18-268.el5:     file format elf64-x86-64

SYMBOL TABLE:
no symbols


thanks very much for your comments!

-Bob Zhang


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

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