Re: [Xen-devel] [PATCH v2 04/12] xen/evtchn: Pass max_evtchn_port into evtchn_init()

2018-08-15 Thread Julien Grall

Hi Andrew,

On 08/13/2018 11:01 AM, Andrew Cooper wrote:

... rather than setting it up once domain_create() has completed.  This
involves constructing a default value for dom0.

No practical change in functionality.

Signed-off-by: Andrew Cooper 


For the Arm bits:

Acked-by: Julien Grall 

Cheers,


---
CC: Jan Beulich 
CC: Stefano Stabellini 
CC: Julien Grall 
CC: Wei Liu 
---
  xen/arch/arm/setup.c   | 4 +++-
  xen/arch/x86/setup.c   | 1 +
  xen/common/domain.c| 2 +-
  xen/common/domctl.c| 3 ---
  xen/common/event_channel.c | 4 ++--
  xen/include/xen/sched.h| 2 +-
  6 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 7d40a84..45f3841 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -691,7 +691,9 @@ void __init start_xen(unsigned long boot_phys_offset,
  const char *cmdline;
  struct bootmodule *xen_bootmodule;
  struct domain *dom0;
-struct xen_domctl_createdomain dom0_cfg = {};
+struct xen_domctl_createdomain dom0_cfg = {
+.max_evtchn_port = -1,
+};
  
  dcache_line_bytes = read_dcache_line_bytes();
  
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c

index 8301de8..015099f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -681,6 +681,7 @@ void __init noreturn __start_xen(unsigned long mbi_p)
  };
  struct xen_domctl_createdomain dom0_cfg = {
  .flags = XEN_DOMCTL_CDF_s3_integrity,
+.max_evtchn_port = -1,
  };
  
  /* Critical region without IDT or TSS.  Any fault is deadly! */

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 749722b..171d25e 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -362,7 +362,7 @@ struct domain *domain_create(domid_t domid,
  
  radix_tree_init(>pirq_tree);
  
-if ( (err = evtchn_init(d)) != 0 )

+if ( (err = evtchn_init(d, config->max_evtchn_port)) != 0 )
  goto fail;
  init_status |= INIT_evtchn;
  
diff --git a/xen/common/domctl.c b/xen/common/domctl.c

index 3a68fc9..0ef554a 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -540,9 +540,6 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) 
u_domctl)
  break;
  }
  
-d->max_evtchn_port = min_t(unsigned int,

-   op->u.createdomain.max_evtchn_port, 
INT_MAX);
-
  ret = 0;
  op->domain = d->domain_id;
  copyback = 1;
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index c620465..41cbbae 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -1284,10 +1284,10 @@ void evtchn_check_pollers(struct domain *d, unsigned 
int port)
  }
  }
  
-int evtchn_init(struct domain *d)

+int evtchn_init(struct domain *d, unsigned int max_port)
  {
  evtchn_2l_init(d);
-d->max_evtchn_port = INT_MAX;
+d->max_evtchn_port = min_t(unsigned int, max_port, INT_MAX);
  
  d->evtchn = alloc_evtchn_bucket(d, 0);

  if ( !d->evtchn )
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 3c35473..51ceebe 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -134,7 +134,7 @@ struct evtchn
  #endif
  } __attribute__((aligned(64)));
  
-int  evtchn_init(struct domain *d); /* from domain_create */

+int  evtchn_init(struct domain *d, unsigned int max_port);
  void evtchn_destroy(struct domain *d); /* from domain_kill */
  void evtchn_destroy_final(struct domain *d); /* from complete_domain_destroy 
*/
  



--
Julien Grall

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

Re: [Xen-devel] [PATCH v2 04/12] xen/evtchn: Pass max_evtchn_port into evtchn_init()

2018-08-15 Thread Jan Beulich
>>> On 13.08.18 at 12:01,  wrote:
> ... rather than setting it up once domain_create() has completed.  This
> involves constructing a default value for dom0.
> 
> No practical change in functionality.
> 
> Signed-off-by: Andrew Cooper 

Reviewed-by: Jan Beulich 



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

Re: [Xen-devel] [PATCH v2 04/12] xen/evtchn: Pass max_evtchn_port into evtchn_init()

2018-08-14 Thread Roger Pau Monné
On Mon, Aug 13, 2018 at 11:01:01AM +0100, Andrew Cooper wrote:
> ... rather than setting it up once domain_create() has completed.  This
> involves constructing a default value for dom0.
> 
> No practical change in functionality.
> 
> Signed-off-by: Andrew Cooper 

Reviewed-by: Roger Pau Monné 

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

[Xen-devel] [PATCH v2 04/12] xen/evtchn: Pass max_evtchn_port into evtchn_init()

2018-08-13 Thread Andrew Cooper
... rather than setting it up once domain_create() has completed.  This
involves constructing a default value for dom0.

No practical change in functionality.

Signed-off-by: Andrew Cooper 
---
CC: Jan Beulich 
CC: Stefano Stabellini 
CC: Julien Grall 
CC: Wei Liu 
---
 xen/arch/arm/setup.c   | 4 +++-
 xen/arch/x86/setup.c   | 1 +
 xen/common/domain.c| 2 +-
 xen/common/domctl.c| 3 ---
 xen/common/event_channel.c | 4 ++--
 xen/include/xen/sched.h| 2 +-
 6 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 7d40a84..45f3841 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -691,7 +691,9 @@ void __init start_xen(unsigned long boot_phys_offset,
 const char *cmdline;
 struct bootmodule *xen_bootmodule;
 struct domain *dom0;
-struct xen_domctl_createdomain dom0_cfg = {};
+struct xen_domctl_createdomain dom0_cfg = {
+.max_evtchn_port = -1,
+};
 
 dcache_line_bytes = read_dcache_line_bytes();
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 8301de8..015099f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -681,6 +681,7 @@ void __init noreturn __start_xen(unsigned long mbi_p)
 };
 struct xen_domctl_createdomain dom0_cfg = {
 .flags = XEN_DOMCTL_CDF_s3_integrity,
+.max_evtchn_port = -1,
 };
 
 /* Critical region without IDT or TSS.  Any fault is deadly! */
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 749722b..171d25e 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -362,7 +362,7 @@ struct domain *domain_create(domid_t domid,
 
 radix_tree_init(>pirq_tree);
 
-if ( (err = evtchn_init(d)) != 0 )
+if ( (err = evtchn_init(d, config->max_evtchn_port)) != 0 )
 goto fail;
 init_status |= INIT_evtchn;
 
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 3a68fc9..0ef554a 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -540,9 +540,6 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) 
u_domctl)
 break;
 }
 
-d->max_evtchn_port = min_t(unsigned int,
-   op->u.createdomain.max_evtchn_port, 
INT_MAX);
-
 ret = 0;
 op->domain = d->domain_id;
 copyback = 1;
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index c620465..41cbbae 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -1284,10 +1284,10 @@ void evtchn_check_pollers(struct domain *d, unsigned 
int port)
 }
 }
 
-int evtchn_init(struct domain *d)
+int evtchn_init(struct domain *d, unsigned int max_port)
 {
 evtchn_2l_init(d);
-d->max_evtchn_port = INT_MAX;
+d->max_evtchn_port = min_t(unsigned int, max_port, INT_MAX);
 
 d->evtchn = alloc_evtchn_bucket(d, 0);
 if ( !d->evtchn )
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 3c35473..51ceebe 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -134,7 +134,7 @@ struct evtchn
 #endif
 } __attribute__((aligned(64)));
 
-int  evtchn_init(struct domain *d); /* from domain_create */
+int  evtchn_init(struct domain *d, unsigned int max_port);
 void evtchn_destroy(struct domain *d); /* from domain_kill */
 void evtchn_destroy_final(struct domain *d); /* from complete_domain_destroy */
 
-- 
2.1.4


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