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

RE: [PATCH v6 0/9] xen: drop hypercall function tables


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "christopher.w.clark@xxxxxxxxx" <christopher.w.clark@xxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • From: Henry Wang <Henry.Wang@xxxxxxx>
  • Date: Wed, 6 Jul 2022 07:30:23 +0000
  • Accept-language: zh-CN, 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=Gy6vtQvPHe/s3EBQ+9ORO4entkW9CaJE3vnSWfjN6n8=; b=cf2x8EuhhqKLeWBupzBHHU+C9KUUY3tFSgDdREJFfqLM6HodB4gDh2DtWD6HqYErMzxm/7hP0Kbz9HHD701+GMNI/X7jNsr4Fpqh6goaB/tpsrWczkAfuj+IuL4dGMlHjYVZY/Zb8fUWKYyQrx6902mfgq+KLgfKox5FF72zByoyPeAxhO82saRfml/WGBFhXPP4Ahh0zWCUh4+LSdV9PJ4Bxfpo3i+uu/dQuBqxQdxLkmRgCWkyO0zdq0q8Y9r/Bl1H31Co5icq5Xfd7YUBGhreq8fc+xQVgrlmRH1d85RMULNsRMMcPxpT2VCMU1VN6ruGJXGz2m8ysw50OzS1uQ==
  • 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=Gy6vtQvPHe/s3EBQ+9ORO4entkW9CaJE3vnSWfjN6n8=; b=oeGh6p/QDBxsNZZTBP4b+413FvJN8mldPcXfPVyCKW94Ak1Jp+qNeRaaRXOlPigfmrvXXkLZ5mbLVVE5bvooOjhp+NreyEcykqAP+Xh6WBzDxFd3z17xAl8hZNWgP78SNtGKiNwBUuvFHByDqBaWu7AJEQHWiT4+39wO4ByLYWGmWj6EKqxBxpLr9wT+phbxErj3ZBosxhIp64nAA6hipqlHBTBvjYotpcmzRlvAzsQoUCaPbUl0cAkG3kI6HHhHhS3S5bCkdOS1OM1sVE+aDa13NwSWZ7CwDwmzxN02leAIiCVUZrKnHO111XqUMKa9uiMKRf9CSyR0TCkSag7plA==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=hXTzX7rsmJ3+Y4iEPyUuls2+JnU56VgAUs/87es+p3/LlQzzKwnoWRyCP5yB+IeqAdD2ghS4022atftZzQp47UUYAkeGyCHkj2FcXuCrleDM5Kza6ph0I4wpaD4Y3pXrQXYwWSXeVsGAs7LAX9Ca3QEjN0Rd92fDXprsmVqO/6yR0PI31fYW1dJpsgw6Ep9qv39Y1nDg1/N9azxlGwZV68ttaFMMgml03BWm6kP4241gq4hk6cIEVa16OU1GGPzW/72uZLdIi9DkZeTO0Lsz8UqHLNP3kDuVmOQUXR6dbNuOweIu37SsFHCVvL5kX6YH5cquAt/EWpC3BrNyM/6olg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UVRls5qWNCLgLaX3HhorMXb4gnrEyzhwNICdnz7DRIwSNy5E8mGIE3DJ1rqjNi80VpCKq3s5JHib5sUtlRUgGbPJUUhXRVM8mN053h2dmtMKT6vTmygcl2A1HKHlKtzuGJrvmBOiJDybyu8mdJhESgfLpbj//jlCPpCkgzRr2Hjg/VkBg5ebPD/2v1+tuY8r1auE/cGQeRCLZk+v1l9fRUw5LXWmTf/1/pBc3onGk82SSCH8sx5EoG98QGusoqt2OcNoeucLI/2eZ3Fs9eQMPFkDCZ9q/IORxAhi/Wd5j8Q/qQsnwthZKYtwwBQofd5G741o+oVmGe2/9jAwkjOI8w==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <Bertrand.Marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Wei Liu <wl@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Christopher Clark <christopher.w.clark@xxxxxxxxx>, Dario Faggioli <dfaggioli@xxxxxxxx>, Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>, "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 06 Jul 2022 07:30:41 +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: AQHYP4flEN1TZgxxxkSZpjQ9KWhqIa1xioog
  • Thread-topic: [PATCH v6 0/9] xen: drop hypercall function tables

Hi,

It seems that this series has been stale for more than 3 months, with:

Patch #1 merged.
Patch #2 need feedback regarding the kexec and argo changes.
Patch #3 #4 #5 #6 #7 #8 #9 reviewed/acked.

So sending this as a gentle reminder for kexec and argo maintainers.
Thanks!

Kind regards,
Henry

