All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Martin <Dave.Martin@arm.com>
To: Suzuki K Poulose <Suzuki.Poulose@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>,
	cdall@kernel.org, kvm@vger.kernel.org, catalin.marinas@arm.com,
	punit.agrawal@arm.com, Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org, qemu-devel@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 15/20] kvm: arm/arm64: Allow tuning the physical address size for VM
Date: Tue, 10 Jul 2018 18:03:30 +0100	[thread overview]
Message-ID: <20180710170330.GJ9486@e103592.cambridge.arm.com> (raw)
In-Reply-To: <377420ce-97a8-4359-6224-273d91f37247@arm.com>

On Tue, Jul 10, 2018 at 05:38:39PM +0100, Suzuki K Poulose wrote:
> On 09/07/18 14:37, Dave Martin wrote:
> >On Mon, Jul 09, 2018 at 01:29:42PM +0100, Marc Zyngier wrote:
> >>On 09/07/18 12:23, Dave Martin wrote:

[...]

> >>>Wedging arguments into a few bits in the type argument feels awkward,
> >>>and may be regretted later if we run out of bits, or something can't be
> >>>represented in the chosen encoding.
> >>
> >>I think that's a pretty convincing argument for a "better" CREATE_VM,
> >>one that would have a clearly defined, structured (and potentially
> >>extensible) argument.
> >>
> >>I've quickly hacked the following:
> >>
> >>diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> >>index b6270a3b38e9..3e76214034c2 100644
> >>--- a/include/uapi/linux/kvm.h
> >>+++ b/include/uapi/linux/kvm.h
> >>@@ -735,6 +735,20 @@ struct kvm_ppc_resize_hpt {
> >>  	__u32 pad;
> >>  };
> >>
> >>+struct kvm_create_vm2 {
> >>+	__u64	version;	/* Or maybe not */
> >>+	union {
> >>+		struct {
> >>+#define KVM_ARM_SVE_CAPABLE	(1 << 0)
> >>+#define KVM_ARM_SELECT_IPA	{1 << 1)
> >>+			__u64	capabilities;
> >>+			__u16	sve_vlen;
> >>+			__u8	ipa_size;
> >>+		} arm64;
> >>+		__u64	dummy[15];
> >>+	};
> >>+};
> >>+
> >>  #define KVMIO 0xAE
> >>
> >>  /* machine type bits, to be used as argument to KVM_CREATE_VM */
> >>
> >>Other architectures could fill in their own bits if they need to.
> >>
> >>Thoughts?
> >
> >This kind of thing should work, but it may still get messy when we
> >add additional fields.
> 
> 
> Marc, Dave,
> 
> I like Dave's approach. Some comments below.
> 
> >
> >It we want this to work cross-arch, would it make sense to go
> >for a more generic approach, say
> >
> >struct kvm_create_vm_attr_any {
> >         __u32   type;
> >};
> >
> >#define KVM_CREATE_VM_ATTR_ARCH_CAPABILITIES 1
> >struct kvm_create_vm_attr_arch_capabilities {
> >         __u32   type;
> >         __u16   size; /* support future expansion of capabilities[] */
> >         __u16   reserved;
> >         __u64   capabilities[1];
> >};
> 
> We also need to advertise which attributes are supported by the host,
> so that the user can tune the available ones. That would make a bit mask
> like the above trickier, unless we return the supported values back
> in the argument ptr for the "probe" call. And this scheme in general
> can be useful for passing back a non-boolean result specific to the
> attribute, without having a per-attribute ioctl. (e.g, maximum limit
> for IPA).

Maybe, but this could quickly become bloated.  (My approach already
feels a bit bloated...)

I'm not sure that arbitrarily complex negotiation will really be
needed, but userspace might want to change its mind if setting a
particular propertiy fails.

An alternative might be to have a bunch of per-VM ioctls to configure
different things, like x86 has.  There's at least precedent for that.
For arm, we currently only have a few.  That allows for easy extension,
at the cost of adding ioctls.

There may be some ioctls we can reuse, like KVM_ENABLE_CAP for per-
vm capability flags.


[...]

> >union kvm_create_vm_attr {
> >         struct kvm_create_vm_attr_any;
> >         struct kvm_create_vm_attr_arch_capabilities;
> >         struct kvm_create_vm_attr_arm64_physaddr_size;
> >         /* ... */
> >};
> 
> nit: Could we simply do s/kvm_create_vm_attr/kvm_vm_attr/ everywhere ?
> While I agree that the kvm_create_vm_attr makes it implicit that the attributes
> are valid only "create" ioctl, the lack of an ioctl to set the VM attribute
> should be sufficient to indicate the same.

