> I have tried to add "-B ata-dma-enabled=0", then > previous warnning has disappeared, but one new issue > appears: the guest will reboot again and again. > I got following message from screen: > > panic[cpu0]/thread=f502c360: Processor does not support PAE > > f50574dc unix:mmu_init+380 (0, f4c00010, f502ba) > f5057528 unix:startup_memlist+da (f5057540, f4d38b9a, ) > f5057530 unix:startup+26 (f4c00010, f50532c8, ) > f5057540 genunix:main+1e ()
Are you sure that the "-B ata-dma-enabled=0" kernel argument affects whether or not you get that "Processor does not support PAE" panic ? Are you trying to boot a PV or a HVM domain? The ata driver timeout warnings should be printed much later, when the root filesystem is going to be mounted. The above "Processor does not support PAE" panic should happen much earlier, before the root filesystem gets mounted. So I don't expect that "-B ata-dma-enabled=0" affects the panic from mmu_init(). What kind of processor is installed in your system? Problem under Xen seems to be that the hypervisor was compiled to emulate a 3-level mmu (similar to an x86 cpu with PAE support), the Solaris kernel has already decided to use the 3-level code, but later on in mmu_init() checks whether the processor's CPUID instruction reports the presence of the PAE mmu feature. With old processors (Pentium-M, Pentium-II, old AMD Athlons) the PAE mmu feature isn't present. http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/i86pc/vm/hat_i86.c#526 526 if (mmu.pae_hat && (x86_feature & X86_PAE) == 0) 527 panic("Processor does not support PAE"); IMO, under the hypervisor we shouldn't panic here. For my Tecra S1 laptop with Pentium-M cpu (which has no PAE support), I've changed that panic into a cmn_err warning and just continue. Works just fine, both for an OpenSolaris dom0 and OpenSolaris PV domUs. The other option is to compile and install a new xen hypervisor which has the 3-level mmu support removed. For a quick test you can also try to boot Solaris under debugger control and patch out that "(x86_feature & X86_PAE) == 0" test. Boot the kernel with options "-kd", disassemble the code at location "mmu_init+13f": [0]> mmu_init+13f::dis mmu_init+0xfd: cmpl $0x0,0xf502c06c <mmu+0x34> mmu_init+0x104: jne +0x25 <mmu_init+0x12b> mmu_init+0x106: cmpl $0x20,%ebx mmu_init+0x109: jbe +0xa <mmu_init+0x115> mmu_init+0x10b: movl $0xfffff,0xf502c048 <mmu+0x10> mmu_init+0x115: movl $0x4,0xf502c088 <mmu+0x50> mmu_init+0x11f: movl $0x2,0xf502c08c <mmu+0x54> mmu_init+0x129: jmp +0x24 <mmu_init+0x14f> mmu_init+0x12b: movl $0x8,0xf502c088 <mmu+0x50> mmu_init+0x135: movl $0x3,0xf502c08c <mmu+0x54> mmu_init+0x13f: movl 0xf5000774,%eax <x86_feature> <<<<<<<<<<<<<<<< mmu_init+0x144: andl $0x200,%eax <<<<<<<<<<<<<<<< mmu_init+0x149: je +0x227 <mmu_init+0x376> <<<<<<<<<<<<<<<< mmu_init+0x14f: movl 0xf5000774,%eax <x86_feature> mmu_init+0x154: andl $0x400,%eax mmu_init+0x159: je +0x229 <mmu_init+0x388> mmu_init+0x15f: cmpl $0x0,0xf5000a48 <kbm_largepage_support> mmu_init+0x166: jne +0xe <mmu_init+0x176> mmu_init+0x168: xorl %eax,%eax mmu_init+0x16a: movl %eax,0xf502c054 <mmu+0x1c> mmu_init+0x16f: movl %eax,0xf502c058 <mmu+0x20> Changing that "andl $0x200,%eax" at "mmu_init+0x144" into an "orl $0x200,%eax" would we a way to disable the X86_PAE feature test: [0]> mmu_init+0x144?w d mmu_init+0x144: 0x25 = 0xd [0]> mmu_init+0x13f::dis ... mmu_init+0x13f: movl 0xf5000774,%eax <x86_feature> mmu_init+0x144: orl $0x200,%eax mmu_init+0x149: je +0x227 <mmu_init+0x376> ... Now try to start the kernel with the "::cont" command: [0]> ::cont This message posted from opensolaris.org _______________________________________________ xen-discuss mailing list [email protected]
