From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [RFC PATCH v3 0/4] Real mode interrupt injection Date: Mon, 16 Aug 2010 11:51:57 +0300 Message-ID: <4C68FC2D.5070208@redhat.com> References: <1281908823-4505-1-git-send-email-m.gamal005@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, mtosatti@redhat.com To: Mohammed Gamal Return-path: Received: from mx1.redhat.com ([209.132.183.28]:7817 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752474Ab0HPIwC (ORCPT ); Mon, 16 Aug 2010 04:52:02 -0400 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On 08/16/2010 02:37 AM, Mohammed Gamal wrote: > > Here is a full trace of a MINIX guest since bootup. Looks like we get > stuck somewhere in the BIOS. > https://docs.google.com/leaf?id=0B9UodZT1IuENMzJhNWQxM2YtYzE3YS00YWY4LTk2YTgtZWY3ODNhMWUxMDkx&sort=name&layout=list&num=50 > qemu-system-x86-28953 [000] 1927.399942: kvm_inj_virq: irq 16 > qemu-system-x86-28953 [000] 1927.399949: > kvm_inject_realmode_interrupt: cs=c000 > qemu-system-x86-28953 [000] 1927.399951: > kvm_inject_realmode_interrupt: eip=40a3 > qemu-system-x86-28953 [000] 1927.399957: > kvm_inject_realmode_interrupt: cs=c000 > qemu-system-x86-28953 [000] 1927.399958: > kvm_inject_realmode_interrupt: eip=8339 > qemu-system-x86-28953 [000] 1927.399960: kvm_entry: vcpu 0 > qemu-system-x86-28953 [000] 1927.399965: kvm_exit: reason > EXCEPTION_NMI rip 0x8339 > qemu-system-x86-28953 [000] 1927.399966: kvm_page_fault: address > c8339 error_code 1d > qemu-system-x86-28953 [000] 1927.399970: kvm_entry: vcpu 0 > qemu-system-x86-28953 [000] 1927.399975: kvm_exit: reason > IO_INSTRUCTION rip 0x67d9 > qemu-system-x86-28953 [000] 1927.399976: kvm_pio: pio_read at 0x3c4 > size 2 count 1 > qemu-system-x86-28953 [000] 1927.399985: kvm_entry: vcpu 0 > qemu-system-x86-28953 [000] 1927.399991: kvm_exit: reason > EXCEPTION_NMI rip 0x3d4 This is bogus, it's in the middle of an instruction: f93d1: 2e 67 8b 9a 00 00 f1 addr32 mov %cs:-0xf0000(%edx),%bx f93d8: ff f93d9: 66 0f b7 eb movzwl %bx,%ebp Everything after that is invalid. So we need to know how we got to rip = 0x3d4, it looks like an I/O port used by vga. Please rerun with emulation on all real mode instructions. > qemu-system-x86-28953 [000] 1927.399992: kvm_page_fault: address > f93d4 error_code 1d > qemu-system-x86-28953 [000] 1927.399996: kvm_entry: vcpu 0 > qemu-system-x86-28953 [000] 1927.400000: kvm_exit: reason > EXCEPTION_NMI rip 0x0 > qemu-system-x86-28953 [000] 1927.400003: kvm_inj_exception: #DB (0x0) > qemu-system-x86-28953 [000] 1927.400005: > kvm_inject_realmode_interrupt: cs=fff1 > qemu-system-x86-28953 [000] 1927.400006: > kvm_inject_realmode_interrupt: eip=0 > qemu-system-x86-28953 [000] 1927.400011: > kvm_inject_realmode_interrupt: cs=f000 > qemu-system-x86-28953 [000] 1927.400012: > kvm_inject_realmode_interrupt: eip=ff53 > qemu-system-x86-28953 [000] 1927.400014: kvm_entry: vcpu 0 -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.