Hi, all

This patch fix a issue which dom0 cannot boot with dom0_max_vcpus.
Currently LSAPIC IDs are create by xen,
but ACPI SRAT table is the bare table.
So on some boxes node_cpuid[].phys_id are different from cpu_physical_id()s,
and we cannot boot dom0.
I think xen should pass the bare LSAPIC ID to dom0.
How about you?

Detail;

I added the debug printks in build_cpu_to_node_map() on dom0,
and get the following message.

    build_cpu_to_node_map: node_cpuid[0].phys_id=0 cpu_physical_id(0)=0
    build_cpu_to_node_map: node_cpuid[1].phys_id=1024 cpu_physical_id(1)=256
    build_cpu_to_node_map: node_cpuid[2].phys_id=768 cpu_physical_id(2)=512
    build_cpu_to_node_map: node_cpuid[3].phys_id=1792 cpu_physical_id(3)=768
    build_cpu_to_node_map: node_cpuid[4].phys_id=32768 cpu_physical_id(4)=1024
    build_cpu_to_node_map: node_cpuid[5].phys_id=33792 cpu_physical_id(5)=1280
    build_cpu_to_node_map: node_cpuid[6].phys_id=33536 cpu_physical_id(6)=1536
    build_cpu_to_node_map: node_cpuid[7].phys_id=34560 cpu_physical_id(7)=1792
    build_cpu_to_node_map: node_cpuid[8].phys_id=1 cpu_physical_id(8)=-1
    build_cpu_to_node_map: node_cpuid[9].phys_id=1025 cpu_physical_id(9)=-1
    build_cpu_to_node_map: node_cpuid[10].phys_id=769 cpu_physical_id(10)=-1
    build_cpu_to_node_map: node_cpuid[11].phys_id=1793 cpu_physical_id(11)=-1
    build_cpu_to_node_map: node_cpuid[12].phys_id=32769 cpu_physical_id(12)=-1
    build_cpu_to_node_map: node_cpuid[13].phys_id=33793 cpu_physical_id(13)=-1
    build_cpu_to_node_map: node_cpuid[14].phys_id=33537 cpu_physical_id(14)=-1
    build_cpu_to_node_map: node_cpuid[15].phys_id=34561 cpu_physical_id(15)=-1

At that time, some cpus cannot get node id like the below.

    build_cpu_to_node_map: cpu=0 node_cpuid[0].phys_id=0 is , node=0 
    build_cpu_to_node_map: cpu=1, node=-1
    build_cpu_to_node_map: cpu=2, node=-1
    build_cpu_to_node_map: cpu=3 node_cpuid[2].phys_id=768 is , node=0 
    build_cpu_to_node_map: cpu=4 node_cpuid[1].phys_id=1024 is , node=0 
    build_cpu_to_node_map: cpu=5, node=-1
    build_cpu_to_node_map: cpu=6, node=-1
    build_cpu_to_node_map: cpu=7 node_cpuid[3].phys_id=1792 is , node=0 
    build_cpu_to_node_map: cpu=8, node=-1 
    build_cpu_to_node_map: cpu=9, node=-1 
    build_cpu_to_node_map: cpu=10, node=-1 
    build_cpu_to_node_map: cpu=11, node=-1 
    build_cpu_to_node_map: cpu=12, node=-1 
    build_cpu_to_node_map: cpu=13, node=-1 
    build_cpu_to_node_map: cpu=14, node=-1 
    build_cpu_to_node_map: cpu=15, node=-1 


Finally, dom0 get NULL pointer access like the below.

ELILO boot:                                         
Uncompressing Linux... done                         
Loading file initrd-2.6.18-xen.img-takebe...done    
Loading file vmlinuz-2.6.18-xen-takebe...done       
Uncompressing... done                               
 __  __            _____  ___                     _        _     _      
 \ \/ /___ _ __   |___ / / _ \    _   _ _ __  ___| |_ __ _| |__ | | ___ 
  \  // _ \ '_ \    |_ \| | | |__| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
  /  \  __/ | | |  ___) | |_| |__| |_| | | | \__ \ || (_| | |_) | |  __/
 /_/\_\___|_| |_| |____(_)___/    \__,_|_| |_|___/\__\__,_|_.__/|_|\___|
                                                                        
 http://www.cl.cam.ac.uk/netos/xen
 University of Cambridge Computer Laboratory

 Xen version 3.0-unstable ([EMAIL PROTECTED]) () Thu Jul 12 21:57:50 JST 
2007
 Latest ChangeSet: Wed Jul 11 11:32:30 2007 -0600 15558:f536eb8576ee