I just randomly came up with some names.  The precise naming scheme
isn't that important, so long as it unlikely to result in name
collisions and so long as it's reasonablu clear (or compiler-checkable,
or preferably both) which things can be used where.

I wouldn't have a problem with something a bit terser.

> 
> >
> >struct kvm_create_vm2 {
> >         __u32   version;        /* harmless, even if not useful */
> >         __u16   nr_attrs;       /* or could just terminate attrs with a
> >                                    NULL entry */
> >         union kvm_create_vm_attr __user *__user *attrs;
> >};
> >
> >
> >This is quite flexible, but obviously a bit heavy.
> >
> >However, if we're adding a new interface due to lack of extensibility,
> >it may be worth going for something that's freely extensible.
> 
> True. I could hack something up along the lines above and send it here.

Sure, but best to keep it fairly rough for now.

Cheers
---Dave

WARNING: multiple messages have this Message-ID (diff)
From: Dave Martin <Dave.Martin@arm.com>
To: Suzuki K Poulose <Suzuki.Poulose@arm.com>
Cc: cdall@kernel.org, kvm@vger.kernel.org,
	Marc Zyngier <marc.zyngier@arm.com>,
	catalin.marinas@arm.com, punit.agrawal@arm.com,
	Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org, qemu-devel@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 15/20] kvm: arm/arm64: Allow tuning the physical address size for VM
Date: Tue, 10 Jul 2018 18:03:30 +0100	[thread overview]
Message-ID: <20180710170330.GJ9486@e103592.cambridge.arm.com> (raw)
In-Reply-To: <377420ce-97a8-4359-6224-273d91f37247@arm.com>

On Tue, Jul 10, 2018 at 05:38:39PM +0100, Suzuki K Poulose wrote:
> On 09/07/18 14:37, Dave Martin wrote:
> >On Mon, Jul 09, 2018 at 01:29:42PM +0100, Marc Zyngier wrote:
> >>On 09/07/18 12:23, Dave Martin wrote:

[...]

> >>>Wedging arguments into a few bits in the type argument feels awkward,
> >>>and may be regretted later if we run out of bits, or something can't be
> >>>represented in the chosen encoding.
> >>
> >>I think that's a pretty convincing argument for a "better" CREATE_VM,
> >>one that would have a clearly defined, structured (and potentially
> >>extensible) argument.
> >>
> >>I've quickly hacked the following:
> >>
> >>diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> >>index b6270a3b38e9..3e76214034c2 100644
> >>--- a/include/uapi/linux/kvm.h
> >>+++ b/include/uapi/linux/kvm.h
> >>@@ -735,6 +735,20 @@ struct kvm_ppc_resize_hpt {
> >>  	__u32 pad;
> >>  };
> >>
> >>+struct kvm_create_vm2 {
> >>+	__u64	version;	/* Or maybe not */
> >>+	union {
> >>+		struct {
> >>+#define KVM_ARM_SVE_CAPABLE	(1 << 0)
> >>+#define KVM_ARM_SELECT_IPA	{1 << 1)
> >>+			__u64	capabilities;
> >>+			__u16	sve_vlen;
> >>+			__u8	ipa_size;
> >>+		} arm64;
> >>+		__u64	dummy[15];
> >>+	};
> >>+};
> >>+
> >>  #define KVMIO 0xAE
> >>
> >>  /* machine type bits, to be used as argument to KVM_CREATE_VM */
> >>
> >>Other architectures could fill in their own bits if they need to.
> >>
> >>Thoughts?
> >
> >This kind of thing should work, but it may still get messy when we
> >add additional fields.
> 
> 
> Marc, Dave,
> 
> I like Dave's approach. Some comments below.
> 
> >
> >It we want this to work cross-arch, would it make sense to go
> >for a more generic approach, say
> >
> >struct kvm_create_vm_attr_any {
> >         __u32   type;
> >};
> >
> >#define KVM_CREATE_VM_ATTR_ARCH_CAPABILITIES 1
> >struct kvm_create_vm_attr_arch_capabilities {
> >         __u32   type;
> >         __u16   size; /* support future expansion of capabilities[] */
> >         __u16   reserved;
> >         __u64   capabilities[1];
> >};
> 
> We also need to advertise which attributes are supported by the host,
> so that the user can tune the available ones. That would make a bit mask
> like the above trickier, unless we return the supported values back
> in the argument ptr for the "probe" call. And this scheme in general
> can be useful for passing back a non-boolean result specific to the
> attribute, without having a per-attribute ioctl. (e.g, maximum limit
> for IPA).

Maybe, but this could quickly become bloated.  (My approach already
feels a bit bloated...)

