Gregory Haskins wrote: > Hi All, > New to the list and project...hoping to make a meaningful contribution here > someday :) > > I am in the process of coming up to speed on the KVM project (very cool BTW). > I found that it was extremely simple to get setup and running. During the > course of setting it up, I found an issue running a SUSE Linux Enterprise > Desktop 10 (x86_64) guest. Basically, if you try to run GRUB, the grub > process dies immediately as it takes an illegal instruction (SIGILL) signal. > Non-symbol stack traces indicate it was in the sync() call in libc. I have > worked around this temporarily by installing LILO under rescue mode...but I > figured what better way to learn the code than to try to debug and fix this > issue. > > My assumption is that an illegal-opcode will cause either a vm-exit or an > illegal-opcode exception down to the host. This in turn would cause either > the KVM_RUN ioctl to return (presumably with an EXCEPTION reason) or a signal > to be delivered to QEMU. Problem is, I am fairly stumped at this point > trying to prove this is true. >
Well, you can't prove it's true, since it's false :) > So my questions are: > > 1) Is this how illegal-op would be handled, or would that stay entirely in > the domain of the guest? > An illegal opcode in the guest is handled normally by generating #UD in the guest, without host involvement at all. > 2) If they do cause a host exception/exit, what is that path that would > handle this? > > I put breakpoints in QEMU in all the obvious places (e.g. looking for > VM-Exits in kvm_run(), host-2-guest exception generation points, and/or > signal handlers). I have also straced QEMU and it doesn't appear to be > taking any signals other than SIGIO. My next step will be to start > sprinkling printfs in the QEMU/KVM code and/or debugging/LTT'ing the kernel, > but I figured I would ping the group for suggestions first. Any pointers out > there? > > Another possibility is that the guest is not generating a real illegal-op and > the bug is that QEMU/KVM is accidentally injecting the exception condition > (due to corruption, etc) and that explains why I cant seem to find it being > explicitly handled. Its too early to say right now, of course. > My guess is that some horrible bug in the mmu is causing the guest to jump to some random page and actually execute undefined opcodes. [btw, running FC5's grub works as expected here] > Thanks! > -Greg > > PS: Other than the grub issue, I have been successfully hosting a 64 bit > SLED guest on KVM for days now, so we are pretty close to being able to add > it to your list of working guests. > > Great! I'm looking forward to that, as well as to your contributions. -- 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 _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel