[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/8] xen/evtchn: modify evtchn_alloc_unbound to allocate specified port


  • To: Julien Grall <julien@xxxxxxx>
  • From: Rahul Singh <Rahul.Singh@xxxxxxx>
  • Date: Wed, 20 Jul 2022 09:59:15 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=waZRSNbw2JIFtxSxpSxziJAbnbk5G9weqWK6chagXzg=; b=PLlclkh5uIR8eoaWOZhpoUGD3IMoFNbK02o81geLEOM44GkJW7HKzn56IUgkXDMmB2VqRXh+IcwR7JHGyeg4HS65/3CtEVz4rIwZnI2+ZnoNVokKgCDCgNtcSLdMOfzDmlpDzpl0dddAfyDbuzRLPq4AOwyiW7kkojJdtd+51A8jLCJtBWRt+XHkWqatatN1rzLriYBajw4H7Uz0YeDs1ZwPG6rJPxpiiArGDnqzX2v7+Q0u82Wgz2mJt1sY1z13dfjHwB90Q1RJcVh3H0wRk4IjIbmutm2RKpfbRG3KDUXuWgr8Gnl8mGeToi00bSsqOpCMo8r+ZFKHBzgZDY9l7g==
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=waZRSNbw2JIFtxSxpSxziJAbnbk5G9weqWK6chagXzg=; b=ADNXXo7YeceUFqRQ6E334Hb7jEru9grVN9cGsDyh2dAI2vEkmcyWMHx2BdFoxI16MeQ3+Snj7BpUBFBNZMQgFoX4iPHX3JFlEjSrzyjD8k25bCHa669HNzEMgQ8GH2G/+JPmsTWglUzdefRYGO+TiYSXe4E3t4veOurpeDK7LYH5SSsJCkeOStilIXfyLOsQx0Oi+wOiPDGxoSzpnHOwQnK+C4+Oxsv8G2vfkYCQvgDd66kJzT8tSkA7822YqUoxPTLI/wpiPTc3eXq/NX/YwHg5Y6HRY/snniwyAfVQJK3TlxxwIuNBl8lwtWC52c39NOhb4Q0JyCcPrAB7VKKnrA==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=oWm3KOALTp/mXxN68prjgnE6iWWLc6dfTQKZKKTYsDZJ5UuaObjabE1vjkS8/CCI9+X/Svoz2VE22KQO1xgELvt+Leyb8iNiJN/HbUf9d/wSBgm4h9+02g1I+SbMOcxg2/DZDNLdBUKMJPIZK7FjKvNkwf2H3Y68Pgh/aamX1NG9DtVY+nzz+560RdmQZr6qOkdZK/jKX/EFBkwuubiOX9jH2H0+C785+tH8jlYcOmluUdUlJkpZy9PAVCAyRZA/2Ag3huD7MWFbbBljbLp0xXIlU7/YvdK2zQKQ3lEWmthDw1ZmbVZgQDtwIEr2DoAUMfs7t9r+fOPeX2X+bRk1Hw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EsPdQiTNzXTTT+ABA8OiXot21wlLZ++k6Ofc8tx82FoV305T71zjUGAcx0YXLfvKB9ofzslLqOaBvMOhQEYQAf01P0hReARN6XpkUqXGAQneuklzGRFEPOmkh9gDNG3kjdxkAWKdlPG/XuZjVzCtFb2UEDubJSmOCnHb5OBV4/uSaJF5f1+UIzq35wrRRiaHxP05AjuLuOPXOd9P7xoTJ4Y7sAaG4b9ocEL1iB+IxQBLdPWYXs8LUWOx63HOYCsXUC0GqRJGGlecYDOcxiCsjaG3zKUp8ZhaLwSal/bAnUWSWfK58MXI4HVi9hi5yBJOyRSOsuIgPtjnnL2TT8a5QA==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Wed, 20 Jul 2022 09:59:58 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHYhkXaSSR0QDc2DUiowhnmyNd/Sq1bgqiAgB3xuACAAai8gIAA1/CAgAA2U4CAAAT8AIAABuwAgAAKeYCAAAnjAIAAC4AAgAAEsgCACtZcgA==
  • Thread-topic: [PATCH 2/8] xen/evtchn: modify evtchn_alloc_unbound to allocate specified port