I'm not sure that arbitrarily complex negotiation will really be
needed, but userspace might want to change its mind if setting a
particular propertiy fails.

An alternative might be to have a bunch of per-VM ioctls to configure
different things, like x86 has.  There's at least precedent for that.
For arm, we currently only have a few.  That allows for easy extension,
at the cost of adding ioctls.

There may be some ioctls we can reuse, like KVM_ENABLE_CAP for per-
vm capability flags.


[...]

> >union kvm_create_vm_attr {
> >         struct kvm_create_vm_attr_any;
> >         struct kvm_create_vm_attr_arch_capabilities;
> >         struct kvm_create_vm_attr_arm64_physaddr_size;
> >         /* ... */
> >};
> 
> nit: Could we simply do s/kvm_create_vm_attr/kvm_vm_attr/ everywhere ?
> While I agree that the kvm_create_vm_attr makes it implicit that the attributes
> are valid only "create" ioctl, the lack of an ioctl to set the VM attribute
> should be sufficient to indicate the same.

I just randomly came up with some names.  The precise naming scheme
isn't that important, so long as it unlikely to result in name
collisions and so long as it's reasonablu clear (or compiler-checkable,
or preferably both) which things can be used where.

I wouldn't have a problem with something a bit terser.

> 
> >
> >struct kvm_create_vm2 {
> >         __u32   version;        /* harmless, even if not useful */
> >         __u16   nr_attrs;       /* or could just terminate attrs with a
> >                                    NULL entry */
> >         union kvm_create_vm_attr __user *__user *attrs;
> >};
> >
> >
> >This is quite flexible, but obviously a bit heavy.
> >
> >However, if we're adding a new interface due to lack of extensibility,
> >it may be worth going for something that's freely extensible.
> 
> True. I could hack something up along the lines above and send it here.

Sure, but best to keep it fairly rough for now.

Cheers
---Dave

WARNING: multiple messages have this Message-ID (diff)
From: Dave Martin <Dave.Martin@arm.com>
To: Suzuki K Poulose <Suzuki.Poulose@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>,
	cdall@kernel.org, kvm@vger.kernel.org, catalin.marinas@arm.com,
	punit.agrawal@arm.com, Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org, qemu-devel@nongnu.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [Qemu-devel] [PATCH v3 15/20] kvm: arm/arm64: Allow tuning the physical address size for VM
Date: Tue, 10 Jul 2018 18:03:30 +0100	[thread overview]
Message-ID: <20180710170330.GJ9486@e103592.cambridge.arm.com> (raw)
In-Reply-To: <377420ce-97a8-4359-6224-273d91f37247@arm.com>

On Tue, Jul 10, 2018 at 05:38:39PM +0100, Suzuki K Poulose wrote:
> On 09/07/18 14:37, Dave Martin wrote:
> >On Mon, Jul 09, 2018 at 01:29:42PM +0100, Marc Zyngier wrote:
> >>On 09/07/18 12:23, Dave Martin wrote:

[...]

> >>>Wedging arguments into a few bits in the type argument feels awkward,
> >>>and may be regretted later if we run out of bits, or something can't be
> >>>represented in the chosen encoding.
> >>
> >>I think that's a pretty convincing argument for a "better" CREATE_VM,
> >>one that would have a clearly defined, structured (and potentially
> >>extensible) argument.
> >>
> >>I've quickly hacked the following:
> >>
> >>diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> >>index b6270a3b38e9..3e76214034c2 100644
> >>--- a/include/uapi/linux/kvm.h
> >>+++ b/include/uapi/linux/kvm.h
> >>@@ -735,6 +735,20 @@ struct kvm_ppc_resize_hpt {
> >>  	__u32 pad;
> >>  };
> >>
> >>+struct kvm_create_vm2 {
> >>+	__u64	version;	/* Or maybe not */
> >>+	union {
> >>+		struct {
> >>+#define KVM_ARM_SVE_CAPABLE	(1 << 0)
> >>+#define KVM_ARM_SELECT_IPA	{1 << 1)
> >>+			__u64	capabilities;
> >>+			__u16	sve_vlen;
> >>+			__u8	ipa_size;
> >>+		} arm64;
> >>+		__u64	dummy[15];
> >>+	};
> >>+};
> >>+
> >>  #define KVMIO 0xAE
> >>
> >>  /* machine type bits, to be used as argument to KVM_CREATE_VM */
> >>
> >>Other architectures could fill in their own bits if they need to.
> >>
> >>Thoughts?
> >
> >This kind of thing should work, but it may still get messy when we
> >add additional fields.
> 
> 
> Marc, Dave,
> 
> I like Dave's approach. Some comments below.
> 
> >
> >It we want this to work cross-arch, would it make sense to go
> >for a more generic approach, say
> >
> >struct kvm_create_vm_attr_any {
> >         __u32   type;
> >};
> >
> >#define KVM_CREATE_VM_ATTR_ARCH_CAPABILITIES 1
> >struct kvm_create_vm_attr_arch_capabilities {
> >         __u32   type;
> >         __u16   size; /* support future expansion of capabilities[] */
> >         __u16   reserved;
> >         __u64   capabilities[1];
> >};
> 
> We also need to advertise which attributes are supported by the host,
> so that the user can tune the available ones. That would make a bit mask
> like the above trickier, unless we return the supported values back
> in the argument ptr for the "probe" call. And this scheme in general
> can be useful for passing back a non-boolean result specific to the
> attribute, without having a per-attribute ioctl. (e.g, maximum limit
> for IPA).

