* [Xen-devel] [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-05-16 21:37 ` [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled Tamas K Lengyel
@ 2019-05-16 21:37 ` Tamas K Lengyel
2019-05-17 7:23 ` Jan Beulich
` (2 subsequent siblings)
3 siblings, 0 replies; 30+ messages in thread
From: Tamas K Lengyel @ 2019-05-16 21:37 UTC (permalink / raw)
To: xen-devel
Cc: Tamas K Lengyel, Wei Liu, Konrad Rzeszutek Wilk, George Dunlap,
Andrew Cooper, Ian Jackson, Tim Deegan, Julien Grall,
Stefano Stabellini, Jan Beulich, Roger Pau Monne
Disable it by default as it is only an experimental subsystem.
Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
Cc: Roger Pau Monne <roger.pau@citrix.com>
Cc: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Julien Grall <julien.grall@arm.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Tim Deegan <tim@xen.org>
Cc: George Dunlap <george.dunlap@eu.citrix.com>
----
v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other fixups
---
xen/arch/x86/Kconfig | 6 +++++-
xen/arch/x86/domain.c | 2 ++
xen/arch/x86/domctl.c | 2 ++
xen/arch/x86/mm/Makefile | 2 +-
xen/arch/x86/x86_64/compat/mm.c | 2 ++
xen/arch/x86/x86_64/mm.c | 2 ++
xen/common/Kconfig | 3 ---
xen/common/domain.c | 2 +-
xen/common/grant_table.c | 2 +-
xen/common/memory.c | 2 +-
xen/common/vm_event.c | 6 +++---
xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
xen/include/asm-x86/mm.h | 3 +++
xen/include/xen/sched.h | 2 +-
xen/include/xsm/dummy.h | 2 +-
xen/include/xsm/xsm.h | 4 ++--
xen/xsm/dummy.c | 2 +-
xen/xsm/flask/hooks.c | 4 ++--
18 files changed, 58 insertions(+), 18 deletions(-)
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 4b8b07b549..600ca5c12e 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -17,7 +17,6 @@ config X86
select HAS_KEXEC
select MEM_ACCESS_ALWAYS_ON
select HAS_MEM_PAGING
- select HAS_MEM_SHARING
select HAS_NS16550
select HAS_PASSTHROUGH
select HAS_PCI
@@ -198,6 +197,11 @@ config PV_SHIM_EXCLUSIVE
firmware, and will not function correctly in other scenarios.
If unsure, say N.
+
+config MEM_SHARING
+ bool "Xen memory sharing support" if EXPERT = "y"
+ depends on HVM
+
endmenu
source "common/Kconfig"
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index d2d9f2fc3c..474df8433b 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2046,6 +2046,7 @@ int domain_relinquish_resources(struct domain *d)
d->arch.auto_unmask = 0;
}
+#ifdef CONFIG_MEM_SHARING
PROGRESS(shared):
if ( is_hvm_domain(d) )
@@ -2056,6 +2057,7 @@ int domain_relinquish_resources(struct domain *d)
if ( ret )
return ret;
}
+#endif
spin_lock(&d->page_alloc_lock);
page_list_splice(&d->arch.relmem_list, &d->page_list);
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 9bf2d0820f..bc9e024ccc 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1231,9 +1231,11 @@ long arch_do_domctl(
break;
}
+#ifdef CONFIG_MEM_SHARING
case XEN_DOMCTL_mem_sharing_op:
ret = mem_sharing_domctl(d, &domctl->u.mem_sharing_op);
break;
+#endif
#if P2M_AUDIT && defined(CONFIG_HVM)
case XEN_DOMCTL_audit_p2m:
diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 5a17646f98..5010a29d6c 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -6,7 +6,7 @@ obj-$(CONFIG_HVM) += guest_walk_2.o guest_walk_3.o guest_walk_4.o
obj-$(CONFIG_SHADOW_PAGING) += guest_walk_2.o guest_walk_3.o guest_walk_4.o
obj-$(CONFIG_MEM_ACCESS) += mem_access.o
obj-y += mem_paging.o
-obj-y += mem_sharing.o
+obj-$(CONFIG_MEM_SHARING) += mem_sharing.o
obj-y += p2m.o p2m-pt.o
obj-$(CONFIG_HVM) += p2m-ept.o p2m-pod.o
obj-y += paging.o
diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
index 32410ed273..d4c6be3032 100644
--- a/xen/arch/x86/x86_64/compat/mm.c
+++ b/xen/arch/x86/x86_64/compat/mm.c
@@ -152,8 +152,10 @@ int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
case XENMEM_paging_op:
return mem_paging_memop(guest_handle_cast(arg, xen_mem_paging_op_t));
+#ifdef CONFIG_MEM_SHARING
case XENMEM_sharing_op:
return mem_sharing_memop(guest_handle_cast(arg, xen_mem_sharing_op_t));
+#endif
default:
rc = -ENOSYS;
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index d8f558bc3a..51d1d511f2 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -993,8 +993,10 @@ long subarch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
case XENMEM_paging_op:
return mem_paging_memop(guest_handle_cast(arg, xen_mem_paging_op_t));
+#ifdef CONFIG_MEM_SHARING
case XENMEM_sharing_op:
return mem_sharing_memop(guest_handle_cast(arg, xen_mem_sharing_op_t));
+#endif
default:
rc = -ENOSYS;
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 7a12346f19..6e28fc48af 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -45,9 +45,6 @@ config MEM_ACCESS
config HAS_MEM_PAGING
bool
-config HAS_MEM_SHARING
- bool
-
config HAS_PDX
bool
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 90c66079f9..0815cf8f07 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -923,7 +923,7 @@ static void complete_domain_destroy(struct rcu_head *head)
xfree(d->vm_event_paging);
#endif
xfree(d->vm_event_monitor);
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
xfree(d->vm_event_share);
#endif
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 80728ea57d..6c40dccae9 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -3760,7 +3760,7 @@ void grant_table_init_vcpu(struct vcpu *v)
v->maptrack_tail = MAPTRACK_TAIL;
}
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
int mem_sharing_gref_to_gfn(struct grant_table *gt, grant_ref_t ref,
gfn_t *gfn, uint16_t *status)
{
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 520d6f4803..69851f4344 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -1671,7 +1671,7 @@ int check_get_page_from_gfn(struct domain *d, gfn_t gfn, bool readonly,
return -EAGAIN;
}
#endif
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
if ( (q & P2M_UNSHARE) && p2m_is_shared(p2mt) )
{
if ( page )
diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
index 6e68be47bc..163a671cea 100644
--- a/xen/common/vm_event.c
+++ b/xen/common/vm_event.c
@@ -544,7 +544,7 @@ static void monitor_notification(struct vcpu *v, unsigned int port)
vm_event_resume(v->domain, v->domain->vm_event_monitor);
}
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
/* Registered with Xen-bound event channel for incoming notifications. */
static void mem_sharing_notification(struct vcpu *v, unsigned int port)
{
@@ -574,7 +574,7 @@ void vm_event_cleanup(struct domain *d)
destroy_waitqueue_head(&d->vm_event_monitor->wq);
(void)vm_event_disable(d, &d->vm_event_monitor);
}
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
if ( vm_event_check_ring(d->vm_event_share) )
{
destroy_waitqueue_head(&d->vm_event_share->wq);
@@ -720,7 +720,7 @@ int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op *vec,
}
break;
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
case XEN_DOMCTL_VM_EVENT_OP_SHARING:
{
rc = -EINVAL;
diff --git a/xen/include/asm-x86/mem_sharing.h b/xen/include/asm-x86/mem_sharing.h
index afd0c17292..db22468744 100644
--- a/xen/include/asm-x86/mem_sharing.h
+++ b/xen/include/asm-x86/mem_sharing.h
@@ -24,6 +24,8 @@
#include <public/domctl.h>
#include <public/memory.h>
+#ifdef CONFIG_MEM_SHARING
+
/* Auditing of memory sharing code? */
#ifndef NDEBUG
#define MEM_SHARING_AUDIT 1
@@ -99,4 +101,30 @@ int mem_sharing_domctl(struct domain *d,
*/
int relinquish_shared_pages(struct domain *d);
+#else
+
+static inline unsigned int mem_sharing_get_nr_saved_mfns(void)
+{
+ return 0;
+}
+static inline unsigned int mem_sharing_get_nr_shared_mfns(void)
+{
+ return 0;
+}
+static inline int mem_sharing_unshare_page(struct domain *d,
+ unsigned long gfn,
+ uint16_t flags)
+{
+ ASSERT_UNREACHABLE();
+ return -EOPNOTSUPP;
+}
+static inline int mem_sharing_notify_enomem(struct domain *d, unsigned long gfn,
+ bool allow_sleep)
+{
+ ASSERT_UNREACHABLE();
+ return -EOPNOTSUPP;
+}
+
+#endif
+
#endif /* __MEM_SHARING_H__ */
diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
index 24c4205ba7..d8ab53d688 100644
--- a/xen/include/asm-x86/mm.h
+++ b/xen/include/asm-x86/mm.h
@@ -127,6 +127,8 @@ struct page_info
/* For non-pinnable single-page shadows, a higher entry that points
* at us. */
paddr_t up;
+
+#ifdef CONFIG_MEM_SHARING
/* For shared/sharable pages, we use a doubly-linked list
* of all the {pfn,domain} pairs that map this page. We also include
* an opaque handle, which is effectively a version, so that clients
@@ -134,6 +136,7 @@ struct page_info
* This list is allocated and freed when a page is shared/unshared.
*/
struct page_sharing_info *sharing;
+#endif
};
/* Reference count and various PGC_xxx flags and fields. */
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 2201faca6b..410c74489f 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -459,7 +459,7 @@ struct domain
/* Various vm_events */
/* Memory sharing support */
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
struct vm_event_domain *vm_event_share;
#endif
/* Memory paging support */
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 01d2814fed..ef52bb1764 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -597,7 +597,7 @@ static XSM_INLINE int xsm_mem_paging(XSM_DEFAULT_ARG struct domain *d)
}
#endif
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
static XSM_INLINE int xsm_mem_sharing(XSM_DEFAULT_ARG struct domain *d)
{
XSM_ASSERT_ACTION(XSM_DM_PRIV);
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 9a90355056..d61ba77374 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -150,7 +150,7 @@ struct xsm_operations {
int (*mem_paging) (struct domain *d);
#endif
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
int (*mem_sharing) (struct domain *d);
#endif
@@ -597,7 +597,7 @@ static inline int xsm_mem_paging (xsm_default_t def, struct domain *d)
}
#endif
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
static inline int xsm_mem_sharing (xsm_default_t def, struct domain *d)
{
return xsm_ops->mem_sharing(d);
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index c9a566f2b5..5705e52791 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -128,7 +128,7 @@ void __init xsm_fixup_ops (struct xsm_operations *ops)
set_to_dummy_if_null(ops, mem_paging);
#endif
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
set_to_dummy_if_null(ops, mem_sharing);
#endif
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index a7d690ac3c..791c1f66af 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1262,7 +1262,7 @@ static int flask_mem_paging(struct domain *d)
}
#endif
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
static int flask_mem_sharing(struct domain *d)
{
return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_SHARING);
@@ -1829,7 +1829,7 @@ static struct xsm_operations flask_ops = {
.mem_paging = flask_mem_paging,
#endif
-#ifdef CONFIG_HAS_MEM_SHARING
+#ifdef CONFIG_MEM_SHARING
.mem_sharing = flask_mem_sharing,
#endif
--
2.20.1
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-05-16 21:37 ` [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled Tamas K Lengyel
2019-05-16 21:37 ` [Xen-devel] " Tamas K Lengyel
@ 2019-05-17 7:23 ` Jan Beulich
2019-05-17 7:23 ` [Xen-devel] " Jan Beulich
2019-06-03 8:26 ` Jan Beulich
2019-06-17 12:17 ` Tamas K Lengyel
3 siblings, 1 reply; 30+ messages in thread
From: Jan Beulich @ 2019-05-17 7:23 UTC (permalink / raw)
To: Tamas K Lengyel
Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
George Dunlap, Andrew Cooper, Ian Jackson, Tim Deegan,
Julien Grall, xen-devel, Roger Pau Monne
>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
> Disable it by default as it is only an experimental subsystem.
>
> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Xen-devel] [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-05-17 7:23 ` Jan Beulich
@ 2019-05-17 7:23 ` Jan Beulich
0 siblings, 0 replies; 30+ messages in thread
From: Jan Beulich @ 2019-05-17 7:23 UTC (permalink / raw)
To: Tamas K Lengyel
Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
George Dunlap, Andrew Cooper, Ian Jackson, Tim Deegan,
Julien Grall, xen-devel, Roger Pau Monne
>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
> Disable it by default as it is only an experimental subsystem.
>
> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-05-16 21:37 ` [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled Tamas K Lengyel
2019-05-16 21:37 ` [Xen-devel] " Tamas K Lengyel
2019-05-17 7:23 ` Jan Beulich
@ 2019-06-03 8:26 ` Jan Beulich
2019-06-03 8:26 ` [Xen-devel] " Jan Beulich
` (2 more replies)
2019-06-17 12:17 ` Tamas K Lengyel
3 siblings, 3 replies; 30+ messages in thread
From: Jan Beulich @ 2019-06-03 8:26 UTC (permalink / raw)
To: Daniel de Graaf
Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
George Dunlap, Andrew Cooper, Ian Jackson, Tim Deegan,
Julien Grall, Tamas K Lengyel, xen-devel, Roger Pau Monne
>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
> Disable it by default as it is only an experimental subsystem.
>
> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Wei Liu <wei.liu2@citrix.com>
> Cc: Roger Pau Monne <roger.pau@citrix.com>
> Cc: George Dunlap <George.Dunlap@eu.citrix.com>
> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> Cc: Julien Grall <julien.grall@arm.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Tim Deegan <tim@xen.org>
> Cc: George Dunlap <george.dunlap@eu.citrix.com>
> ----
> v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other
> fixups
> ---
> xen/arch/x86/Kconfig | 6 +++++-
> xen/arch/x86/domain.c | 2 ++
> xen/arch/x86/domctl.c | 2 ++
> xen/arch/x86/mm/Makefile | 2 +-
> xen/arch/x86/x86_64/compat/mm.c | 2 ++
> xen/arch/x86/x86_64/mm.c | 2 ++
> xen/common/Kconfig | 3 ---
> xen/common/domain.c | 2 +-
> xen/common/grant_table.c | 2 +-
> xen/common/memory.c | 2 +-
> xen/common/vm_event.c | 6 +++---
> xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
> xen/include/asm-x86/mm.h | 3 +++
> xen/include/xen/sched.h | 2 +-
> xen/include/xsm/dummy.h | 2 +-
> xen/include/xsm/xsm.h | 4 ++--
> xen/xsm/dummy.c | 2 +-
> xen/xsm/flask/hooks.c | 4 ++--
> 18 files changed, 58 insertions(+), 18 deletions(-)
Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
Jan
> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
> index 4b8b07b549..600ca5c12e 100644
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -17,7 +17,6 @@ config X86
> select HAS_KEXEC
> select MEM_ACCESS_ALWAYS_ON
> select HAS_MEM_PAGING
> - select HAS_MEM_SHARING
> select HAS_NS16550
> select HAS_PASSTHROUGH
> select HAS_PCI
> @@ -198,6 +197,11 @@ config PV_SHIM_EXCLUSIVE
> firmware, and will not function correctly in other scenarios.
>
> If unsure, say N.
> +
> +config MEM_SHARING
> + bool "Xen memory sharing support" if EXPERT = "y"
> + depends on HVM
> +
> endmenu
>
> source "common/Kconfig"
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index d2d9f2fc3c..474df8433b 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -2046,6 +2046,7 @@ int domain_relinquish_resources(struct domain *d)
> d->arch.auto_unmask = 0;
> }
>
> +#ifdef CONFIG_MEM_SHARING
> PROGRESS(shared):
>
> if ( is_hvm_domain(d) )
> @@ -2056,6 +2057,7 @@ int domain_relinquish_resources(struct domain *d)
> if ( ret )
> return ret;
> }
> +#endif
>
> spin_lock(&d->page_alloc_lock);
> page_list_splice(&d->arch.relmem_list, &d->page_list);
> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
> index 9bf2d0820f..bc9e024ccc 100644
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -1231,9 +1231,11 @@ long arch_do_domctl(
> break;
> }
>
> +#ifdef CONFIG_MEM_SHARING
> case XEN_DOMCTL_mem_sharing_op:
> ret = mem_sharing_domctl(d, &domctl->u.mem_sharing_op);
> break;
> +#endif
>
> #if P2M_AUDIT && defined(CONFIG_HVM)
> case XEN_DOMCTL_audit_p2m:
> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> index 5a17646f98..5010a29d6c 100644
> --- a/xen/arch/x86/mm/Makefile
> +++ b/xen/arch/x86/mm/Makefile
> @@ -6,7 +6,7 @@ obj-$(CONFIG_HVM) += guest_walk_2.o guest_walk_3.o
> guest_walk_4.o
> obj-$(CONFIG_SHADOW_PAGING) += guest_walk_2.o guest_walk_3.o guest_walk_4.o
> obj-$(CONFIG_MEM_ACCESS) += mem_access.o
> obj-y += mem_paging.o
> -obj-y += mem_sharing.o
> +obj-$(CONFIG_MEM_SHARING) += mem_sharing.o
> obj-y += p2m.o p2m-pt.o
> obj-$(CONFIG_HVM) += p2m-ept.o p2m-pod.o
> obj-y += paging.o
> diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
> index 32410ed273..d4c6be3032 100644
> --- a/xen/arch/x86/x86_64/compat/mm.c
> +++ b/xen/arch/x86/x86_64/compat/mm.c
> @@ -152,8 +152,10 @@ int compat_arch_memory_op(unsigned long cmd,
> XEN_GUEST_HANDLE_PARAM(void) arg)
> case XENMEM_paging_op:
> return mem_paging_memop(guest_handle_cast(arg,
> xen_mem_paging_op_t));
>
> +#ifdef CONFIG_MEM_SHARING
> case XENMEM_sharing_op:
> return mem_sharing_memop(guest_handle_cast(arg,
> xen_mem_sharing_op_t));
> +#endif
>
> default:
> rc = -ENOSYS;
> diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
> index d8f558bc3a..51d1d511f2 100644
> --- a/xen/arch/x86/x86_64/mm.c
> +++ b/xen/arch/x86/x86_64/mm.c
> @@ -993,8 +993,10 @@ long subarch_memory_op(unsigned long cmd,
> XEN_GUEST_HANDLE_PARAM(void) arg)
> case XENMEM_paging_op:
> return mem_paging_memop(guest_handle_cast(arg,
> xen_mem_paging_op_t));
>
> +#ifdef CONFIG_MEM_SHARING
> case XENMEM_sharing_op:
> return mem_sharing_memop(guest_handle_cast(arg,
> xen_mem_sharing_op_t));
> +#endif
>
> default:
> rc = -ENOSYS;
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 7a12346f19..6e28fc48af 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -45,9 +45,6 @@ config MEM_ACCESS
> config HAS_MEM_PAGING
> bool
>
> -config HAS_MEM_SHARING
> - bool
> -
> config HAS_PDX
> bool
>
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 90c66079f9..0815cf8f07 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -923,7 +923,7 @@ static void complete_domain_destroy(struct rcu_head
> *head)
> xfree(d->vm_event_paging);
> #endif
> xfree(d->vm_event_monitor);
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> xfree(d->vm_event_share);
> #endif
>
> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
> index 80728ea57d..6c40dccae9 100644
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -3760,7 +3760,7 @@ void grant_table_init_vcpu(struct vcpu *v)
> v->maptrack_tail = MAPTRACK_TAIL;
> }
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> int mem_sharing_gref_to_gfn(struct grant_table *gt, grant_ref_t ref,
> gfn_t *gfn, uint16_t *status)
> {
> diff --git a/xen/common/memory.c b/xen/common/memory.c
> index 520d6f4803..69851f4344 100644
> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -1671,7 +1671,7 @@ int check_get_page_from_gfn(struct domain *d, gfn_t
> gfn, bool readonly,
> return -EAGAIN;
> }
> #endif
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> if ( (q & P2M_UNSHARE) && p2m_is_shared(p2mt) )
> {
> if ( page )
> diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
> index 6e68be47bc..163a671cea 100644
> --- a/xen/common/vm_event.c
> +++ b/xen/common/vm_event.c
> @@ -544,7 +544,7 @@ static void monitor_notification(struct vcpu *v, unsigned
> int port)
> vm_event_resume(v->domain, v->domain->vm_event_monitor);
> }
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> /* Registered with Xen-bound event channel for incoming notifications. */
> static void mem_sharing_notification(struct vcpu *v, unsigned int port)
> {
> @@ -574,7 +574,7 @@ void vm_event_cleanup(struct domain *d)
> destroy_waitqueue_head(&d->vm_event_monitor->wq);
> (void)vm_event_disable(d, &d->vm_event_monitor);
> }
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> if ( vm_event_check_ring(d->vm_event_share) )
> {
> destroy_waitqueue_head(&d->vm_event_share->wq);
> @@ -720,7 +720,7 @@ int vm_event_domctl(struct domain *d, struct
> xen_domctl_vm_event_op *vec,
> }
> break;
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> case XEN_DOMCTL_VM_EVENT_OP_SHARING:
> {
> rc = -EINVAL;
> diff --git a/xen/include/asm-x86/mem_sharing.h
> b/xen/include/asm-x86/mem_sharing.h
> index afd0c17292..db22468744 100644
> --- a/xen/include/asm-x86/mem_sharing.h
> +++ b/xen/include/asm-x86/mem_sharing.h
> @@ -24,6 +24,8 @@
> #include <public/domctl.h>
> #include <public/memory.h>
>
> +#ifdef CONFIG_MEM_SHARING
> +
> /* Auditing of memory sharing code? */
> #ifndef NDEBUG
> #define MEM_SHARING_AUDIT 1
> @@ -99,4 +101,30 @@ int mem_sharing_domctl(struct domain *d,
> */
> int relinquish_shared_pages(struct domain *d);
>
> +#else
> +
> +static inline unsigned int mem_sharing_get_nr_saved_mfns(void)
> +{
> + return 0;
> +}
> +static inline unsigned int mem_sharing_get_nr_shared_mfns(void)
> +{
> + return 0;
> +}
> +static inline int mem_sharing_unshare_page(struct domain *d,
> + unsigned long gfn,
> + uint16_t flags)
> +{
> + ASSERT_UNREACHABLE();
> + return -EOPNOTSUPP;
> +}
> +static inline int mem_sharing_notify_enomem(struct domain *d, unsigned long
> gfn,
> + bool allow_sleep)
> +{
> + ASSERT_UNREACHABLE();
> + return -EOPNOTSUPP;
> +}
> +
> +#endif
> +
> #endif /* __MEM_SHARING_H__ */
> diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
> index 24c4205ba7..d8ab53d688 100644
> --- a/xen/include/asm-x86/mm.h
> +++ b/xen/include/asm-x86/mm.h
> @@ -127,6 +127,8 @@ struct page_info
> /* For non-pinnable single-page shadows, a higher entry that points
> * at us. */
> paddr_t up;
> +
> +#ifdef CONFIG_MEM_SHARING
> /* For shared/sharable pages, we use a doubly-linked list
> * of all the {pfn,domain} pairs that map this page. We also
> include
> * an opaque handle, which is effectively a version, so that
> clients
> @@ -134,6 +136,7 @@ struct page_info
> * This list is allocated and freed when a page is shared/unshared.
> */
> struct page_sharing_info *sharing;
> +#endif
> };
>
> /* Reference count and various PGC_xxx flags and fields. */
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 2201faca6b..410c74489f 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -459,7 +459,7 @@ struct domain
> /* Various vm_events */
>
> /* Memory sharing support */
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> struct vm_event_domain *vm_event_share;
> #endif
> /* Memory paging support */
> diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
> index 01d2814fed..ef52bb1764 100644
> --- a/xen/include/xsm/dummy.h
> +++ b/xen/include/xsm/dummy.h
> @@ -597,7 +597,7 @@ static XSM_INLINE int xsm_mem_paging(XSM_DEFAULT_ARG
> struct domain *d)
> }
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> static XSM_INLINE int xsm_mem_sharing(XSM_DEFAULT_ARG struct domain *d)
> {
> XSM_ASSERT_ACTION(XSM_DM_PRIV);
> diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
> index 9a90355056..d61ba77374 100644
> --- a/xen/include/xsm/xsm.h
> +++ b/xen/include/xsm/xsm.h
> @@ -150,7 +150,7 @@ struct xsm_operations {
> int (*mem_paging) (struct domain *d);
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> int (*mem_sharing) (struct domain *d);
> #endif
>
> @@ -597,7 +597,7 @@ static inline int xsm_mem_paging (xsm_default_t def,
> struct domain *d)
> }
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> static inline int xsm_mem_sharing (xsm_default_t def, struct domain *d)
> {
> return xsm_ops->mem_sharing(d);
> diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
> index c9a566f2b5..5705e52791 100644
> --- a/xen/xsm/dummy.c
> +++ b/xen/xsm/dummy.c
> @@ -128,7 +128,7 @@ void __init xsm_fixup_ops (struct xsm_operations *ops)
> set_to_dummy_if_null(ops, mem_paging);
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> set_to_dummy_if_null(ops, mem_sharing);
> #endif
>
> diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
> index a7d690ac3c..791c1f66af 100644
> --- a/xen/xsm/flask/hooks.c
> +++ b/xen/xsm/flask/hooks.c
> @@ -1262,7 +1262,7 @@ static int flask_mem_paging(struct domain *d)
> }
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> static int flask_mem_sharing(struct domain *d)
> {
> return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_SHARING);
> @@ -1829,7 +1829,7 @@ static struct xsm_operations flask_ops = {
> .mem_paging = flask_mem_paging,
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> .mem_sharing = flask_mem_sharing,
> #endif
>
> --
> 2.20.1
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Xen-devel] [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-06-03 8:26 ` Jan Beulich
@ 2019-06-03 8:26 ` Jan Beulich
2019-06-03 16:38 ` Tamas K Lengyel
2019-06-04 14:36 ` Daniel De Graaf
2 siblings, 0 replies; 30+ messages in thread
From: Jan Beulich @ 2019-06-03 8:26 UTC (permalink / raw)
To: Daniel de Graaf
Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
George Dunlap, Andrew Cooper, Ian Jackson, Tim Deegan,
Julien Grall, Tamas K Lengyel, xen-devel, Roger Pau Monne
>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
> Disable it by default as it is only an experimental subsystem.
>
> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Wei Liu <wei.liu2@citrix.com>
> Cc: Roger Pau Monne <roger.pau@citrix.com>
> Cc: George Dunlap <George.Dunlap@eu.citrix.com>
> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> Cc: Julien Grall <julien.grall@arm.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Tim Deegan <tim@xen.org>
> Cc: George Dunlap <george.dunlap@eu.citrix.com>
> ----
> v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other
> fixups
> ---
> xen/arch/x86/Kconfig | 6 +++++-
> xen/arch/x86/domain.c | 2 ++
> xen/arch/x86/domctl.c | 2 ++
> xen/arch/x86/mm/Makefile | 2 +-
> xen/arch/x86/x86_64/compat/mm.c | 2 ++
> xen/arch/x86/x86_64/mm.c | 2 ++
> xen/common/Kconfig | 3 ---
> xen/common/domain.c | 2 +-
> xen/common/grant_table.c | 2 +-
> xen/common/memory.c | 2 +-
> xen/common/vm_event.c | 6 +++---
> xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
> xen/include/asm-x86/mm.h | 3 +++
> xen/include/xen/sched.h | 2 +-
> xen/include/xsm/dummy.h | 2 +-
> xen/include/xsm/xsm.h | 4 ++--
> xen/xsm/dummy.c | 2 +-
> xen/xsm/flask/hooks.c | 4 ++--
> 18 files changed, 58 insertions(+), 18 deletions(-)
Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
Jan
> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
> index 4b8b07b549..600ca5c12e 100644
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -17,7 +17,6 @@ config X86
> select HAS_KEXEC
> select MEM_ACCESS_ALWAYS_ON
> select HAS_MEM_PAGING
> - select HAS_MEM_SHARING
> select HAS_NS16550
> select HAS_PASSTHROUGH
> select HAS_PCI
> @@ -198,6 +197,11 @@ config PV_SHIM_EXCLUSIVE
> firmware, and will not function correctly in other scenarios.
>
> If unsure, say N.
> +
> +config MEM_SHARING
> + bool "Xen memory sharing support" if EXPERT = "y"
> + depends on HVM
> +
> endmenu
>
> source "common/Kconfig"
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index d2d9f2fc3c..474df8433b 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -2046,6 +2046,7 @@ int domain_relinquish_resources(struct domain *d)
> d->arch.auto_unmask = 0;
> }
>
> +#ifdef CONFIG_MEM_SHARING
> PROGRESS(shared):
>
> if ( is_hvm_domain(d) )
> @@ -2056,6 +2057,7 @@ int domain_relinquish_resources(struct domain *d)
> if ( ret )
> return ret;
> }
> +#endif
>
> spin_lock(&d->page_alloc_lock);
> page_list_splice(&d->arch.relmem_list, &d->page_list);
> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
> index 9bf2d0820f..bc9e024ccc 100644
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -1231,9 +1231,11 @@ long arch_do_domctl(
> break;
> }
>
> +#ifdef CONFIG_MEM_SHARING
> case XEN_DOMCTL_mem_sharing_op:
> ret = mem_sharing_domctl(d, &domctl->u.mem_sharing_op);
> break;
> +#endif
>
> #if P2M_AUDIT && defined(CONFIG_HVM)
> case XEN_DOMCTL_audit_p2m:
> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> index 5a17646f98..5010a29d6c 100644
> --- a/xen/arch/x86/mm/Makefile
> +++ b/xen/arch/x86/mm/Makefile
> @@ -6,7 +6,7 @@ obj-$(CONFIG_HVM) += guest_walk_2.o guest_walk_3.o
> guest_walk_4.o
> obj-$(CONFIG_SHADOW_PAGING) += guest_walk_2.o guest_walk_3.o guest_walk_4.o
> obj-$(CONFIG_MEM_ACCESS) += mem_access.o
> obj-y += mem_paging.o
> -obj-y += mem_sharing.o
> +obj-$(CONFIG_MEM_SHARING) += mem_sharing.o
> obj-y += p2m.o p2m-pt.o
> obj-$(CONFIG_HVM) += p2m-ept.o p2m-pod.o
> obj-y += paging.o
> diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
> index 32410ed273..d4c6be3032 100644
> --- a/xen/arch/x86/x86_64/compat/mm.c
> +++ b/xen/arch/x86/x86_64/compat/mm.c
> @@ -152,8 +152,10 @@ int compat_arch_memory_op(unsigned long cmd,
> XEN_GUEST_HANDLE_PARAM(void) arg)
> case XENMEM_paging_op:
> return mem_paging_memop(guest_handle_cast(arg,
> xen_mem_paging_op_t));
>
> +#ifdef CONFIG_MEM_SHARING
> case XENMEM_sharing_op:
> return mem_sharing_memop(guest_handle_cast(arg,
> xen_mem_sharing_op_t));
> +#endif
>
> default:
> rc = -ENOSYS;
> diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
> index d8f558bc3a..51d1d511f2 100644
> --- a/xen/arch/x86/x86_64/mm.c
> +++ b/xen/arch/x86/x86_64/mm.c
> @@ -993,8 +993,10 @@ long subarch_memory_op(unsigned long cmd,
> XEN_GUEST_HANDLE_PARAM(void) arg)
> case XENMEM_paging_op:
> return mem_paging_memop(guest_handle_cast(arg,
> xen_mem_paging_op_t));
>
> +#ifdef CONFIG_MEM_SHARING
> case XENMEM_sharing_op:
> return mem_sharing_memop(guest_handle_cast(arg,
> xen_mem_sharing_op_t));
> +#endif
>
> default:
> rc = -ENOSYS;
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 7a12346f19..6e28fc48af 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -45,9 +45,6 @@ config MEM_ACCESS
> config HAS_MEM_PAGING
> bool
>
> -config HAS_MEM_SHARING
> - bool
> -
> config HAS_PDX
> bool
>
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 90c66079f9..0815cf8f07 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -923,7 +923,7 @@ static void complete_domain_destroy(struct rcu_head
> *head)
> xfree(d->vm_event_paging);
> #endif
> xfree(d->vm_event_monitor);
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> xfree(d->vm_event_share);
> #endif
>
> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
> index 80728ea57d..6c40dccae9 100644
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -3760,7 +3760,7 @@ void grant_table_init_vcpu(struct vcpu *v)
> v->maptrack_tail = MAPTRACK_TAIL;
> }
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> int mem_sharing_gref_to_gfn(struct grant_table *gt, grant_ref_t ref,
> gfn_t *gfn, uint16_t *status)
> {
> diff --git a/xen/common/memory.c b/xen/common/memory.c
> index 520d6f4803..69851f4344 100644
> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -1671,7 +1671,7 @@ int check_get_page_from_gfn(struct domain *d, gfn_t
> gfn, bool readonly,
> return -EAGAIN;
> }
> #endif
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> if ( (q & P2M_UNSHARE) && p2m_is_shared(p2mt) )
> {
> if ( page )
> diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
> index 6e68be47bc..163a671cea 100644
> --- a/xen/common/vm_event.c
> +++ b/xen/common/vm_event.c
> @@ -544,7 +544,7 @@ static void monitor_notification(struct vcpu *v, unsigned
> int port)
> vm_event_resume(v->domain, v->domain->vm_event_monitor);
> }
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> /* Registered with Xen-bound event channel for incoming notifications. */
> static void mem_sharing_notification(struct vcpu *v, unsigned int port)
> {
> @@ -574,7 +574,7 @@ void vm_event_cleanup(struct domain *d)
> destroy_waitqueue_head(&d->vm_event_monitor->wq);
> (void)vm_event_disable(d, &d->vm_event_monitor);
> }
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> if ( vm_event_check_ring(d->vm_event_share) )
> {
> destroy_waitqueue_head(&d->vm_event_share->wq);
> @@ -720,7 +720,7 @@ int vm_event_domctl(struct domain *d, struct
> xen_domctl_vm_event_op *vec,
> }
> break;
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> case XEN_DOMCTL_VM_EVENT_OP_SHARING:
> {
> rc = -EINVAL;
> diff --git a/xen/include/asm-x86/mem_sharing.h
> b/xen/include/asm-x86/mem_sharing.h
> index afd0c17292..db22468744 100644
> --- a/xen/include/asm-x86/mem_sharing.h
> +++ b/xen/include/asm-x86/mem_sharing.h
> @@ -24,6 +24,8 @@
> #include <public/domctl.h>
> #include <public/memory.h>
>
> +#ifdef CONFIG_MEM_SHARING
> +
> /* Auditing of memory sharing code? */
> #ifndef NDEBUG
> #define MEM_SHARING_AUDIT 1
> @@ -99,4 +101,30 @@ int mem_sharing_domctl(struct domain *d,
> */
> int relinquish_shared_pages(struct domain *d);
>
> +#else
> +
> +static inline unsigned int mem_sharing_get_nr_saved_mfns(void)
> +{
> + return 0;
> +}
> +static inline unsigned int mem_sharing_get_nr_shared_mfns(void)
> +{
> + return 0;
> +}
> +static inline int mem_sharing_unshare_page(struct domain *d,
> + unsigned long gfn,
> + uint16_t flags)
> +{
> + ASSERT_UNREACHABLE();
> + return -EOPNOTSUPP;
> +}
> +static inline int mem_sharing_notify_enomem(struct domain *d, unsigned long
> gfn,
> + bool allow_sleep)
> +{
> + ASSERT_UNREACHABLE();
> + return -EOPNOTSUPP;
> +}
> +
> +#endif
> +
> #endif /* __MEM_SHARING_H__ */
> diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
> index 24c4205ba7..d8ab53d688 100644
> --- a/xen/include/asm-x86/mm.h
> +++ b/xen/include/asm-x86/mm.h
> @@ -127,6 +127,8 @@ struct page_info
> /* For non-pinnable single-page shadows, a higher entry that points
> * at us. */
> paddr_t up;
> +
> +#ifdef CONFIG_MEM_SHARING
> /* For shared/sharable pages, we use a doubly-linked list
> * of all the {pfn,domain} pairs that map this page. We also
> include
> * an opaque handle, which is effectively a version, so that
> clients
> @@ -134,6 +136,7 @@ struct page_info
> * This list is allocated and freed when a page is shared/unshared.
> */
> struct page_sharing_info *sharing;
> +#endif
> };
>
> /* Reference count and various PGC_xxx flags and fields. */
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 2201faca6b..410c74489f 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -459,7 +459,7 @@ struct domain
> /* Various vm_events */
>
> /* Memory sharing support */
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> struct vm_event_domain *vm_event_share;
> #endif
> /* Memory paging support */
> diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
> index 01d2814fed..ef52bb1764 100644
> --- a/xen/include/xsm/dummy.h
> +++ b/xen/include/xsm/dummy.h
> @@ -597,7 +597,7 @@ static XSM_INLINE int xsm_mem_paging(XSM_DEFAULT_ARG
> struct domain *d)
> }
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> static XSM_INLINE int xsm_mem_sharing(XSM_DEFAULT_ARG struct domain *d)
> {
> XSM_ASSERT_ACTION(XSM_DM_PRIV);
> diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
> index 9a90355056..d61ba77374 100644
> --- a/xen/include/xsm/xsm.h
> +++ b/xen/include/xsm/xsm.h
> @@ -150,7 +150,7 @@ struct xsm_operations {
> int (*mem_paging) (struct domain *d);
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> int (*mem_sharing) (struct domain *d);
> #endif
>
> @@ -597,7 +597,7 @@ static inline int xsm_mem_paging (xsm_default_t def,
> struct domain *d)
> }
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> static inline int xsm_mem_sharing (xsm_default_t def, struct domain *d)
> {
> return xsm_ops->mem_sharing(d);
> diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
> index c9a566f2b5..5705e52791 100644
> --- a/xen/xsm/dummy.c
> +++ b/xen/xsm/dummy.c
> @@ -128,7 +128,7 @@ void __init xsm_fixup_ops (struct xsm_operations *ops)
> set_to_dummy_if_null(ops, mem_paging);
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> set_to_dummy_if_null(ops, mem_sharing);
> #endif
>
> diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
> index a7d690ac3c..791c1f66af 100644
> --- a/xen/xsm/flask/hooks.c
> +++ b/xen/xsm/flask/hooks.c
> @@ -1262,7 +1262,7 @@ static int flask_mem_paging(struct domain *d)
> }
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> static int flask_mem_sharing(struct domain *d)
> {
> return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_SHARING);
> @@ -1829,7 +1829,7 @@ static struct xsm_operations flask_ops = {
> .mem_paging = flask_mem_paging,
> #endif
>
> -#ifdef CONFIG_HAS_MEM_SHARING
> +#ifdef CONFIG_MEM_SHARING
> .mem_sharing = flask_mem_sharing,
> #endif
>
> --
> 2.20.1
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-06-03 8:26 ` Jan Beulich
2019-06-03 8:26 ` [Xen-devel] " Jan Beulich
@ 2019-06-03 16:38 ` Tamas K Lengyel
2019-06-03 16:38 ` [Xen-devel] " Tamas K Lengyel
` (2 more replies)
2019-06-04 14:36 ` Daniel De Graaf
2 siblings, 3 replies; 30+ messages in thread
From: Tamas K Lengyel @ 2019-06-03 16:38 UTC (permalink / raw)
To: Jan Beulich
Cc: Stefano Stabellini, Wei Liu, Razvan Cojocaru,
Konrad Rzeszutek Wilk, George Dunlap, Andrew Cooper, Ian Jackson,
Tim Deegan, Julien Grall, xen-devel, Daniel de Graaf,
Roger Pau Monne
On Mon, Jun 3, 2019 at 2:26 AM Jan Beulich <JBeulich@suse.com> wrote:
>
> >>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
> > Disable it by default as it is only an experimental subsystem.
> >
> > Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> > Cc: Jan Beulich <jbeulich@suse.com>
> > Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> > Cc: Wei Liu <wei.liu2@citrix.com>
> > Cc: Roger Pau Monne <roger.pau@citrix.com>
> > Cc: George Dunlap <George.Dunlap@eu.citrix.com>
> > Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> > Cc: Julien Grall <julien.grall@arm.com>
> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > Cc: Tim Deegan <tim@xen.org>
> > Cc: George Dunlap <george.dunlap@eu.citrix.com>
> > ----
> > v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other
> > fixups
> > ---
> > xen/arch/x86/Kconfig | 6 +++++-
> > xen/arch/x86/domain.c | 2 ++
> > xen/arch/x86/domctl.c | 2 ++
> > xen/arch/x86/mm/Makefile | 2 +-
> > xen/arch/x86/x86_64/compat/mm.c | 2 ++
> > xen/arch/x86/x86_64/mm.c | 2 ++
> > xen/common/Kconfig | 3 ---
> > xen/common/domain.c | 2 +-
> > xen/common/grant_table.c | 2 +-
> > xen/common/memory.c | 2 +-
> > xen/common/vm_event.c | 6 +++---
> > xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
> > xen/include/asm-x86/mm.h | 3 +++
> > xen/include/xen/sched.h | 2 +-
> > xen/include/xsm/dummy.h | 2 +-
> > xen/include/xsm/xsm.h | 4 ++--
> > xen/xsm/dummy.c | 2 +-
> > xen/xsm/flask/hooks.c | 4 ++--
> > 18 files changed, 58 insertions(+), 18 deletions(-)
>
> Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
Indeed, I've also seem to have missed CC-ing Razvan (fixed now).
Tamas
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Xen-devel] [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-06-03 16:38 ` Tamas K Lengyel
@ 2019-06-03 16:38 ` Tamas K Lengyel
2019-06-03 16:40 ` Julien Grall
2019-06-04 8:41 ` Razvan Cojocaru
2 siblings, 0 replies; 30+ messages in thread
From: Tamas K Lengyel @ 2019-06-03 16:38 UTC (permalink / raw)
To: Jan Beulich
Cc: Stefano Stabellini, Wei Liu, Razvan Cojocaru,
Konrad Rzeszutek Wilk, George Dunlap, Andrew Cooper, Ian Jackson,
Tim Deegan, Julien Grall, xen-devel, Daniel de Graaf,
Roger Pau Monne
On Mon, Jun 3, 2019 at 2:26 AM Jan Beulich <JBeulich@suse.com> wrote:
>
> >>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
> > Disable it by default as it is only an experimental subsystem.
> >
> > Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> > Cc: Jan Beulich <jbeulich@suse.com>
> > Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> > Cc: Wei Liu <wei.liu2@citrix.com>
> > Cc: Roger Pau Monne <roger.pau@citrix.com>
> > Cc: George Dunlap <George.Dunlap@eu.citrix.com>
> > Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> > Cc: Julien Grall <julien.grall@arm.com>
> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > Cc: Tim Deegan <tim@xen.org>
> > Cc: George Dunlap <george.dunlap@eu.citrix.com>
> > ----
> > v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other
> > fixups
> > ---
> > xen/arch/x86/Kconfig | 6 +++++-
> > xen/arch/x86/domain.c | 2 ++
> > xen/arch/x86/domctl.c | 2 ++
> > xen/arch/x86/mm/Makefile | 2 +-
> > xen/arch/x86/x86_64/compat/mm.c | 2 ++
> > xen/arch/x86/x86_64/mm.c | 2 ++
> > xen/common/Kconfig | 3 ---
> > xen/common/domain.c | 2 +-
> > xen/common/grant_table.c | 2 +-
> > xen/common/memory.c | 2 +-
> > xen/common/vm_event.c | 6 +++---
> > xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
> > xen/include/asm-x86/mm.h | 3 +++
> > xen/include/xen/sched.h | 2 +-
> > xen/include/xsm/dummy.h | 2 +-
> > xen/include/xsm/xsm.h | 4 ++--
> > xen/xsm/dummy.c | 2 +-
> > xen/xsm/flask/hooks.c | 4 ++--
> > 18 files changed, 58 insertions(+), 18 deletions(-)
>
> Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
Indeed, I've also seem to have missed CC-ing Razvan (fixed now).
Tamas
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-06-03 16:38 ` Tamas K Lengyel
2019-06-03 16:38 ` [Xen-devel] " Tamas K Lengyel
@ 2019-06-03 16:40 ` Julien Grall
2019-06-03 16:40 ` [Xen-devel] " Julien Grall
2019-06-03 16:55 ` Tamas K Lengyel
2019-06-04 8:41 ` Razvan Cojocaru
2 siblings, 2 replies; 30+ messages in thread
From: Julien Grall @ 2019-06-03 16:40 UTC (permalink / raw)
To: Tamas K Lengyel, Jan Beulich
Cc: Stefano Stabellini, Wei Liu, Razvan Cojocaru,
Konrad Rzeszutek Wilk, George Dunlap, Andrew Cooper, Ian Jackson,
Tim Deegan, xen-devel, Daniel de Graaf, Roger Pau Monne
Hi,
On 03/06/2019 17:38, Tamas K Lengyel wrote:
> On Mon, Jun 3, 2019 at 2:26 AM Jan Beulich <JBeulich@suse.com> wrote:
>>
>>>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
>>> Disable it by default as it is only an experimental subsystem.
>>>
>>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>>> Cc: Jan Beulich <jbeulich@suse.com>
>>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Cc: Wei Liu <wei.liu2@citrix.com>
>>> Cc: Roger Pau Monne <roger.pau@citrix.com>
>>> Cc: George Dunlap <George.Dunlap@eu.citrix.com>
>>> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
>>> Cc: Julien Grall <julien.grall@arm.com>
>>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>>> Cc: Stefano Stabellini <sstabellini@kernel.org>
>>> Cc: Tim Deegan <tim@xen.org>
>>> Cc: George Dunlap <george.dunlap@eu.citrix.com>
>>> ----
>>> v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other
>>> fixups
>>> ---
>>> xen/arch/x86/Kconfig | 6 +++++-
>>> xen/arch/x86/domain.c | 2 ++
>>> xen/arch/x86/domctl.c | 2 ++
>>> xen/arch/x86/mm/Makefile | 2 +-
>>> xen/arch/x86/x86_64/compat/mm.c | 2 ++
>>> xen/arch/x86/x86_64/mm.c | 2 ++
>>> xen/common/Kconfig | 3 ---
>>> xen/common/domain.c | 2 +-
>>> xen/common/grant_table.c | 2 +-
>>> xen/common/memory.c | 2 +-
>>> xen/common/vm_event.c | 6 +++---
>>> xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
>>> xen/include/asm-x86/mm.h | 3 +++
>>> xen/include/xen/sched.h | 2 +-
>>> xen/include/xsm/dummy.h | 2 +-
>>> xen/include/xsm/xsm.h | 4 ++--
>>> xen/xsm/dummy.c | 2 +-
>>> xen/xsm/flask/hooks.c | 4 ++--
>>> 18 files changed, 58 insertions(+), 18 deletions(-)
>>
>> Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
>
> Indeed, I've also seem to have missed CC-ing Razvan (fixed now).
Nowadays, add_maintainers.pl should do the right for you without having to
modifying by hand each patch:
42sh> scripts/add_maintainers.pl -d .
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] 30+ messages in thread
* Re: [Xen-devel] [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-06-03 16:40 ` Julien Grall
@ 2019-06-03 16:40 ` Julien Grall
2019-06-03 16:55 ` Tamas K Lengyel
1 sibling, 0 replies; 30+ messages in thread
From: Julien Grall @ 2019-06-03 16:40 UTC (permalink / raw)
To: Tamas K Lengyel, Jan Beulich
Cc: Stefano Stabellini, Wei Liu, Razvan Cojocaru,
Konrad Rzeszutek Wilk, George Dunlap, Andrew Cooper, Ian Jackson,
Tim Deegan, xen-devel, Daniel de Graaf, Roger Pau Monne
Hi,
On 03/06/2019 17:38, Tamas K Lengyel wrote:
> On Mon, Jun 3, 2019 at 2:26 AM Jan Beulich <JBeulich@suse.com> wrote:
>>
>>>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
>>> Disable it by default as it is only an experimental subsystem.
>>>
>>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>>> Cc: Jan Beulich <jbeulich@suse.com>
>>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Cc: Wei Liu <wei.liu2@citrix.com>
>>> Cc: Roger Pau Monne <roger.pau@citrix.com>
>>> Cc: George Dunlap <George.Dunlap@eu.citrix.com>
>>> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
>>> Cc: Julien Grall <julien.grall@arm.com>
>>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>>> Cc: Stefano Stabellini <sstabellini@kernel.org>
>>> Cc: Tim Deegan <tim@xen.org>
>>> Cc: George Dunlap <george.dunlap@eu.citrix.com>
>>> ----
>>> v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other
>>> fixups
>>> ---
>>> xen/arch/x86/Kconfig | 6 +++++-
>>> xen/arch/x86/domain.c | 2 ++
>>> xen/arch/x86/domctl.c | 2 ++
>>> xen/arch/x86/mm/Makefile | 2 +-
>>> xen/arch/x86/x86_64/compat/mm.c | 2 ++
>>> xen/arch/x86/x86_64/mm.c | 2 ++
>>> xen/common/Kconfig | 3 ---
>>> xen/common/domain.c | 2 +-
>>> xen/common/grant_table.c | 2 +-
>>> xen/common/memory.c | 2 +-
>>> xen/common/vm_event.c | 6 +++---
>>> xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
>>> xen/include/asm-x86/mm.h | 3 +++
>>> xen/include/xen/sched.h | 2 +-
>>> xen/include/xsm/dummy.h | 2 +-
>>> xen/include/xsm/xsm.h | 4 ++--
>>> xen/xsm/dummy.c | 2 +-
>>> xen/xsm/flask/hooks.c | 4 ++--
>>> 18 files changed, 58 insertions(+), 18 deletions(-)
>>
>> Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
>
> Indeed, I've also seem to have missed CC-ing Razvan (fixed now).
Nowadays, add_maintainers.pl should do the right for you without having to
modifying by hand each patch:
42sh> scripts/add_maintainers.pl -d .
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] 30+ messages in thread
* Re: [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-06-03 16:40 ` Julien Grall
2019-06-03 16:40 ` [Xen-devel] " Julien Grall
@ 2019-06-03 16:55 ` Tamas K Lengyel
2019-06-03 16:55 ` [Xen-devel] " Tamas K Lengyel
1 sibling, 1 reply; 30+ messages in thread
From: Tamas K Lengyel @ 2019-06-03 16:55 UTC (permalink / raw)
To: Julien Grall
Cc: Stefano Stabellini, Wei Liu, Razvan Cojocaru,
Konrad Rzeszutek Wilk, George Dunlap, Andrew Cooper, Ian Jackson,
Tim Deegan, Jan Beulich, xen-devel, Daniel de Graaf,
Roger Pau Monne
On Mon, Jun 3, 2019 at 10:40 AM Julien Grall <julien.grall@arm.com> wrote:
>
> Hi,
>
> On 03/06/2019 17:38, Tamas K Lengyel wrote:
> > On Mon, Jun 3, 2019 at 2:26 AM Jan Beulich <JBeulich@suse.com> wrote:
> >>
> >>>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
> >>> Disable it by default as it is only an experimental subsystem.
> >>>
> >>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> >>> Cc: Jan Beulich <jbeulich@suse.com>
> >>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> >>> Cc: Wei Liu <wei.liu2@citrix.com>
> >>> Cc: Roger Pau Monne <roger.pau@citrix.com>
> >>> Cc: George Dunlap <George.Dunlap@eu.citrix.com>
> >>> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> >>> Cc: Julien Grall <julien.grall@arm.com>
> >>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> >>> Cc: Stefano Stabellini <sstabellini@kernel.org>
> >>> Cc: Tim Deegan <tim@xen.org>
> >>> Cc: George Dunlap <george.dunlap@eu.citrix.com>
> >>> ----
> >>> v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other
> >>> fixups
> >>> ---
> >>> xen/arch/x86/Kconfig | 6 +++++-
> >>> xen/arch/x86/domain.c | 2 ++
> >>> xen/arch/x86/domctl.c | 2 ++
> >>> xen/arch/x86/mm/Makefile | 2 +-
> >>> xen/arch/x86/x86_64/compat/mm.c | 2 ++
> >>> xen/arch/x86/x86_64/mm.c | 2 ++
> >>> xen/common/Kconfig | 3 ---
> >>> xen/common/domain.c | 2 +-
> >>> xen/common/grant_table.c | 2 +-
> >>> xen/common/memory.c | 2 +-
> >>> xen/common/vm_event.c | 6 +++---
> >>> xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
> >>> xen/include/asm-x86/mm.h | 3 +++
> >>> xen/include/xen/sched.h | 2 +-
> >>> xen/include/xsm/dummy.h | 2 +-
> >>> xen/include/xsm/xsm.h | 4 ++--
> >>> xen/xsm/dummy.c | 2 +-
> >>> xen/xsm/flask/hooks.c | 4 ++--
> >>> 18 files changed, 58 insertions(+), 18 deletions(-)
> >>
> >> Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
> >
> > Indeed, I've also seem to have missed CC-ing Razvan (fixed now).
>
> Nowadays, add_maintainers.pl should do the right for you without having to
> modifying by hand each patch:
>
> 42sh> scripts/add_maintainers.pl -d .
Hi Julien,
ah good call! I've been using scripts/get_maintainers.pl which
evidently is more error-prone in case the patch goes through revisions
and I forget to re-check if more people need CC-ing now.
Thanks,
Tamas
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Xen-devel] [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-06-03 16:55 ` Tamas K Lengyel
@ 2019-06-03 16:55 ` Tamas K Lengyel
0 siblings, 0 replies; 30+ messages in thread
From: Tamas K Lengyel @ 2019-06-03 16:55 UTC (permalink / raw)
To: Julien Grall
Cc: Stefano Stabellini, Wei Liu, Razvan Cojocaru,
Konrad Rzeszutek Wilk, George Dunlap, Andrew Cooper, Ian Jackson,
Tim Deegan, Jan Beulich, xen-devel, Daniel de Graaf,
Roger Pau Monne
On Mon, Jun 3, 2019 at 10:40 AM Julien Grall <julien.grall@arm.com> wrote:
>
> Hi,
>
> On 03/06/2019 17:38, Tamas K Lengyel wrote:
> > On Mon, Jun 3, 2019 at 2:26 AM Jan Beulich <JBeulich@suse.com> wrote:
> >>
> >>>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
> >>> Disable it by default as it is only an experimental subsystem.
> >>>
> >>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
> >>> Cc: Jan Beulich <jbeulich@suse.com>
> >>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> >>> Cc: Wei Liu <wei.liu2@citrix.com>
> >>> Cc: Roger Pau Monne <roger.pau@citrix.com>
> >>> Cc: George Dunlap <George.Dunlap@eu.citrix.com>
> >>> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> >>> Cc: Julien Grall <julien.grall@arm.com>
> >>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> >>> Cc: Stefano Stabellini <sstabellini@kernel.org>
> >>> Cc: Tim Deegan <tim@xen.org>
> >>> Cc: George Dunlap <george.dunlap@eu.citrix.com>
> >>> ----
> >>> v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other
> >>> fixups
> >>> ---
> >>> xen/arch/x86/Kconfig | 6 +++++-
> >>> xen/arch/x86/domain.c | 2 ++
> >>> xen/arch/x86/domctl.c | 2 ++
> >>> xen/arch/x86/mm/Makefile | 2 +-
> >>> xen/arch/x86/x86_64/compat/mm.c | 2 ++
> >>> xen/arch/x86/x86_64/mm.c | 2 ++
> >>> xen/common/Kconfig | 3 ---
> >>> xen/common/domain.c | 2 +-
> >>> xen/common/grant_table.c | 2 +-
> >>> xen/common/memory.c | 2 +-
> >>> xen/common/vm_event.c | 6 +++---
> >>> xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
> >>> xen/include/asm-x86/mm.h | 3 +++
> >>> xen/include/xen/sched.h | 2 +-
> >>> xen/include/xsm/dummy.h | 2 +-
> >>> xen/include/xsm/xsm.h | 4 ++--
> >>> xen/xsm/dummy.c | 2 +-
> >>> xen/xsm/flask/hooks.c | 4 ++--
> >>> 18 files changed, 58 insertions(+), 18 deletions(-)
> >>
> >> Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
> >
> > Indeed, I've also seem to have missed CC-ing Razvan (fixed now).
>
> Nowadays, add_maintainers.pl should do the right for you without having to
> modifying by hand each patch:
>
> 42sh> scripts/add_maintainers.pl -d .
Hi Julien,
ah good call! I've been using scripts/get_maintainers.pl which
evidently is more error-prone in case the patch goes through revisions
and I forget to re-check if more people need CC-ing now.
Thanks,
Tamas
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-06-03 16:38 ` Tamas K Lengyel
2019-06-03 16:38 ` [Xen-devel] " Tamas K Lengyel
2019-06-03 16:40 ` Julien Grall
@ 2019-06-04 8:41 ` Razvan Cojocaru
2019-06-04 8:41 ` [Xen-devel] " Razvan Cojocaru
2 siblings, 1 reply; 30+ messages in thread
From: Razvan Cojocaru @ 2019-06-04 8:41 UTC (permalink / raw)
To: Tamas K Lengyel, Jan Beulich
Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
George Dunlap, Andrew Cooper, Ian Jackson, Tim Deegan,
Julien Grall, xen-devel, Daniel de Graaf, Roger Pau Monne
On 6/3/19 7:38 PM, Tamas K Lengyel wrote:
> On Mon, Jun 3, 2019 at 2:26 AM Jan Beulich <JBeulich@suse.com> wrote:
>>
>>>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
>>> Disable it by default as it is only an experimental subsystem.
>>>
>>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>>> Cc: Jan Beulich <jbeulich@suse.com>
>>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Cc: Wei Liu <wei.liu2@citrix.com>
>>> Cc: Roger Pau Monne <roger.pau@citrix.com>
>>> Cc: George Dunlap <George.Dunlap@eu.citrix.com>
>>> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
>>> Cc: Julien Grall <julien.grall@arm.com>
>>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>>> Cc: Stefano Stabellini <sstabellini@kernel.org>
>>> Cc: Tim Deegan <tim@xen.org>
>>> Cc: George Dunlap <george.dunlap@eu.citrix.com>
>>> ----
>>> v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other
>>> fixups
>>> ---
>>> xen/arch/x86/Kconfig | 6 +++++-
>>> xen/arch/x86/domain.c | 2 ++
>>> xen/arch/x86/domctl.c | 2 ++
>>> xen/arch/x86/mm/Makefile | 2 +-
>>> xen/arch/x86/x86_64/compat/mm.c | 2 ++
>>> xen/arch/x86/x86_64/mm.c | 2 ++
>>> xen/common/Kconfig | 3 ---
>>> xen/common/domain.c | 2 +-
>>> xen/common/grant_table.c | 2 +-
>>> xen/common/memory.c | 2 +-
>>> xen/common/vm_event.c | 6 +++---
>>> xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
>>> xen/include/asm-x86/mm.h | 3 +++
>>> xen/include/xen/sched.h | 2 +-
>>> xen/include/xsm/dummy.h | 2 +-
>>> xen/include/xsm/xsm.h | 4 ++--
>>> xen/xsm/dummy.c | 2 +-
>>> xen/xsm/flask/hooks.c | 4 ++--
>>> 18 files changed, 58 insertions(+), 18 deletions(-)
>>
>> Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
>
> Indeed, I've also seem to have missed CC-ing Razvan (fixed now).
Acked-by: Razvan Cojocaru <rcojocaru@bitdefender.com>
Thanks,
Razvan
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Xen-devel] [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-06-04 8:41 ` Razvan Cojocaru
@ 2019-06-04 8:41 ` Razvan Cojocaru
0 siblings, 0 replies; 30+ messages in thread
From: Razvan Cojocaru @ 2019-06-04 8:41 UTC (permalink / raw)
To: Tamas K Lengyel, Jan Beulich
Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
George Dunlap, Andrew Cooper, Ian Jackson, Tim Deegan,
Julien Grall, xen-devel, Daniel de Graaf, Roger Pau Monne
On 6/3/19 7:38 PM, Tamas K Lengyel wrote:
> On Mon, Jun 3, 2019 at 2:26 AM Jan Beulich <JBeulich@suse.com> wrote:
>>
>>>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
>>> Disable it by default as it is only an experimental subsystem.
>>>
>>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>>> Cc: Jan Beulich <jbeulich@suse.com>
>>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Cc: Wei Liu <wei.liu2@citrix.com>
>>> Cc: Roger Pau Monne <roger.pau@citrix.com>
>>> Cc: George Dunlap <George.Dunlap@eu.citrix.com>
>>> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
>>> Cc: Julien Grall <julien.grall@arm.com>
>>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>>> Cc: Stefano Stabellini <sstabellini@kernel.org>
>>> Cc: Tim Deegan <tim@xen.org>
>>> Cc: George Dunlap <george.dunlap@eu.citrix.com>
>>> ----
>>> v4: add ASSERT_UNREACHABLE to inlined functions where applicable & other
>>> fixups
>>> ---
>>> xen/arch/x86/Kconfig | 6 +++++-
>>> xen/arch/x86/domain.c | 2 ++
>>> xen/arch/x86/domctl.c | 2 ++
>>> xen/arch/x86/mm/Makefile | 2 +-
>>> xen/arch/x86/x86_64/compat/mm.c | 2 ++
>>> xen/arch/x86/x86_64/mm.c | 2 ++
>>> xen/common/Kconfig | 3 ---
>>> xen/common/domain.c | 2 +-
>>> xen/common/grant_table.c | 2 +-
>>> xen/common/memory.c | 2 +-
>>> xen/common/vm_event.c | 6 +++---
>>> xen/include/asm-x86/mem_sharing.h | 28 ++++++++++++++++++++++++++++
>>> xen/include/asm-x86/mm.h | 3 +++
>>> xen/include/xen/sched.h | 2 +-
>>> xen/include/xsm/dummy.h | 2 +-
>>> xen/include/xsm/xsm.h | 4 ++--
>>> xen/xsm/dummy.c | 2 +-
>>> xen/xsm/flask/hooks.c | 4 ++--
>>> 18 files changed, 58 insertions(+), 18 deletions(-)
>>
>> Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
>
> Indeed, I've also seem to have missed CC-ing Razvan (fixed now).
Acked-by: Razvan Cojocaru <rcojocaru@bitdefender.com>
Thanks,
Razvan
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Xen-devel] [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-06-03 8:26 ` Jan Beulich
2019-06-03 8:26 ` [Xen-devel] " Jan Beulich
2019-06-03 16:38 ` Tamas K Lengyel
@ 2019-06-04 14:36 ` Daniel De Graaf
2 siblings, 0 replies; 30+ messages in thread
From: Daniel De Graaf @ 2019-06-04 14:36 UTC (permalink / raw)
To: Jan Beulich
Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
George Dunlap, Andrew Cooper, Ian Jackson, Tim Deegan,
Julien Grall, Tamas K Lengyel, xen-devel, Roger Pau Monne
On 6/3/19 4:26 AM, Jan Beulich wrote:
>>>> On 16.05.19 at 23:37, <tamas@tklengyel.com> wrote:
>> Disable it by default as it is only an experimental subsystem.
>>
>> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
>
> Daniel, it looks like you weren't Cc-ed here, but your ack is needed.
>
> Jan
Acked-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [Xen-devel] [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled
2019-05-16 21:37 ` [PATCH v5 4/4] x86/mem_sharing: compile mem_sharing subsystem only when kconfig is enabled Tamas K Lengyel
` (2 preceding siblings ...)
2019-06-03 8:26 ` Jan Beulich
@ 2019-06-17 12:17 ` Tamas K Lengyel
3 siblings, 0 replies; 30+ messages in thread
From: Tamas K Lengyel @ 2019-06-17 12:17 UTC (permalink / raw)
To: Xen-devel
Cc: Stefano Stabellini, Wei Liu, Razvan Cojocaru,
Konrad Rzeszutek Wilk, George Dunlap, Andrew Cooper, Ian Jackson,
Tim Deegan, Julien Grall, Jan Beulich, Daniel De Graaf,
Roger Pau Monne
On Thu, May 16, 2019 at 11:38 PM Tamas K Lengyel <tamas@tklengyel.com> wrote:
>
> Disable it by default as it is only an experimental subsystem.
>
> Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
Patch ping, are any more ack's missing on this one? Current tally is:
Acked-by: Razvan Cojocaru <rcojocaru@bitdefender.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
This patch could be merged separate from the series I posted it as part of.
Thanks,
Tamas
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
^ permalink raw reply [flat|nested] 30+ messages in thread