From: alex.williamson@redhat.com (Alex Williamson)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 8/9] KVM: KVM-VFIO: add kvm_vfio_arch_data and accessors
Date: Wed, 27 Aug 2014 09:37:22 -0600 [thread overview]
Message-ID: <1409153842.2906.255.camel@ul30vt.home> (raw)
In-Reply-To: <53FDF7B6.507@linaro.org>
On Wed, 2014-08-27 at 17:22 +0200, Eric Auger wrote:
> On 08/26/2014 09:02 PM, Alex Williamson wrote:
> > On Mon, 2014-08-25 at 15:27 +0200, Eric Auger wrote:
> >> add a pointer to architecture specific data in kvm_vfio struct
> >> add accessors to keep kvm_vfio private
> >>
> >> Signed-off-by: Eric Auger <eric.auger@linaro.org>
> >> ---
> >> arch/arm/include/asm/kvm_host.h | 8 ++++++++
> >> virt/kvm/vfio.c | 21 +++++++++++++++++++++
> >> 2 files changed, 29 insertions(+)
> >>
> >> diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h
> >> index 62cbf5b..4f1edbf 100644
> >> --- a/arch/arm/include/asm/kvm_host.h
> >> +++ b/arch/arm/include/asm/kvm_host.h
> >> @@ -177,6 +177,14 @@ void kvm_vfio_device_put_external_user(struct vfio_device *vdev);
> >> int kvm_vfio_external_get_type(struct vfio_device *vdev);
> >> struct device *kvm_vfio_external_get_base_device(struct vfio_device *vdev);
> >>
> >> +struct kvm_vfio;
> >> +struct kvm_vfio_arch_data;
> >> +void kvm_vfio_device_set_arch_data(struct kvm_vfio *kv,
> >> + struct kvm_vfio_arch_data *ptr);
> >> +struct kvm_vfio_arch_data *kvm_vfio_device_get_arch_data(struct kvm_vfio *kv);
> >> +void kvm_vfio_lock(struct kvm_vfio *kv);
> >> +void kvm_vfio_unlock(struct kvm_vfio *kv);
> >> +
> >> /* We do not have shadow page tables, hence the empty hooks */
> >> static inline int kvm_age_hva(struct kvm *kvm, unsigned long hva)
> >> {
> >> diff --git a/virt/kvm/vfio.c b/virt/kvm/vfio.c
> >> index f1c4e35..177b71e 100644
> >> --- a/virt/kvm/vfio.c
> >> +++ b/virt/kvm/vfio.c
> >> @@ -28,6 +28,7 @@ struct kvm_vfio {
> >> struct list_head group_list;
> >> struct mutex lock;
> >> bool noncoherent;
> >> + struct kvm_vfio_arch_data *arch_data;
> >> };
> >>
> >> static struct vfio_group *kvm_vfio_group_get_external_user(struct file *filep)
> >> @@ -338,6 +339,26 @@ static int kvm_vfio_create(struct kvm_device *dev, u32 type)
> >> return 0;
> >> }
> >>
> >> +void kvm_vfio_device_set_arch_data(struct kvm_vfio *kv,
> >> + struct kvm_vfio_arch_data *ptr)
> >> +{
> >> + kv->arch_data = ptr;
> >> +}
> >> +
> >> +struct kvm_vfio_arch_data *kvm_vfio_device_get_arch_data(struct kvm_vfio *kv)
> >> +{
> >
> > My preference would be s/get_//
> ok
> >
> >> + return kv->arch_data;
> >> +}
> >> +
> >> +void kvm_vfio_lock(struct kvm_vfio *kv)
> >> +{
> >> + mutex_lock(&kv->lock);
> >> +}
> >> +
> >> +void kvm_vfio_unlock(struct kvm_vfio *kv)
> >> +{
> >> + mutex_unlock(&kv->lock);
> >> +}
> >
> > Gosh, what could go wrong...
> Hum sorry I did not understand what you meant here
Sorry, I was just sarcastically noting that exposing an internal lock
like this seems to be asking for trouble. As you rework it to pull more
into the common code and generalize the architecture callouts, I hope we
can avoid exporting these locks. Thanks,
Alex
next prev parent reply other threads:[~2014-08-27 15:37 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-25 13:27 [RFC 0/9] KVM-VFIO IRQ forward control Eric Auger
2014-08-25 13:27 ` [RFC 1/9] KVM: ARM: VGIC: fix multiple injection of level sensitive forwarded IRQ Eric Auger
2014-08-25 13:27 ` [RFC 2/9] KVM: ARM: VGIC: add forwarded irq rbtree lock Eric Auger
2014-08-25 13:27 ` [RFC 3/9] VFIO: platform: handler tests whether the IRQ is forwarded Eric Auger
2014-08-25 13:27 ` [RFC 4/9] KVM: KVM-VFIO: update user API to program forwarded IRQ Eric Auger
2014-08-26 19:01 ` Alex Williamson
2014-08-27 15:19 ` Eric Auger
2014-08-25 13:27 ` [RFC 5/9] VFIO: Extend external user API Eric Auger
2014-08-26 19:02 ` Alex Williamson
2014-08-27 15:20 ` Eric Auger
2014-08-25 13:27 ` [RFC 6/9] KVM: KVM-VFIO: allow arch specific implementation Eric Auger
2014-08-25 13:27 ` [RFC 7/9] KVM: KVM-VFIO: add new VFIO external API hooks Eric Auger
2014-08-25 13:27 ` [RFC 8/9] KVM: KVM-VFIO: add kvm_vfio_arch_data and accessors Eric Auger
2014-08-26 19:02 ` Alex Williamson
2014-08-27 15:22 ` Eric Auger
2014-08-27 15:37 ` Alex Williamson [this message]
2014-08-27 15:42 ` Eric Auger
2014-08-25 13:27 ` [RFC 9/9] KVM: KVM_VFIO: ARM: implement irq forwarding control Eric Auger
2014-08-26 19:02 ` Alex Williamson
2014-08-27 15:24 ` Eric Auger
2014-08-26 17:49 ` [RFC 0/9] KVM-VFIO IRQ forward control Alex Williamson
2014-08-27 15:10 ` Eric Auger
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=1409153842.2906.255.camel@ul30vt.home \
--to=alex.williamson@redhat.com \
--cc=linux-arm-kernel@lists.infradead.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).