Maybe, but this could quickly become bloated.  (My approach already
feels a bit bloated...)

I'm not sure that arbitrarily complex negotiation will really be
needed, but userspace might want to change its mind if setting a
particular propertiy fails.

An alternative might be to have a bunch of per-VM ioctls to configure
different things, like x86 has.  There's at least precedent for that.
For arm, we currently only have a few.  That allows for easy extension,
at the cost of adding ioctls.

There may be some ioctls we can reuse, like KVM_ENABLE_CAP for per-
vm capability flags.


[...]

> >union kvm_create_vm_attr {
> >         struct kvm_create_vm_attr_any;
> >         struct kvm_create_vm_attr_arch_capabilities;
> >         struct kvm_create_vm_attr_arm64_physaddr_size;
> >         /* ... */
> >};
> 
> nit: Could we simply do s/kvm_create_vm_attr/kvm_vm_attr/ everywhere ?
> While I agree that the kvm_create_vm_attr makes it implicit that the attributes
> are valid only "create" ioctl, the lack of an ioctl to set the VM attribute
> should be sufficient to indicate the same.

I just randomly came up with some names.  The precise naming scheme
isn't that important, so long as it unlikely to result in name
collisions and so long as it's reasonablu clear (or compiler-checkable,
or preferably both) which things can be used where.

I wouldn't have a problem with something a bit terser.

> 
> >
> >struct kvm_create_vm2 {
> >         __u32   version;        /* harmless, even if not useful */
> >         __u16   nr_attrs;       /* or could just terminate attrs with a
> >                                    NULL entry */
> >         union kvm_create_vm_attr __user *__user *attrs;
> >};
> >
> >
> >This is quite flexible, but obviously a bit heavy.
> >
> >However, if we're adding a new interface due to lack of extensibility,
> >it may be worth going for something that's freely extensible.
> 
> True. I could hack something up along the lines above and send it here.

Sure, but best to keep it fairly rough for now.

Cheers
---Dave

WARNING: multiple messages have this Message-ID (diff)
From: Dave.Martin@arm.com (Dave Martin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 15/20] kvm: arm/arm64: Allow tuning the physical address size for VM
Date: Tue, 10 Jul 2018 18:03:30 +0100	[thread overview]
Message-ID: <20180710170330.GJ9486@e103592.cambridge.arm.com> (raw)
In-Reply-To: <377420ce-97a8-4359-6224-273d91f37247@arm.com>

On Tue, Jul 10, 2018 at 05:38:39PM +0100, Suzuki K Poulose wrote:
> On 09/07/18 14:37, Dave Martin wrote:
> >On Mon, Jul 09, 2018 at 01:29:42PM +0100, Marc Zyngier wrote:
> >>On 09/07/18 12:23, Dave Martin wrote:

[...]