> -----Original Message-----
> Subject: [PATCH v6 0/9] xen: drop hypercall function tables
> 
> In order to avoid indirect function calls on the hypercall path as
> much as possible this series is removing the hypercall function tables
> and is replacing the hypercall handler calls via the function array
> by automatically generated call macros.
> 
> Another by-product of generating the call macros is the automatic
> generating of the hypercall handler prototypes from the same data base
> which is used to generate the macros.
> 
> This has the additional advantage of using type safe calls of the
> handlers and to ensure related handler (e.g. PV and HVM ones) share
> the same prototypes.
> 
> A very brief performance test (parallel build of the Xen hypervisor
> in a 6 vcpu guest) showed a very slim improvement (less than 1%) of
> the performance with the patches applied. The test was performed using
> a PV and a PVH guest.
> 
> Changes in V2:
> - new patches 6, 14, 15
> - patch 7: support hypercall priorities for faster code
> - comments addressed
> 
> Changes in V3:
> - patches 1 and 4 removed as already applied
> - comments addressed
> 
> Changes in V4:
> - 5 patches removed al already applied
> - new patches 1, 3 and 11
> - avoid switching Arm hypercall handlers to return long (no change of
>   handlers returning long already)
> 
> Changes in V5:
> - patch 3 of V4 has been applied already
> - comments addressed
> - rebase
> 
> Changes in V6:
> - patch 1 of V5 has been applied already
> - fix of a rebase artifact
> 
> Juergen Gross (9):
>   xen: move do_vcpu_op() to arch specific code
>   xen: harmonize return types of hypercall handlers
>   xen: don't include asm/hypercall.h from C sources
>   xen: include compat/platform.h from hypercall.h
>   xen: generate hypercall interface related code
>   xen: use generated prototypes for hypercall handlers
>   xen/x86: call hypercall handlers via generated macro
>   xen/arm: call hypercall handlers via generated macro
>   xen/x86: remove cf_check attribute from hypercall handlers
> 
>  .gitignore                               |   1 +
>  xen/arch/arm/domain.c                    |  15 +-
>  xen/arch/arm/hvm.c                       |   3 +-
>  xen/arch/arm/include/asm/hypercall.h     |   7 +-
>  xen/arch/arm/platform_hypercall.c        |   1 +
>  xen/arch/arm/traps.c                     | 117 ++-------
>  xen/arch/x86/compat.c                    |   6 +-
>  xen/arch/x86/cpu/mcheck/mce.c            |   2 +-
>  xen/arch/x86/cpu/vpmu.c                  |   3 +-
>  xen/arch/x86/domain.c                    |  11 +-
>  xen/arch/x86/domctl.c                    |   4 +-
>  xen/arch/x86/hvm/dm.c                    |   2 +-
>  xen/arch/x86/hvm/hvm.c                   |   2 +-
>  xen/arch/x86/hvm/hypercall.c             | 177 ++-----------
>  xen/arch/x86/hypercall.c                 |  59 -----
>  xen/arch/x86/include/asm/hypercall.h     | 201 ++++-----------
>  xen/arch/x86/include/asm/paging.h        |   3 -
>  xen/arch/x86/mm.c                        |  13 +-
>  xen/arch/x86/mm/paging.c                 |   3 +-
>  xen/arch/x86/physdev.c                   |   2 +-
>  xen/arch/x86/platform_hypercall.c        |   3 +-
>  xen/arch/x86/pv/callback.c               |  26 +-
>  xen/arch/x86/pv/descriptor-tables.c      |   8 +-
>  xen/arch/x86/pv/emul-priv-op.c           |   2 +-
>  xen/arch/x86/pv/hypercall.c              | 187 ++------------
>  xen/arch/x86/pv/iret.c                   |   5 +-
>  xen/arch/x86/pv/misc-hypercalls.c        |  22 +-
>  xen/arch/x86/pv/shim.c                   |   4 +-
>  xen/arch/x86/traps.c                     |   2 +-
>  xen/arch/x86/x86_64/compat/mm.c          |   3 +-
>  xen/arch/x86/x86_64/domain.c             |  16 +-
>  xen/arch/x86/x86_64/mm.c                 |   2 -
>  xen/arch/x86/x86_64/platform_hypercall.c |   1 -
>  xen/common/argo.c                        |   8 +-
>  xen/common/compat/domain.c               |  15 +-
>  xen/common/compat/grant_table.c          |   3 +-
>  xen/common/compat/kernel.c               |   2 +-
>  xen/common/compat/memory.c               |   3 +-
>  xen/common/dm.c                          |   2 +-
>  xen/common/domain.c                      |  14 +-
>  xen/common/domctl.c                      |   2 +-
>  xen/common/event_channel.c               |   3 +-
>  xen/common/grant_table.c                 |   4 +-
>  xen/common/hypfs.c                       |   2 +-
>  xen/common/kernel.c                      |   2 +-
>  xen/common/kexec.c                       |   6 +-
>  xen/common/memory.c                      |   2 +-
>  xen/common/multicall.c                   |   4 +-
>  xen/common/sched/compat.c                |   2 +-
>  xen/common/sched/core.c                  |   4 +-
>  xen/common/sysctl.c                      |   2 +-
>  xen/common/xenoprof.c                    |   2 +-
>  xen/drivers/char/console.c               |   2 +-
>  xen/include/Makefile                     |  13 +
>  xen/include/hypercall-defs.c             | 285 ++++++++++++++++++++
>  xen/include/xen/hypercall.h              | 185 +------------
>  xen/scripts/gen_hypercall.awk            | 314 +++++++++++++++++++++++
>  xen/xsm/xsm_core.c                       |   4 +-
>  58 files changed, 861 insertions(+), 937 deletions(-)
>  create mode 100644 xen/include/hypercall-defs.c
>  create mode 100644 xen/scripts/gen_hypercall.awk
> 
> --
> 2.34.1
> 


 


Rackspace

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