From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: Solaris 10 doesn't work under KVM Date: Sun, 11 Feb 2007 11:14:58 +0200 Message-ID: <45CEDE92.4090204@qumranet.com> 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> <20070210133443.GA13495@waba> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org To: Waba Return-path: In-Reply-To: <20070210133443.GA13495@waba> 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 Waba wrote: > 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). > The guest's cpuid is 100% faked by qemu. > 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. Can you post the host's /proc/cpuinfo? I'll compare it with my opteron. Anyway, good debug job. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- 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