> >>>Wedging arguments into a few bits in the type argument feels awkward,
> >>>and may be regretted later if we run out of bits, or something can't be
> >>>represented in the chosen encoding.
> >>
> >>I think that's a pretty convincing argument for a "better" CREATE_VM,
> >>one that would have a clearly defined, structured (and potentially
> >>extensible) argument.
> >>
> >>I've quickly hacked the following:
> >>
> >>diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> >>index b6270a3b38e9..3e76214034c2 100644
> >>--- a/include/uapi/linux/kvm.h
> >>+++ b/include/uapi/linux/kvm.h
> >>@@ -735,6 +735,20 @@ struct kvm_ppc_resize_hpt {
> >>  	__u32 pad;
> >>  };
> >>
> >>+struct kvm_create_vm2 {
> >>+	__u64	version;	/* Or maybe not */
> >>+	union {
> >>+		struct {
> >>+#define KVM_ARM_SVE_CAPABLE	(1 << 0)
> >>+#define KVM_ARM_SELECT_IPA	{1 << 1)
> >>+			__u64	capabilities;
> >>+			__u16	sve_vlen;
> >>+			__u8	ipa_size;
> >>+		} arm64;
> >>+		__u64	dummy[15];
> >>+	};
> >>+};
> >>+
> >>  #define KVMIO 0xAE
> >>
> >>  /* machine type bits, to be used as argument to KVM_CREATE_VM */
> >>
> >>Other architectures could fill in their own bits if they need to.
> >>
> >>Thoughts?
> >
> >This kind of thing should work, but it may still get messy when we
> >add additional fields.
> 
> 
> Marc, Dave,
> 
> I like Dave's approach. Some comments below.
> 
> >
> >It we want this to work cross-arch, would it make sense to go
> >for a more generic approach, say
> >
> >struct kvm_create_vm_attr_any {
> >         __u32   type;
> >};
> >
> >#define KVM_CREATE_VM_ATTR_ARCH_CAPABILITIES 1
> >struct kvm_create_vm_attr_arch_capabilities {
> >         __u32   type;
> >         __u16   size; /* support future expansion of capabilities[] */
> >         __u16   reserved;
> >         __u64   capabilities[1];
> >};
> 
> We also need to advertise which attributes are supported by the host,
> so that the user can tune the available ones. That would make a bit mask
> like the above trickier, unless we return the supported values back
> in the argument ptr for the "probe" call. And this scheme in general
> can be useful for passing back a non-boolean result specific to the
> attribute, without having a per-attribute ioctl. (e.g, maximum limit
> for IPA).

Maybe, but this could quickly become bloated.  (My approach already
feels a bit bloated...)

I'm not sure that arbitrarily complex negotiation will really be
needed, but userspace might want to change its mind if setting a
particular propertiy fails.

An alternative might be to have a bunch of per-VM ioctls to configure
different things, like x86 has.  There's at least precedent for that.
For arm, we currently only have a few.  That allows for easy extension,
at the cost of adding ioctls.

There may be some ioctls we can reuse, like KVM_ENABLE_CAP for per-
vm capability flags.


[...]

> >union kvm_create_vm_attr {
> >         struct kvm_create_vm_attr_any;
> >         struct kvm_create_vm_attr_arch_capabilities;
> >         struct kvm_create_vm_attr_arm64_physaddr_size;
> >         /* ... */
> >};
> 
> nit: Could we simply do s/kvm_create_vm_attr/kvm_vm_attr/ everywhere ?
> While I agree that the kvm_create_vm_attr makes it implicit that the attributes
> are valid only "create" ioctl, the lack of an ioctl to set the VM attribute
> should be sufficient to indicate the same.

I just randomly came up with some names.  The precise naming scheme
isn't that important, so long as it unlikely to result in name
collisions and so long as it's reasonablu clear (or compiler-checkable,
or preferably both) which things can be used where.

I wouldn't have a problem with something a bit terser.

> 
> >
> >struct kvm_create_vm2 {
> >         __u32   version;        /* harmless, even if not useful */
> >         __u16   nr_attrs;       /* or could just terminate attrs with a
> >                                    NULL entry */
> >         union kvm_create_vm_attr __user *__user *attrs;
> >};
> >
> >
> >This is quite flexible, but obviously a bit heavy.
> >
> >However, if we're adding a new interface due to lack of extensibility,
> >it may be worth going for something that's freely extensible.
> 
> True. I could hack something up along the lines above and send it here.

Sure, but best to keep it fairly rough for now.

Cheers
---Dave

  reply	other threads:[~2018-07-10 17:03 UTC|newest]