(XEN) Xen command line: BOOT_IMAGE=scsi0:EFI\redhat\xen.gz-takebe  dom0_mem=8G 
dom0_max_vcpus=8 
(XEN) xen image pstart: 0x4000000, xenheap pend: 0x8000000
(XEN) Xen patching physical address access by offset: 0x0
(XEN) find_memory: efi_memmap_walk returns max_page=5400000
(XEN) Before xen_heap_start: f0000000041c6fb0
(XEN) After xen_heap_start: f000000004c4c000
(XEN) Init boot pages: 0x10000d8 -> 0x4000000.
(XEN) Init boot pages: 0x8000000 -> 0x69cf0000.
(XEN) Init boot pages: 0x6ac6d098 -> 0x6b290010.
(XEN) Init boot pages: 0x6b290070 -> 0x6b293fb0.
(XEN) Init boot pages: 0x6b293ff9 -> 0x6b296000.
(XEN) Init boot pages: 0x6b48d37d -> 0x6b49a010.
(XEN) Init boot pages: 0x6b49a6a0 -> 0x6d000000.
(XEN) Init boot pages: 0x100000000 -> 0x1000000000.
(XEN) Init boot pages: 0x4080000000 -> 0x4100000000.
(XEN) Init boot pages: 0x14004000000 -> 0x15000000000.
(XEN) System RAM: 130688MB (133824512kB)
(XEN) size of virtual frame_table: 326928kB
(XEN) virtual machine to physical table: f6ffffffd6000000 size: 65424kB
(XEN) max_page: 0x5400000
(XEN) allocating frame table/mpt table at mfn 0.
(XEN) Xen heap: 51MB (52944kB)
(XEN) Reserving non-aligned node boundary @ mfn 262144
(XEN) Reserving non-aligned node boundary @ mfn 16908288
(XEN) Domain heap initialised: DMA width 32 bits
(XEN) avail:0x3170074000000000, 
status:0x74000000000,control:0x3170000000000000, 
vm?0x10000000000
(XEN) WARNING: no opcode provided from hardware(0)!!!
(XEN) vm buffer size: 1048576, order: 6
(XEN) vm_buffer: 0xf000000004d00000
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Time init:
(XEN) .... System Time: 217700ns
(XEN) .... scale:              28000001A
(XEN) num_online_cpus=1, max_cpus=64
(XEN) Brought up 16 CPUs
(XEN) xenoprof: using perfmon.
(XEN) perfmon: version 2.0 IRQ 238
(XEN) perfmon: Montecito PMU detected, 27 PMCs, 35 PMDs, 12 counters (47 bits)
(XEN) Maximum number of domains: 63; 18 RID bits per domain
(XEN) *** LOADING DOMAIN 0 ***
(XEN)  Dom0 kernel: 64-bit, lsb, paddr 0x4000000 -> 0x53a6028
(XEN) METAPHYSICAL MEMORY ARRANGEMENT:
(XEN)  Kernel image:  4000000->53a6028
(XEN)  Entry address: 400ff20
(XEN)  Init. ramdisk: 53ac000 len 1f737d
(XEN)  Start info.:   53a8000->53ac000
(XEN) Dom0 max_vcpus=8
(XEN) Dom0: 0xf000000007d54080
(XEN) enable lsapic entry: 0xf00000007f92e7e4
(XEN) enable lsapic entry: 0xf00000007f92e7f0
(XEN) enable lsapic entry: 0xf00000007f92e7fc
(XEN) enable lsapic entry: 0xf00000007f92e808
(XEN) enable lsapic entry: 0xf00000007f92e814
(XEN) enable lsapic entry: 0xf00000007f92e820
(XEN) enable lsapic entry: 0xf00000007f92e82c
(XEN) enable lsapic entry: 0xf00000007f92e838
(XEN) DISABLE lsapic entry: 0xf00000007f92e844
(XEN) DISABLE lsapic entry: 0xf00000007f92e850
(XEN) DISABLE lsapic entry: 0xf00000007f92e85c
(XEN) DISABLE lsapic entry: 0xf00000007f92e868
(XEN) DISABLE lsapic entry: 0xf00000007f92e874
(XEN) DISABLE lsapic entry: 0xf00000007f92e880
(XEN) DISABLE lsapic entry: 0xf00000007f92e88c
(XEN) DISABLE lsapic entry: 0xf00000007f92e898
(XEN) ACPI_INTERRUPT_CPEI disabled for Domain0
(XEN) Domain0 EFI passthrough: ACPI 2.0=0x7f924000 SMBIOS=0xf0000
(XEN) Scrubbing Free RAM: ..................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
.............................!
 ...........................................................
