All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-next v2] xen: make grant table configurable
@ 2019-01-18 12:43 Wei Liu
  2019-01-29 11:23 ` Jan Beulich
  2019-02-21 12:01 ` Wei Liu
  0 siblings, 2 replies; 6+ messages in thread
From: Wei Liu @ 2019-01-18 12:43 UTC (permalink / raw)
  To: xen-devel
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Andrew Cooper, Ian Jackson, Tim Deegan,
	Julien Grall, Jan Beulich, Roger Pau Monné

Introduce CONFIG_GRANT_TABLE. Provide stubs and make sure x86 and arm
hypervisors build with grant table disabled.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
v2:
1. CONFIG_GRANT_TABLE should depend on EXPERT=y
2. Define two opt_* to be 0
---
 xen/arch/arm/traps.c          |  2 ++
 xen/arch/x86/hvm/Makefile     |  2 +-
 xen/arch/x86/hvm/hypercall.c  |  4 ++++
 xen/arch/x86/hypercall.c      |  2 ++
 xen/arch/x86/pv/Makefile      |  2 +-
 xen/arch/x86/pv/hypercall.c   |  2 ++
 xen/common/Kconfig            | 11 ++++++++++
 xen/common/Makefile           |  2 +-
 xen/include/xen/grant_table.h | 48 +++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 72 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 221c762ada..0f1c1b6431 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1392,7 +1392,9 @@ static arm_hypercall_t arm_hypercall_table[] = {
     HYPERCALL_DEPRECATED(physdev_op_compat, 1),
     HYPERCALL(sysctl, 2),
     HYPERCALL(hvm_op, 2),
+#ifdef CONFIG_GRANT_TABLE
     HYPERCALL(grant_table_op, 3),
+#endif
     HYPERCALL(multicall, 2),
     HYPERCALL(platform_op, 1),
     HYPERCALL_ARM(vcpu_op, 3),
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 86b106f8e7..43e5f3a21f 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -7,7 +7,7 @@ obj-y += dm.o
 obj-bin-y += dom0_build.init.o
 obj-y += domain.o
 obj-y += emulate.o
-obj-y += grant_table.o
+obj-$(CONFIG_GRANT_TABLE) += grant_table.o
 obj-y += hpet.o
 obj-y += hvm.o
 obj-y += hypercall.o
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 19d126377a..1f667efc36 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -47,6 +47,7 @@ static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+#ifdef CONFIG_GRANT_TABLE
 static long hvm_grant_table_op(
     unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
 {
@@ -71,6 +72,7 @@ static long hvm_grant_table_op(
     else
         return compat_grant_table_op(cmd, uop, count);
 }
+#endif
 
 static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
@@ -119,7 +121,9 @@ static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 
 static const hypercall_table_t hvm_hypercall_table[] = {
     HVM_CALL(memory_op),
+#ifdef CONFIG_GRANT_TABLE
     HVM_CALL(grant_table_op),
+#endif
     COMPAT_CALL(vcpu_op),
     HVM_CALL(physdev_op),
     COMPAT_CALL(xen_version),
diff --git a/xen/arch/x86/hypercall.c b/xen/arch/x86/hypercall.c
index 032de8f8f8..9311b63c1e 100644
--- a/xen/arch/x86/hypercall.c
+++ b/xen/arch/x86/hypercall.c
@@ -47,7 +47,9 @@ const hypercall_args_t hypercall_args_table[NR_hypercalls] =
     ARGS(xen_version, 2),
     ARGS(console_io, 3),
     ARGS(physdev_op_compat, 1),
+#ifdef CONFIG_GRANT_TABLE
     ARGS(grant_table_op, 3),
+#endif
     ARGS(vm_assist, 2),
     COMP(update_va_mapping_otherdomain, 4, 5),
     ARGS(vcpu_op, 3),
diff --git a/xen/arch/x86/pv/Makefile b/xen/arch/x86/pv/Makefile
index 65bca04175..cf28434ba9 100644
--- a/xen/arch/x86/pv/Makefile
+++ b/xen/arch/x86/pv/Makefile
@@ -5,7 +5,7 @@ obj-y += emulate.o
 obj-y += emul-gate-op.o
 obj-y += emul-inv-op.o
 obj-y += emul-priv-op.o
-obj-y += grant_table.o
+obj-$(CONFIG_GRANT_TABLE) += grant_table.o
 obj-y += hypercall.o
 obj-y += iret.o
 obj-y += misc-hypercalls.o
diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index 5d11911735..ee0a6da515 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -53,7 +53,9 @@ const hypercall_table_t pv_hypercall_table[] = {
     COMPAT_CALL(xen_version),
     HYPERCALL(console_io),
     COMPAT_CALL(physdev_op_compat),
+#ifdef CONFIG_GRANT_TABLE
     COMPAT_CALL(grant_table_op),
+#endif
     COMPAT_CALL(vm_assist),
     COMPAT_CALL(update_va_mapping_otherdomain),
     COMPAT_CALL(iret),
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index a79cd40441..24a1c75ec1 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -11,6 +11,17 @@ config COMPAT
 config CORE_PARKING
 	bool
 
+config GRANT_TABLE
+	bool "Grant table support" if EXPERT = "y"
+	default y
+	---help---
+	  Grant table provides a generic mechanism to memory sharing
+	  between domains. This shared memory interface underpins the
+	  split device drivers for block and network IO in a classic
+	  Xen setup.
+
+	  If unsure, say Y.
+
 config HAS_ALTERNATIVE
 	bool
 
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 56fc201b6b..e748554a44 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -10,7 +10,7 @@ obj-y += event_2l.o
 obj-y += event_channel.o
 obj-y += event_fifo.o
 obj-$(CONFIG_CRASH_DEBUG) += gdbstub.o
-obj-y += grant_table.o
+obj-$(CONFIG_GRANT_TABLE) += grant_table.o
 obj-y += guestcopy.o
 obj-bin-y += gunzip.init.o
 obj-y += irq.o
diff --git a/xen/include/xen/grant_table.h b/xen/include/xen/grant_table.h
index 12e8a4b80b..6f9345d9ef 100644
--- a/xen/include/xen/grant_table.h
+++ b/xen/include/xen/grant_table.h
@@ -29,6 +29,7 @@
 #include <asm/page.h>
 #include <asm/grant_table.h>
 
+#ifdef CONFIG_GRANT_TABLE
 struct grant_table;
 
 extern unsigned int opt_max_grant_frames;
@@ -61,4 +62,51 @@ int gnttab_get_shared_frame(struct domain *d, unsigned long idx,
 int gnttab_get_status_frame(struct domain *d, unsigned long idx,
                             mfn_t *mfn);
 
+#else
+
+#define opt_max_grant_frames 0
+#define opt_max_maptrack_frames 0
+
+static inline int grant_table_init(struct domain *d,
+                                   unsigned int max_grant_frames,
+                                   unsigned int max_maptrack_frames)
+{
+    return 0;
+}
+
+static inline void grant_table_destroy(struct domain *d) {}
+
+static inline void grant_table_init_vcpu(struct vcpu *v) {}
+
+static inline void grant_table_warn_active_grants(struct domain *d) {}
+
+static inline void gnttab_release_mappings(struct domain *d) {}
+
+static inline int mem_sharing_gref_to_gfn(struct grant_table *gt,
+                                          grant_ref_t ref,
+                                          gfn_t *gfn, uint16_t *status)
+{
+    return -EINVAL;
+}
+
+static inline int gnttab_map_frame(struct domain *d, unsigned long idx,
+                                   gfn_t gfn, mfn_t *mfn)
+{
+    return -EINVAL;
+}
+
+static inline int gnttab_get_shared_frame(struct domain *d, unsigned long idx,
+                                          mfn_t *mfn)
+{
+    return -EINVAL;
+}
+
+static inline int gnttab_get_status_frame(struct domain *d, unsigned long idx,
+                                          mfn_t *mfn)
+{
+    return -EINVAL;
+}
+
+#endif /* CONFIG_GRANT_TABLE */
+
 #endif /* __XEN_GRANT_TABLE_H__ */
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH for-next v2] xen: make grant table configurable
  2019-01-18 12:43 [PATCH for-next v2] xen: make grant table configurable Wei Liu
@ 2019-01-29 11:23 ` Jan Beulich
  2019-01-29 11:31   ` Wei Liu
  2019-02-21 12:01 ` Wei Liu
  1 sibling, 1 reply; 6+ messages in thread
From: Jan Beulich @ 2019-01-29 11:23 UTC (permalink / raw)
  To: wei.liu2
  Cc: sstabellini, konrad.wilk, George.Dunlap, andrew.cooper3,
	ian.jackson, tim, julien.grall, xen-devel, roger.pau

>>> Wei Liu <wei.liu2@citrix.com> 01/18/19 1:44 PM >>>
>Introduce CONFIG_GRANT_TABLE. Provide stubs and make sure x86 and arm
>hypervisors build with grant table disabled.
>
>Signed-off-by: Wei Liu <wei.liu2@citrix.com>

I continue to misinterpret the title - would you mind making it "make grant
table support configurable", to disambiguate it from meaning you want
grant table behavior (size, versions, or what not) to be configurable? Other
than this

Acked-by: Jan Beulich <jbeulich@suse.com>

Jan



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH for-next v2] xen: make grant table configurable
  2019-01-29 11:23 ` Jan Beulich
@ 2019-01-29 11:31   ` Wei Liu
  0 siblings, 0 replies; 6+ messages in thread
From: Wei Liu @ 2019-01-29 11:31 UTC (permalink / raw)
  To: Jan Beulich
  Cc: sstabellini, wei.liu2, konrad.wilk, George.Dunlap,
	andrew.cooper3, ian.jackson, tim, julien.grall, xen-devel,
	roger.pau

On Tue, Jan 29, 2019 at 04:23:55AM -0700, Jan Beulich wrote:
> >>> Wei Liu <wei.liu2@citrix.com> 01/18/19 1:44 PM >>>
> >Introduce CONFIG_GRANT_TABLE. Provide stubs and make sure x86 and arm
> >hypervisors build with grant table disabled.
> >
> >Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> 
> I continue to misinterpret the title - would you mind making it "make grant
> table support configurable", to disambiguate it from meaning you want
> grant table behavior (size, versions, or what not) to be configurable? Other
> than this
> 

Sure. I will fix the title.

> Acked-by: Jan Beulich <jbeulich@suse.com>
> 

Thanks.

Wei.

> Jan
> 
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH for-next v2] xen: make grant table configurable
  2019-01-18 12:43 [PATCH for-next v2] xen: make grant table configurable Wei Liu
  2019-01-29 11:23 ` Jan Beulich
@ 2019-02-21 12:01 ` Wei Liu
  2019-02-21 12:02   ` Julien Grall
  1 sibling, 1 reply; 6+ messages in thread
From: Wei Liu @ 2019-02-21 12:01 UTC (permalink / raw)
  To: xen-devel
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Andrew Cooper, Ian Jackson, Tim Deegan,
	Julien Grall, Jan Beulich, Roger Pau Monné

On Fri, Jan 18, 2019 at 12:43:57PM +0000, Wei Liu wrote:
> Introduce CONFIG_GRANT_TABLE. Provide stubs and make sure x86 and arm
> hypervisors build with grant table disabled.
> 
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>

I know this patch can only be applied after the tree is reopen but ...

> 
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index 221c762ada..0f1c1b6431 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -1392,7 +1392,9 @@ static arm_hypercall_t arm_hypercall_table[] = {
>      HYPERCALL_DEPRECATED(physdev_op_compat, 1),
>      HYPERCALL(sysctl, 2),
>      HYPERCALL(hvm_op, 2),
> +#ifdef CONFIG_GRANT_TABLE
>      HYPERCALL(grant_table_op, 3),
> +#endif
>      HYPERCALL(multicall, 2),
>      HYPERCALL(platform_op, 1),
>      HYPERCALL_ARM(vcpu_op, 3),

can I get an ack from one of the Arm maintainers so that I can queue it
up?

Thanks,
Wei.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH for-next v2] xen: make grant table configurable
  2019-02-21 12:01 ` Wei Liu
@ 2019-02-21 12:02   ` Julien Grall
  2019-02-21 12:03     ` Wei Liu
  0 siblings, 1 reply; 6+ messages in thread
From: Julien Grall @ 2019-02-21 12:02 UTC (permalink / raw)
  To: Wei Liu, xen-devel
  Cc: Stefano Stabellini, Konrad Rzeszutek Wilk, George Dunlap,
	Andrew Cooper, Ian Jackson, Tim Deegan, Jan Beulich,
	Roger Pau Monné



On 21/02/2019 12:01, Wei Liu wrote:
> On Fri, Jan 18, 2019 at 12:43:57PM +0000, Wei Liu wrote:
>> Introduce CONFIG_GRANT_TABLE. Provide stubs and make sure x86 and arm
>> hypervisors build with grant table disabled.
>>
>> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> 
> I know this patch can only be applied after the tree is reopen but ...
> 
>>
>> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
>> index 221c762ada..0f1c1b6431 100644
>> --- a/xen/arch/arm/traps.c
>> +++ b/xen/arch/arm/traps.c
>> @@ -1392,7 +1392,9 @@ static arm_hypercall_t arm_hypercall_table[] = {
>>       HYPERCALL_DEPRECATED(physdev_op_compat, 1),
>>       HYPERCALL(sysctl, 2),
>>       HYPERCALL(hvm_op, 2),
>> +#ifdef CONFIG_GRANT_TABLE
>>       HYPERCALL(grant_table_op, 3),
>> +#endif
>>       HYPERCALL(multicall, 2),
>>       HYPERCALL(platform_op, 1),
>>       HYPERCALL_ARM(vcpu_op, 3),
> 
> can I get an ack from one of the Arm maintainers so that I can queue it
> up?

Acked-by: Julien Grall <julien.grall@arm.com>

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH for-next v2] xen: make grant table configurable
  2019-02-21 12:02   ` Julien Grall
@ 2019-02-21 12:03     ` Wei Liu
  0 siblings, 0 replies; 6+ messages in thread
From: Wei Liu @ 2019-02-21 12:03 UTC (permalink / raw)
  To: Julien Grall
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Andrew Cooper, Ian Jackson, Tim Deegan,
	Jan Beulich, xen-devel, Roger Pau Monné

On Thu, Feb 21, 2019 at 12:02:13PM +0000, Julien Grall wrote:
> 
> 
> On 21/02/2019 12:01, Wei Liu wrote:
> > On Fri, Jan 18, 2019 at 12:43:57PM +0000, Wei Liu wrote:
> > > Introduce CONFIG_GRANT_TABLE. Provide stubs and make sure x86 and arm
> > > hypervisors build with grant table disabled.
> > > 
> > > Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> > 
> > I know this patch can only be applied after the tree is reopen but ...
> > 
> > > 
> > > diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> > > index 221c762ada..0f1c1b6431 100644
> > > --- a/xen/arch/arm/traps.c
> > > +++ b/xen/arch/arm/traps.c
> > > @@ -1392,7 +1392,9 @@ static arm_hypercall_t arm_hypercall_table[] = {
> > >       HYPERCALL_DEPRECATED(physdev_op_compat, 1),
> > >       HYPERCALL(sysctl, 2),
> > >       HYPERCALL(hvm_op, 2),
> > > +#ifdef CONFIG_GRANT_TABLE
> > >       HYPERCALL(grant_table_op, 3),
> > > +#endif
> > >       HYPERCALL(multicall, 2),
> > >       HYPERCALL(platform_op, 1),
> > >       HYPERCALL_ARM(vcpu_op, 3),
> > 
> > can I get an ack from one of the Arm maintainers so that I can queue it
> > up?
> 
> Acked-by: Julien Grall <julien.grall@arm.com>

Thank you!

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-02-21 12:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-18 12:43 [PATCH for-next v2] xen: make grant table configurable Wei Liu
2019-01-29 11:23 ` Jan Beulich
2019-01-29 11:31   ` Wei Liu
2019-02-21 12:01 ` Wei Liu
2019-02-21 12:02   ` Julien Grall
2019-02-21 12:03     ` Wei Liu

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.