From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH 2/6] KVM: x86: decouple irqchip_in_kernel() and pic_irqchip()
Date: Thu, 24 Nov 2016 18:21:04 +0100 [thread overview]
Message-ID: <20161124172104.GA17619@potion> (raw)
In-Reply-To: <2093812530.1733849.1480006551335.JavaMail.zimbra@redhat.com>
2016-11-24 11:55-0500, Paolo Bonzini:
>> irqchip_in_kernel() tried to save a bit by reusing pic_irqchip(), but it
>> just complicated the code.
>> Add kvm->arch.irqchip_kvm that matches kvm->arch.irqchip_split.
>> (Turning them into an exclusive type would be nicer.)
>
> Then do it. ;)
It is hard to name! :)
I would squash something like this if the names were ok:
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 929228ec2839..726235f0e3f3 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -706,6 +706,12 @@ struct kvm_hv {
HV_REFERENCE_TSC_PAGE tsc_ref;
};
+enum kvm_kernel_irqchip {
+ KVM_IRQCHIP_NONE,
+ KVM_IRQCHIP_KVM, /* created in KVM_CREATE_IRQCHIP */
+ KVM_IRQCHIP_SPLIT, /* created in KVM_CAP_SPLIT_IRQCHIP */
+};
+
struct kvm_arch {
unsigned int n_used_mmu_pages;
unsigned int n_requested_mmu_pages;
@@ -778,8 +784,7 @@ struct kvm_arch {
u64 disabled_quirks;
- bool irqchip_kvm;
- bool irqchip_split;
+ enum kvm_kernel_irqchip irqchip;
u8 nr_reserved_ioapic_pins;
bool disabled_lapic_found;
diff --git a/arch/x86/kvm/irq.h b/arch/x86/kvm/irq.h
index a80515e38645..f90ca9e0affc 100644
--- a/arch/x86/kvm/irq.h
+++ b/arch/x86/kvm/irq.h
@@ -93,12 +93,12 @@ static inline int pic_in_kernel(struct kvm *kvm)
static inline int irqchip_split(struct kvm *kvm)
{
- return kvm->arch.irqchip_split;
+ return kvm->arch.irqchip == KVM_IRQCHIP_SPLIT;
}
static inline int irqchip_kvm(struct kvm *kvm)
{
- return kvm->arch.irqchip_kvm;
+ return kvm->arch.irqchip == KVM_IRQCHIP_KVM;
}
static inline int irqchip_in_kernel(struct kvm *kvm)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 4c364a13b17c..99c63b73dd35 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3834,7 +3834,7 @@ static int kvm_vm_ioctl_enable_cap(struct kvm *kvm,
goto split_irqchip_unlock;
/* Pairs with irqchip_in_kernel. */
smp_wmb();
- kvm->arch.irqchip_split = true;
+ kvm->arch.irqchip = KVM_IRQCHIP_SPLIT;
kvm->arch.nr_reserved_ioapic_pins = cap->args[0];
r = 0;
split_irqchip_unlock:
@@ -3931,7 +3931,7 @@ long kvm_arch_vm_ioctl(struct file *filp,
}
/* Write kvm->irq_routing before enabling irqchip_in_kernel. */
smp_wmb();
- kvm->arch.irqchip_kvm = true;
+ kvm->arch.irqchip = KVM_IRQCHIP_KVM;
create_irqchip_unlock:
mutex_unlock(&kvm->lock);
break;
next prev parent reply other threads:[~2016-11-24 17:21 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-24 16:31 [PATCH 0/6] KVM: x86: minor irqchip improvements (API change) Radim Krčmář
2016-11-24 16:31 ` [PATCH 1/6] KVM: x86: do allow kvm irqchip with split irqchip Radim Krčmář
2016-11-24 16:31 ` [PATCH 2/6] KVM: x86: decouple irqchip_in_kernel() and pic_irqchip() Radim Krčmář
2016-11-24 16:55 ` Paolo Bonzini
2016-11-24 17:21 ` Radim Krčmář [this message]
2016-11-25 8:59 ` Paolo Bonzini
2016-11-25 17:11 ` Radim Krčmář
2016-11-25 17:22 ` Paolo Bonzini
2016-11-24 16:31 ` [PATCH 3/6] KVM: x86: make pic setup code look like ioapic setup Radim Krčmář
2016-11-24 16:31 ` [PATCH 4/6] KVM: x86: refactor pic setup in kvm_set_routing_entry Radim Krčmář
2016-11-24 16:31 ` [PATCH 5/6] KVM: x86: prevent setup of invalid routes Radim Krčmář
2016-11-24 16:31 ` [PATCH 6/6] KVM: x86: simplify conditions with split/kvm irqchip Radim Krčmář
2016-11-24 16:58 ` [PATCH 0/6] KVM: x86: minor irqchip improvements (API change) Paolo Bonzini
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=20161124172104.GA17619@potion \
--to=rkrcmar@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
/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: link
Be 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.