Hi ,

> On 13 Jul 2022, at 1:29 pm, Julien Grall <julien@xxxxxxx> wrote:
> 
> 
> 
> On 13/07/2022 13:12, Bertrand Marquis wrote:
>>> On 13 Jul 2022, at 12:31, Julien Grall <julien@xxxxxxx> wrote:
>>>> I can't
>>>> see why it would be wrong to have a more tight limit on static ports
>>>> than on traditional ("dynamic") ones. Even if only to make sure so
>>>> many dynamic ones are left.
>>> 
>>> This is similar to Xen forbidding to close a static port: it is not the 
>>> hypervisor business to check that there are enough event channel ports 
>>> freed for dynamic allocation.
>> On other side we need to be cautious not to add too much complexity in the 
>> code by trying to make things always magically work.
>> If you want Xen to be accessible to non expert by magically working all the 
>> time, there would be a lot of work to do.
> 
> It is not clear to me whether you are referring to a developper or admin here.
> 
> On the admin side, we need to make sure they have an easy way to configure 
> event channels. One knob is always going to easier than two knobs.
> 
> On the developper side, this could be resolved by better documentation in the 
> code/interface.
> 
> Cheers,

To conclude the discussion, If everyone agree I will add the below patch or 
similar in the next version to restrict the
max number of evtchn supported as suggested.


diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 532e50e321..a8c5825a4f 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -3422,7 +3422,7 @@ void __init create_domUs(void)
         struct xen_domctl_createdomain d_cfg = {
             .arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE,
             .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
-            .max_evtchn_port = -1,
+            .max_evtchn_port = MAX_EVTCHNS_PORT,
             .max_grant_frames = -1,
             .max_maptrack_frames = -1,
             .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
@@ -3582,7 +3582,7 @@ void __init create_dom0(void)
     struct domain *dom0;
     struct xen_domctl_createdomain dom0_cfg = {
         .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
-        .max_evtchn_port = -1,
+        .max_evtchn_port = MAX_EVTCHNS_PORT,
         .max_grant_frames = gnttab_dom0_frames(),
         .max_maptrack_frames = -1,
         .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index f08b07b8de..b1f95fbe1a 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -763,7 +763,7 @@ static struct domain *__init create_dom0(const module_t 
*image,
 {
     struct xen_domctl_createdomain dom0_cfg = {
         .flags = IS_ENABLED(CONFIG_TBOOT) ? XEN_DOMCTL_CDF_s3_integrity : 0,
-        .max_evtchn_port = -1,
+        .max_evtchn_port = MAX_EVTCHNS_PORT,
         .max_grant_frames = -1,
         .max_maptrack_frames = -1,
         .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index d6c029020f..783359f733 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -76,6 +76,8 @@ extern domid_t hardware_domid;
 /* Maximum number of event channels for any ABI. */
 #define MAX_NR_EVTCHNS MAX(EVTCHN_2L_NR_CHANNELS, EVTCHN_FIFO_NR_CHANNELS)
 
+#define MAX_EVTCHNS_PORT 4096
+
 #define EVTCHNS_PER_BUCKET (PAGE_SIZE / next_power_of_2(sizeof(struct evtchn)))
 #define EVTCHNS_PER_GROUP  (BUCKETS_PER_GROUP * EVTCHNS_PER_BUCKET)
 #define NR_EVTCHN_GROUPS   DIV_ROUND_UP(MAX_NR_EVTCHNS, EVTCHNS_PER_GROUP

Regards,
Rahul


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.