............................................................
............................................................
...............................................................................
done.
(XEN) Xen trace buffers: disabled
(XEN) Std. Loglevel: Errors and warnings
(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to 
Xen).
(XEN) Freed 128kB init memory.
(XEN) vcpu_set_itc: Setting ar.itc is currently disabled (this message is only 
displayed once)
Linux version 2.6.18-xen ([EMAIL PROTECTED]) (gcc バージョン 4.1.
1 20070105 (Red Hat 4.1.1-52)) #6 SMP Fri Jul 13 01:01:11 JST 2007
EFI v1.00 by Xen/ia64: SALsystab=0x2178 ACPI 2.0=0x7f924000 SMBIOS=0xf0000
booting generic kernel on platform dig
Number of logical nodes in system = 2
Number of memory chunks in system = 5
Initial ramdisk at: 0xe0000000053ac000 (2061181 bytes)
SAL 0.1: Xen/ia64 Xen/ia64 version 0.0
SAL: AP wakeup using external interrupt vector 0xf3
No logical to physical processor mapping available
ACPI: Local APIC address c0000000fee00000
iosapic_register_platform_intr: invalid int type 0xff
8 CPUs available, 16 CPUs total
Running on Xen! start_info_pfn=0x14ea nr_pages=524288 flags=0x3
MCA related initialization done
Virtual mem_map starts at 0xa0007ffffdc04000
SMP: Allowing 16 CPUs, 8 hotplug CPUs
Built 2 zonelists.  Total pages: 518806
Kernel command line: rhgb root=LABEL=/ ro
PID hash table entries: 4096 (order: 12, 32768 bytes)
Console: colour VGA+ 80x25
Placing software IO TLB between 0x55a4000 - 0x95a4000
Memory: 8201712k/8300896k available (10915k code, 121360k reserved, 4877k data, 
672k init)
McKinley Errata 9 workaround not needed; disabling it
Dentry cache hash table entries: 1048576 (order: 9, 8388608 bytes)
Inode-cache hash table entries: 524288 (order: 8, 4194304 bytes)
Mount-cache hash table entries: 1024
ACPI: Core revision 20060707
Boot processor id 0x0/0x0
Fixed BSP b0 value from CPU 1
CPU 1: synchronized ITC with CPU 0 (last diff -1 cycles, maxerr 139 cycles)
CPU 2: synchronized ITC with CPU 0 (last diff 4 cycles, maxerr 139 cycles)
CPU 3: synchronized ITC with CPU 0 (last diff 2 cycles, maxerr 391 cycles)
CPU 4: synchronized ITC with CPU 0 (last diff 5 cycles, maxerr 574 cycles)
CPU 5: synchronized ITC with CPU 0 (last diff 5 cycles, maxerr 574 cycles)
CPU 6: synchronized ITC with CPU 0 (last diff 5 cycles, maxerr 574 cycles)
CPU 7: synchronized ITC with CPU 0 (last diff 4 cycles, maxerr 573 cycles)
Brought up 8 CPUs
Total of 8 processors activated (25473.84 BogoMIPS).
Unable to handle kernel NULL pointer dereference (address 0000000000000000)
swapper[1]: Oops 11012296146944 [1]
Modules linked in:

Pid: 1, CPU 0, comm:              swapper
psr : 00001210085a6010 ifs : 8000000000000001 ip  : [<a000000100075431>]    Not 
tainted
ip is at sd_degenerate+0x71/0xc0
unat: 0000000000000000 pfs : 400000000000048a rsc : 0000000000000007
rnat: a000000100041ee0 bsps: 0000000000000000 pr  : 0000000000009941
ldrs: 0000000000000000 ccv : 0000000000000001 fpsr: 0009804c8a70433f
csd : 0000000000000000 ssd : 0000000000000000
b0  : a000000100075510 b6  : a000000100072b60 b7  : a000000100072b60
f6  : 1003e0000000000000000 f7  : 1003e000000000000000e
f8  : 1003e0000000000000200 f9  : 000000000000000000000
f10 : 000000000000000000000 f11 : 000000000000000000000
r1  : a000000101143620 r2  : 0000000000000099 r3  : e0000000011154a8
r8  : 0000000000000000 r9  : 000000000000004d r10 : e000000001115484
r11 : 0000000000000000 r12 : e000000102f0fcf0 r13 : e000000102f08000
r14 : 0000000000000004 r15 : 0000000000000040 r16 : ffffffffffff5430
r17 : 0000000000000030 r18 : 0000000000000030 r19 : 00000000000000fd
r20 : e0000000011054a8 r21 : 0000000000000000 r22 : 


Best Regards,

Akio Takebe

Attachment: fix_apic.patch
Description: Binary data

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

Reply via email to