From: "Michael S. Tsirkin" <mst@redhat.com> To: Alex Williamson <alex.williamson@redhat.com> Cc: "kvm@vger.kernel.org" <kvm@vger.kernel.org>, "eddie.dong@intel.com" <eddie.dong@intel.com>, Alexander Graf <agraf@suse.de>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, "Gabriel L. Somlo" <gsomlo@gmail.com>, pbonzini@redhat.com Subject: [PATCH RFC] kvm: ignore apic polarity Date: Thu, 27 Feb 2014 19:05:49 +0200 [thread overview] Message-ID: <20140227170549.GA23037@redhat.com> (raw) In-Reply-To: <20140216162300.GI30056@redhat.com> apic polarity in KVM does not work: too many things assume active high. Let's not pretend it works, let's just ignore polarity flag. If we ever want to emulate it exactly, this will need a feature flag anyway. Also report this to userspace: this makes it possible to report the interrupt active-low in ACPI, this way we are closer to real hardware. This patch fixes OSX running on KVM. Reported-by: "Gabriel L. Somlo" <gsomlo@gmail.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- Gabriel, could you confirm this fixes OSX for you? If you can play with linux tweaking interrupt to active low, that would be very nice too: it's weekend here. diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 902f124..db29b27 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -674,6 +676,7 @@ struct kvm_ppc_smmu_info { #define KVM_CAP_ARM_EL1_32BIT 93 #define KVM_CAP_SPAPR_MULTITCE 94 #define KVM_CAP_EXT_EMUL_CPUID 95 +#define KVM_CAP_X86_IOAPIC_POLARITY_IGNORED 96 #ifdef KVM_CAP_IRQ_ROUTING diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c index 2d68297..ad170b4 100644 --- a/virt/kvm/ioapic.c +++ b/virt/kvm/ioapic.c @@ -328,7 +328,6 @@ int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int irq_source_id, irq_level = __kvm_irq_line_state(&ioapic->irq_states[irq], irq_source_id, level); entry = ioapic->redirtbl[irq]; - irq_level ^= entry.fields.polarity; if (!irq_level) { ioapic->irr &= ~mask; ret = 1;
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com> To: Alex Williamson <alex.williamson@redhat.com> Cc: "kvm@vger.kernel.org" <kvm@vger.kernel.org>, "eddie.dong@intel.com" <eddie.dong@intel.com>, Alexander Graf <agraf@suse.de>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, "Gabriel L. Somlo" <gsomlo@gmail.com>, pbonzini@redhat.com Subject: [Qemu-devel] [PATCH RFC] kvm: ignore apic polarity Date: Thu, 27 Feb 2014 19:05:49 +0200 [thread overview] Message-ID: <20140227170549.GA23037@redhat.com> (raw) In-Reply-To: <20140216162300.GI30056@redhat.com> apic polarity in KVM does not work: too many things assume active high. Let's not pretend it works, let's just ignore polarity flag. If we ever want to emulate it exactly, this will need a feature flag anyway. Also report this to userspace: this makes it possible to report the interrupt active-low in ACPI, this way we are closer to real hardware. This patch fixes OSX running on KVM. Reported-by: "Gabriel L. Somlo" <gsomlo@gmail.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- Gabriel, could you confirm this fixes OSX for you? If you can play with linux tweaking interrupt to active low, that would be very nice too: it's weekend here. diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 902f124..db29b27 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -674,6 +676,7 @@ struct kvm_ppc_smmu_info { #define KVM_CAP_ARM_EL1_32BIT 93 #define KVM_CAP_SPAPR_MULTITCE 94 #define KVM_CAP_EXT_EMUL_CPUID 95 +#define KVM_CAP_X86_IOAPIC_POLARITY_IGNORED 96 #ifdef KVM_CAP_IRQ_ROUTING diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c index 2d68297..ad170b4 100644 --- a/virt/kvm/ioapic.c +++ b/virt/kvm/ioapic.c @@ -328,7 +328,6 @@ int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int irq_source_id, irq_level = __kvm_irq_line_state(&ioapic->irq_states[irq], irq_source_id, level); entry = ioapic->redirtbl[irq]; - irq_level ^= entry.fields.polarity; if (!irq_level) { ioapic->irr &= ~mask; ret = 1;
next prev parent reply other threads:[~2014-02-27 17:59 UTC|newest] Thread overview: 155+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-01-08 20:02 [Qemu-devel] [PATCH] Add option to disable FDC from ISA bus and ACPI on i386 Gabriel L. Somlo 2014-01-08 20:38 ` Michael S. Tsirkin 2014-01-08 21:09 ` Gabriel L. Somlo 2014-01-15 11:13 ` Paolo Bonzini 2014-01-08 22:13 ` Paolo Bonzini 2014-01-08 23:39 ` Gabriel L. Somlo 2014-01-09 0:12 ` Alexander Graf 2014-01-09 1:51 ` Michael S. Tsirkin 2014-01-09 18:51 ` Gabriel L. Somlo 2014-01-09 20:12 ` Paolo Bonzini 2014-01-09 21:33 ` Michael S. Tsirkin 2014-01-09 21:58 ` Gabriel L. Somlo 2014-01-09 21:44 ` Gabriel L. Somlo 2014-01-10 12:37 ` Paolo Bonzini 2014-01-10 15:35 ` Gabriel L. Somlo 2014-01-10 16:13 ` Igor Mammedov 2014-01-17 21:10 ` [Qemu-devel] RFC: ACPI, HPET._CRS, MacOSX vs. WinXP Gabriel L. Somlo 2014-01-20 11:58 ` Michael S. Tsirkin 2014-01-20 11:57 ` Paolo Bonzini 2014-01-20 12:08 ` Michael S. Tsirkin 2014-01-20 12:16 ` Paolo Bonzini 2014-01-20 18:54 ` Gabriel L. Somlo 2014-01-20 20:31 ` Michael S. Tsirkin 2014-01-20 21:25 ` Gabriel L. Somlo 2014-01-21 10:33 ` Paolo Bonzini 2014-01-21 11:02 ` Michael S. Tsirkin 2014-01-21 11:05 ` Paolo Bonzini 2014-01-21 11:44 ` Michael S. Tsirkin 2014-01-21 18:11 ` [Qemu-devel] [PATCH] ACPI: Add IRQ resource to HPET._CRS on Mac OS X Gabriel L. Somlo 2014-01-21 18:38 ` Michael S. Tsirkin 2014-01-24 16:46 ` Gabriel L. Somlo 2014-01-24 21:18 ` Alexander Graf 2014-01-25 0:09 ` Gabriel L. Somlo 2014-01-25 9:08 ` Alexander Graf 2014-01-27 22:51 ` Gabriel L. Somlo 2014-01-27 23:51 ` Alexander Graf 2014-01-28 16:45 ` [Qemu-devel] OSX guest support review Gabriel L. Somlo 2014-01-28 16:57 ` Michael S. Tsirkin 2014-01-29 14:17 ` Alexander Graf 2014-01-29 21:36 ` [Qemu-devel] OSX guest vs. kvm ioapic polarity Gabriel L. Somlo 2014-01-29 22:18 ` Michael S. Tsirkin 2014-01-30 14:18 ` Gabriel L. Somlo 2014-01-30 19:48 ` Michael S. Tsirkin 2014-01-30 20:21 ` Gabriel L. Somlo 2014-01-30 20:28 ` Michael S. Tsirkin 2014-01-30 20:33 ` Michael S. Tsirkin 2014-01-30 20:44 ` Gabriel L. Somlo 2014-02-11 18:23 ` RFC: ioapic polarity vs. qemu os-x guest Gabriel L. Somlo 2014-02-11 18:23 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-11 19:54 ` Michael S. Tsirkin 2014-02-11 19:54 ` [Qemu-devel] " Michael S. Tsirkin 2014-02-11 21:35 ` Gabriel L. Somlo 2014-02-11 21:35 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-14 21:13 ` Gabriel L. Somlo 2014-02-14 21:13 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-14 21:21 ` Alexander Graf 2014-02-14 21:21 ` [Qemu-devel] " Alexander Graf 2014-02-14 22:06 ` Gabriel L. Somlo 2014-02-14 22:06 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-14 22:13 ` Alexander Graf 2014-02-14 22:13 ` [Qemu-devel] " Alexander Graf 2014-02-16 11:18 ` Michael S. Tsirkin 2014-02-16 11:18 ` [Qemu-devel] " Michael S. Tsirkin 2014-02-16 11:41 ` Michael S. Tsirkin 2014-02-16 11:41 ` [Qemu-devel] " Michael S. Tsirkin 2014-02-16 14:47 ` Alex Williamson 2014-02-16 14:47 ` [Qemu-devel] " Alex Williamson 2014-02-16 16:23 ` Michael S. Tsirkin 2014-02-16 16:23 ` [Qemu-devel] " Michael S. Tsirkin 2014-02-17 17:57 ` Gabriel L. Somlo 2014-02-17 17:57 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-17 18:01 ` Gabriel L. Somlo 2014-02-17 18:01 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-17 18:06 ` Paolo Bonzini 2014-02-17 18:06 ` [Qemu-devel] " Paolo Bonzini 2014-02-17 19:38 ` Gabriel L. Somlo 2014-02-17 19:38 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-18 0:58 ` Gabriel L. Somlo 2014-02-18 0:58 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-27 17:05 ` Michael S. Tsirkin [this message] 2014-02-27 17:05 ` [Qemu-devel] [PATCH RFC] kvm: ignore apic polarity Michael S. Tsirkin 2014-02-27 21:41 ` Gabriel L. Somlo 2014-02-27 21:41 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-27 22:30 ` Paolo Bonzini 2014-02-27 22:30 ` [Qemu-devel] " Paolo Bonzini 2014-02-27 23:13 ` Gabriel L. Somlo 2014-02-27 23:13 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-27 23:31 ` Paolo Bonzini 2014-02-27 23:31 ` [Qemu-devel] " Paolo Bonzini 2014-02-28 4:06 ` [RFC PATCH v2] kvm: x86: ignore ioapic polarity Gabriel L. Somlo 2014-02-28 4:06 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-28 17:23 ` [Qemu-devel] [RFC PATCH] qemu: " Gabriel L. Somlo 2014-02-28 18:57 ` [Qemu-devel] [RFC PATCH v2] " Gabriel L. Somlo 2014-02-28 19:14 ` [Qemu-devel] [PATCH] qemu: x86: report lapic version as 0x14 instead of 0x11 Gabriel L. Somlo 2014-03-01 3:44 ` Alexander Graf 2014-03-01 4:25 ` Gabriel L. Somlo 2014-03-01 5:45 ` Alexander Graf 2014-03-01 14:46 ` Paolo Bonzini 2014-03-02 0:17 ` Gabriel L. Somlo 2014-03-02 8:56 ` Paolo Bonzini 2014-03-02 14:31 ` Michael S. Tsirkin 2014-03-02 16:02 ` Michael S. Tsirkin 2014-03-06 7:50 ` Michael S. Tsirkin 2014-03-02 14:52 ` [Qemu-devel] [RFC PATCH v2] qemu: x86: ignore ioapic polarity Michael S. Tsirkin 2014-03-02 16:15 ` Gabriel L. Somlo 2014-03-02 17:09 ` Michael S. Tsirkin 2014-03-06 7:45 ` Michael S. Tsirkin 2014-03-02 14:55 ` [RFC PATCH v2] kvm: " Michael S. Tsirkin 2014-03-02 14:55 ` [Qemu-devel] " Michael S. Tsirkin 2014-03-13 10:53 ` Paolo Bonzini 2014-03-13 10:53 ` [Qemu-devel] " Paolo Bonzini 2014-03-13 13:43 ` Gabriel L. Somlo 2014-03-13 13:43 ` [Qemu-devel] " Gabriel L. Somlo 2014-02-28 4:55 ` [PATCH RFC] kvm: ignore apic polarity Michael S. Tsirkin 2014-02-28 4:55 ` [Qemu-devel] " Michael S. Tsirkin 2014-02-28 8:10 ` Paolo Bonzini 2014-02-28 8:10 ` [Qemu-devel] " Paolo Bonzini 2014-02-28 8:11 ` Paolo Bonzini 2014-02-28 8:11 ` [Qemu-devel] " Paolo Bonzini 2014-03-01 5:03 ` Alex Williamson 2014-03-01 5:03 ` [Qemu-devel] " Alex Williamson 2014-02-16 11:34 ` RFC: ioapic polarity vs. qemu os-x guest Michael S. Tsirkin 2014-02-16 11:34 ` [Qemu-devel] " Michael S. Tsirkin 2014-02-16 15:12 ` Peter Maydell 2014-02-16 11:37 ` Michael S. Tsirkin 2014-02-16 11:37 ` [Qemu-devel] " Michael S. Tsirkin 2014-01-29 23:13 ` [Qemu-devel] OSX guest vs. kvm ioapic polarity Alexander Graf 2014-01-30 15:56 ` Gabriel L. Somlo 2014-01-28 20:40 ` [Qemu-devel] osx bootloader Gabriel L. Somlo 2014-01-28 22:51 ` BALATON Zoltan 2014-01-29 3:07 ` Gabriel L. Somlo 2014-01-29 11:29 ` BALATON Zoltan 2014-01-29 14:53 ` Gabriel L. Somlo 2014-01-29 15:00 ` Alexander Graf 2014-01-30 0:15 ` BALATON Zoltan 2014-02-01 17:43 ` BALATON Zoltan 2014-02-01 0:38 ` BALATON Zoltan 2014-02-01 10:07 ` Alexander Graf 2014-02-01 14:35 ` [Qemu-devel] OVMF with q35 (was: osx bootloader) BALATON Zoltan 2014-02-01 15:13 ` Alexander Graf 2014-02-01 17:38 ` BALATON Zoltan 2014-02-03 7:47 ` Gerd Hoffmann 2014-02-01 21:19 ` [Qemu-devel] osx bootloader Paolo Bonzini 2014-02-02 2:18 ` BALATON Zoltan 2014-01-29 12:10 ` BALATON Zoltan 2014-01-29 14:20 ` Alexander Graf 2014-01-21 11:38 ` [Qemu-devel] RFC: ACPI, HPET._CRS, MacOSX vs. WinXP Michael S. Tsirkin 2014-01-20 20:23 ` Michael S. Tsirkin 2014-01-20 12:03 ` Igor Mammedov 2014-01-09 8:46 ` [Qemu-devel] [PATCH] Add option to disable FDC from ISA bus and ACPI on i386 Markus Armbruster 2014-01-09 10:24 ` Paolo Bonzini 2014-01-31 19:03 ` [Qemu-devel] [RFC PATCH v2] Add option to switch off FDC Gabriel L. Somlo 2014-01-31 19:39 ` Eric Blake 2014-02-02 13:47 ` Michael S. Tsirkin 2014-02-10 14:10 ` Marcel Apfelbaum
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20140227170549.GA23037@redhat.com \ --to=mst@redhat.com \ --cc=agraf@suse.de \ --cc=alex.williamson@redhat.com \ --cc=eddie.dong@intel.com \ --cc=gsomlo@gmail.com \ --cc=kvm@vger.kernel.org \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.