From mboxrd@z Thu Jan 1 00:00:00 1970 From: Waba Subject: Re: Solaris 10 doesn't work under KVM Date: Sat, 10 Feb 2007 14:34:43 +0100 Message-ID: <20070210133443.GA13495@waba> References: <20070128144052.GA5069@waba> <45BDDF32.3010607@qumranet.com> <20070201214924.GB7489@waba> <20070202191942.GB8804@amd.com> <20070204183141.GB13914@waba> <45C99EE9.3010306@qumranet.com> <20070207230427.GA7946@waba> <45CAECEB.4000701@qumranet.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Return-path: Content-Disposition: inline In-Reply-To: <45CAECEB.4000701-atKUWr5tajBWk0Htik3J/w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org It took me a while, but I figured it out... nearly! Everything SIGILLs after the fs-root service is started. Its start method does several things, but the problematic bit is replacing the libc with an optimised version (namely, /usr/lib/libc/libc_hwcap1.so.1, which makes use of the SSE, MMX, CMOV, SEP and FPU instruction sets according to file(1)). All these flags are indeed advertised in the CPUID (isainfo -v: sse2 sse fxsr mmx cmov sep cx8 tsc fpu)). If the amd_sysc bit had been present, the hwcap2 version would have been selected by moe(1), I guess (adds SSE2 support and replaces SEP by AMD_SYSC). Disabling the libc replacement in /lib/svc/method/fs-root entirely workarounds the problem. Further investigating, I tricked ls(1) into using the optimised libc through LD_LIBRARY_PATH and obtained a core. mdb(1) told me that the culprit was hiding at libc`memset+0x74. And finally, dis(1) revealed that the faulty instruction is "movups (%esp), %xmm0", a SSE feature. The %xmm0 register is apparently for storage purposes only, as the only instructions used to access it are movups, movntps and movaps. At this point I hope that it makes a lot of sense to you, because I have no idea why it works fine on Avi's Opteron, etc. Let me know if you need any additional debugging. -Waba. ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642