Thread overview: 276+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-29 11:15 [PATCH v3 00/20] arm64: Dynamic & 52bit IPA support Suzuki K Poulose
2018-06-29 11:15 ` Suzuki K Poulose
2018-06-29 11:15 ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15 ` [PATCH v3 01/20] virtio: mmio-v1: Validate queue PFN Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 17:42   ` Michael S. Tsirkin
2018-06-29 17:42     ` Michael S. Tsirkin
2018-06-29 17:42     ` [Qemu-devel] " Michael S. Tsirkin
2018-07-03  8:04     ` Suzuki K Poulose
2018-07-03  8:04       ` Suzuki K Poulose
2018-07-03  8:04       ` [Qemu-devel] " Suzuki K Poulose
2018-07-04  5:37       ` Michael S. Tsirkin
2018-07-04  5:37         ` Michael S. Tsirkin
2018-07-04  5:37         ` [Qemu-devel] " Michael S. Tsirkin
2018-06-29 11:15 ` [PATCH v3 02/20] virtio: pci-legacy: Validate queue pfn Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 17:42   ` Michael S. Tsirkin
2018-06-29 17:42     ` Michael S. Tsirkin
2018-06-29 17:42     ` [Qemu-devel] " Michael S. Tsirkin
2018-06-29 11:15 ` [PATCH v3 03/20] arm64: Add a helper for PARange to physical shift conversion Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 14:50   ` Auger Eric
2018-06-29 14:50     ` Auger Eric
2018-06-29 14:50     ` [Qemu-devel] " Auger Eric
2018-06-29 11:15 ` [PATCH v3 04/20] kvm: arm64: Clean up VTCR_EL2 initialisation Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 14:50   ` Auger Eric
2018-06-29 14:50     ` Auger Eric
2018-06-29 14:50     ` [Qemu-devel] " Auger Eric
2018-06-29 11:15 ` [PATCH v3 05/20] kvm: arm/arm64: Fix stage2_flush_memslot for 4 level page table Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 14:50   ` Auger Eric
2018-06-29 14:50     ` Auger Eric
2018-06-29 14:50     ` [Qemu-devel] " Auger Eric
2018-07-02  9:59   ` Marc Zyngier
2018-07-02  9:59     ` Marc Zyngier
2018-07-02  9:59     ` [Qemu-devel] " Marc Zyngier
2018-06-29 11:15 ` [PATCH v3 06/20] kvm: arm/arm64: Remove spurious WARN_ON Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 14:51   ` Auger Eric
2018-06-29 14:51     ` Auger Eric
2018-06-29 14:51     ` [Qemu-devel] " Auger Eric
2018-07-02 10:01   ` Marc Zyngier
2018-07-02 10:01     ` Marc Zyngier
2018-07-02 10:01     ` [Qemu-devel] " Marc Zyngier
2018-06-29 11:15 ` [PATCH v3 07/20] kvm: arm/arm64: Prepare for VM specific stage2 translations Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-07-02 10:12   ` Marc Zyngier
2018-07-02 10:12     ` Marc Zyngier
2018-07-02 10:12     ` [Qemu-devel] " Marc Zyngier
2018-07-02 10:12     ` Marc Zyngier
2018-07-02 10:25     ` Suzuki K Poulose
2018-07-02 10:25       ` Suzuki K Poulose
2018-07-02 10:25       ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 10:51   ` Auger Eric
2018-07-02 10:51     ` Auger Eric
2018-07-02 10:51     ` [Qemu-devel] " Auger Eric
2018-07-02 10:59     ` Suzuki K Poulose
2018-07-02 10:59       ` Suzuki K Poulose
2018-07-02 10:59       ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15 ` [PATCH v3 08/20] kvm: arm/arm64: Abstract stage2 pgd table allocation Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 15:01   ` Auger Eric
2018-07-02 15:01     ` Auger Eric
2018-07-02 15:01     ` [Qemu-devel] " Auger Eric
2018-06-29 11:15 ` [PATCH v3 09/20] kvm: arm64: Make stage2 page table layout dynamic Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-07-02 10:57   ` Suzuki K Poulose
2018-07-02 10:57     ` Suzuki K Poulose
2018-07-02 10:57     ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 12:14   ` Auger Eric
2018-07-02 12:14     ` Auger Eric
2018-07-02 12:14     ` [Qemu-devel] " Auger Eric
2018-07-02 13:24     ` Suzuki K Poulose
2018-07-02 13:24       ` Suzuki K Poulose
2018-07-02 13:24       ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 14:46       ` Auger Eric
2018-07-02 14:46         ` Auger Eric
2018-06-29 11:15 ` [PATCH v3 10/20] kvm: arm64: Dynamic configuration of VTTBR mask Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 14:41   ` Auger Eric
2018-07-02 14:41     ` Auger Eric
2018-07-02 14:41     ` [Qemu-devel] " Auger Eric
2018-07-03 11:54     ` Suzuki K Poulose
2018-07-03 11:54       ` Suzuki K Poulose
2018-07-03 11:54       ` [Qemu-devel] " Suzuki K Poulose
2018-07-04  8:24       ` Auger Eric
2018-07-04  8:24         ` Auger Eric
2018-07-04  8:24         ` [Qemu-devel] " Auger Eric
2018-07-04  8:29         ` Suzuki K Poulose
2018-07-04  8:29           ` Suzuki K Poulose
2018-07-04  8:29           ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15 ` [PATCH v3 11/20] kvm: arm64: Helper for computing VTCR_EL2.SL0 Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 14:59   ` Auger Eric
2018-07-02 14:59     ` Auger Eric
2018-07-02 14:59     ` [Qemu-devel] " Auger Eric
2018-06-29 11:15 ` [PATCH v3 12/20] kvm: arm64: Add helper for loading the stage2 setting for a VM Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 19:13   ` Auger Eric
2018-07-02 19:13     ` Auger Eric
2018-07-02 19:13     ` [Qemu-devel] " Auger Eric
2018-06-29 11:15 ` [PATCH v3 13/20] kvm: arm64: Configure VTCR per VM Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 12:16   ` Marc Zyngier
2018-07-02 12:16     ` Marc Zyngier
2018-07-02 12:16     ` [Qemu-devel] " Marc Zyngier
2018-07-03 10:48     ` Suzuki K Poulose
2018-07-03 10:48       ` Suzuki K Poulose
2018-07-03 10:48       ` [Qemu-devel] " Suzuki K Poulose
2018-07-03 10:58       ` Marc Zyngier
2018-07-03 10:58         ` Marc Zyngier
2018-07-03 10:58         ` [Qemu-devel] " Marc Zyngier
2018-06-29 11:15 ` [PATCH v3 14/20] kvm: arm/arm64: Expose supported physical address limit for VM Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15 ` [PATCH v3 15/20] kvm: arm/arm64: Allow tuning the physical address size " Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 13:13   ` Marc Zyngier
2018-07-02 13:13     ` Marc Zyngier
2018-07-02 13:13     ` [Qemu-devel] " Marc Zyngier
2018-07-02 13:31     ` Suzuki K Poulose
2018-07-02 13:31       ` Suzuki K Poulose
2018-07-02 13:31       ` [Qemu-devel] " Suzuki K Poulose
2018-07-04 15:51   ` Will Deacon
2018-07-04 15:51     ` Will Deacon
2018-07-04 15:51     ` [Qemu-devel] " Will Deacon
2018-07-04 22:03     ` Suzuki K Poulose
2018-07-04 22:03       ` Suzuki K Poulose
2018-07-04 22:03       ` [Qemu-devel] " Suzuki K Poulose
2018-07-04 22:03       ` Suzuki K Poulose
2018-07-06 13:49       ` Suzuki K Poulose
2018-07-06 13:49         ` Suzuki K Poulose
2018-07-06 13:49         ` [Qemu-devel] " Suzuki K Poulose
2018-07-06 13:49         ` Suzuki K Poulose
2018-07-06 15:09         ` Marc Zyngier
2018-07-06 15:09           ` Marc Zyngier
2018-07-06 15:09           ` [Qemu-devel] " Marc Zyngier
2018-07-06 15:09           ` Marc Zyngier
2018-07-06 16:39           ` Suzuki K Poulose
2018-07-06 16:39             ` Suzuki K Poulose
2018-07-06 16:39             ` [Qemu-devel] " Suzuki K Poulose
2018-07-06 16:39             ` Suzuki K Poulose
2018-07-09 11:23             ` Dave Martin
2018-07-09 11:23               ` Dave Martin
2018-07-09 11:23               ` [Qemu-devel] " Dave Martin
2018-07-09 12:29               ` Marc Zyngier
2018-07-09 12:29                 ` Marc Zyngier
2018-07-09 12:29                 ` [Qemu-devel] " Marc Zyngier
2018-07-09 13:37                 ` Dave Martin
2018-07-09 13:37                   ` Dave Martin
2018-07-09 13:37                   ` [Qemu-devel] " Dave Martin
2018-07-10 16:38                   ` Suzuki K Poulose
2018-07-10 16:38                     ` Suzuki K Poulose
2018-07-10 16:38                     ` [Qemu-devel] " Suzuki K Poulose
2018-07-10 16:38                     ` Suzuki K Poulose
2018-07-10 17:03                     ` Dave Martin [this message]
2018-07-10 17:03                       ` Dave Martin
2018-07-10 17:03                       ` [Qemu-devel] " Dave Martin
2018-07-10 17:03                       ` Dave Martin
2018-07-11  9:05                       ` Suzuki K Poulose
2018-07-11  9:05                         ` Suzuki K Poulose
2018-07-11  9:05                         ` [Qemu-devel] " Suzuki K Poulose
2018-07-11 10:38                         ` Dave Martin
2018-07-11 10:38                           ` Dave Martin
2018-07-11 10:38                           ` [Qemu-devel] " Dave Martin
2018-06-29 11:15 ` [PATCH v3 16/20] kvm: arm64: Switch to per VM IPA limit Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 13:32   ` Marc Zyngier
2018-07-02 13:32     ` Marc Zyngier
2018-07-02 13:32     ` [Qemu-devel] " Marc Zyngier
2018-07-02 13:53     ` Suzuki K Poulose
2018-07-02 13:53       ` Suzuki K Poulose
2018-07-02 13:53       ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15 ` [PATCH v3 17/20] vgic: Add support for 52bit guest physical address Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-04  8:09   ` Auger Eric
2018-07-04  8:09     ` Auger Eric
2018-07-04  8:09     ` [Qemu-devel] " Auger Eric
2018-06-29 11:15 ` [PATCH v3 18/20] kvm: arm64: Add support for handling 52bit IPA Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 13:43   ` Marc Zyngier
2018-07-02 13:43     ` Marc Zyngier
2018-07-02 13:43     ` [Qemu-devel] " Marc Zyngier
2018-06-29 11:15 ` [PATCH v3 19/20] kvm: arm64: Allow IPA size supported by the system Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-02 13:50   ` Marc Zyngier
2018-07-02 13:50     ` Marc Zyngier
2018-07-02 13:50     ` [Qemu-devel] " Marc Zyngier
2018-07-02 13:54     ` Suzuki K Poulose
2018-07-02 13:54       ` Suzuki K Poulose
2018-07-02 13:54       ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15 ` [PATCH v3 20/20] kvm: arm64: Fall back to normal stage2 entry level Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15 ` [kvmtool test PATCH 21/24] kvmtool: Allow backends to run checks on the KVM device fd Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15 ` [kvmtool test PATCH 22/24] kvmtool: arm64: Add support for guest physical address size Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-04 14:09   ` Will Deacon
2018-07-04 14:09     ` Will Deacon
2018-07-04 14:09     ` [Qemu-devel] " Will Deacon
2018-07-04 15:00     ` Julien Grall
2018-07-04 15:00       ` Julien Grall
2018-07-04 15:00       ` [Qemu-devel] " Julien Grall
2018-07-04 15:52       ` Will Deacon
2018-07-04 15:52         ` Will Deacon
2018-07-04 15:52         ` [Qemu-devel] " Will Deacon
2018-07-05 12:47         ` Julien Grall
2018-07-05 12:47           ` Julien Grall
2018-07-05 12:47           ` [Qemu-devel] " Julien Grall
2018-07-05 13:20           ` Marc Zyngier
2018-07-05 13:20             ` Marc Zyngier
2018-07-05 13:20             ` [Qemu-devel] " Marc Zyngier
2018-07-05 13:46             ` Auger Eric
2018-07-05 13:46               ` Auger Eric
2018-07-05 13:46               ` [Qemu-devel] " Auger Eric
2018-07-05 14:12               ` Suzuki K Poulose
2018-07-05 14:12                 ` Suzuki K Poulose
2018-07-05 14:12                 ` [Qemu-devel] " Suzuki K Poulose
2018-07-05 14:15               ` Marc Zyngier
2018-07-05 14:15                 ` Marc Zyngier
2018-07-05 14:15                 ` [Qemu-devel] " Marc Zyngier
2018-07-05 14:37                 ` Auger Eric
2018-07-05 14:37                   ` Auger Eric
2018-07-05 14:37                   ` [Qemu-devel] " Auger Eric
2018-06-29 11:15 ` [kvmtool test PATCH 23/24] kvmtool: arm64: Switch memory layout Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-06-29 11:15 ` [kvmtool test PATCH 24/24] kvmtool: arm: Add support for creating VM with PA size Suzuki K Poulose
2018-06-29 11:15   ` Suzuki K Poulose
2018-06-29 11:15   ` [Qemu-devel] " Suzuki K Poulose
2018-07-04 14:22   ` Will Deacon
2018-07-04 14:22     ` Will Deacon
2018-07-04 14:22     ` [Qemu-devel] " Will Deacon
2018-07-04 14:41     ` Marc Zyngier
2018-07-04 14:41       ` Marc Zyngier
2018-07-04 14:41       ` Marc Zyngier
2018-07-04 14:41       ` [Qemu-devel] " Marc Zyngier
2018-07-04 15:51       ` Will Deacon
2018-07-04 15:51         ` Will Deacon
2018-07-04 15:51         ` [Qemu-devel] " Will Deacon
2018-07-05  7:51         ` Peter Maydell
2018-07-05  7:51           ` Peter Maydell
2018-07-05  7:51           ` [Qemu-devel] " Peter Maydell
2018-07-05  7:58           ` Auger Eric
2018-07-05  7:58             ` Auger Eric
2018-07-05  7:58             ` [Qemu-devel] " Auger Eric
2018-07-04 15:58     ` Suzuki K Poulose
2018-07-04 15:58       ` Suzuki K Poulose
2018-07-04 15:58       ` [Qemu-devel] " Suzuki K Poulose

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=20180710170330.GJ9486@e103592.cambridge.arm.com \
    --to=dave.martin@arm.com \
    --cc=Suzuki.Poulose@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=cdall@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=pbonzini@redhat.com \
    --cc=punit.agrawal@arm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=will.deacon@arm.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.