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

Re: [PATCH v2 00/15] xen: drop hypercall function tables


  • To: Juergen Gross <jgross@xxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Fri, 5 Nov 2021 14:18:17 +0000
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • 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=/M+TudPcWuv2Qlh0V/XNnt8gaDo4/za+cTeiDqELojU=; b=Us5HpKnF1ShgTnBAyp2CS5MUePYMlJqnwurL2OqPHmsSJPkiCGKx4UANRb7X57uXGn9fOnldW0ckvEoN0NWh9khTWOk6CAnu+2J7xrxoa/gCy4w87ShAN/DateBPV2uBlc68zfCp8t3HpA81y3kbHQPmIyzDNqDaqXKK6s4TIhuJZ2yglbYDBsrMIaWrqxAfHxjn4F0y/wYeNNaB+AMz11OjVwiXMMJpgn3XtvmabrQInvfvaf1sp7aL/SqrAwaynPRGfAWBu/7WF/9tJSWs7JSgyOl7pURDzGX130gF4wY2Al1Rp7r2FahBVYReBedbO8sls8rTf+7ffHom/8dhyQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lyAn620+EonpPUf9zr8Tg3vmBLph9NjcV/pLqJkQ5oZ56qWaR5WjA2uh2DSxDyKhGLf5PTLG2amlS8ZQjc4xTaF6dilUa/rnON3N1bfNkQxx8AlUEXShaktH/Fk3MYzEQsADI9z6HQR3jDX2SBxM4yuwBO//yDs7v164hp1OjYFBFmEIvX7911H2Ktk+nzokBJZ9ZEC9I8HNHdNXJWBKW8nmvxC4DEbUspQUHcFebH7T/g/D4OdUup2/d2cV5l8yrrQe9AZ6lW2liJr9bhERcwf+NuDe1GnDTdZ4fh0kXmBDep14HAxuk64Mj+tHi2Esnm1rgPX1gI8QAyECf2Fc7Q==
  • Authentication-results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Ian Jackson <iwj@xxxxxxxxxxxxxx>, Christopher Clark <christopher.w.clark@xxxxxxxxx>
  • Delivery-date: Fri, 05 Nov 2021 14:18:35 +0000
  • Ironport-data: A9a23:rSEyB6p+e3XgGfzYGvNZ5JfFJkReBmJ7YxIvgKrLsJaIsI4StFCzt garIBmOOqyNajGkKI10Pdzg9RxQ75HQmtRqSVM+qS1gFXgV9JuZCYyVIHmrMnLJJKUvbq7GA +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dnd+4f5fs7Rh2Ncx2IDkW1jlV e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9 DlCnY7pGBx1OK2RotYQQyECE3wiJYx2o5aSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFKoZtmtt0nfyCvE+TIqYa67L+cVZzHE7gcUm8fP2O ptAMGY0M0mojxtnF3pOOJAjtuSToCfaTjIDswPNirIN/D2GpOB2+Oe0a4eEEjCQfu1XlEuFo mPN/0ziHwoXcteYzFKt7XaEluLJ2yThV+o6FrKi8eVxqEaO3WFVAxoTPXOrrP/8hkOgVtZ3L 00P5jFovaU07FasTNT2Q1u/unHslgUHR9NaHuk+6QeM4qnZ+QCUAi4DVDEpQN05tucmSDoyz FiLktj1Qzt1v9W9QnKH96yIqiuyNDJTMikJYSYeTiMK5tDipMc4iRenZtR+FK+4iPXlFDe2x CqFxAAAgLEUgd8Oxr+M11nNiDKxpbDEVgcwoA7QWwqYAhhRPdD/IdbysB6CsKgGfN3xokS9U GYsiZHP97wIDcy3piGdeL8NQe2xxsbeGWiJ6bJwJKUJ+zOo8n+lWIlf5jBiOUtkWvo5lS/Vj Fz74l0IusIKVJe+ReouOt/qVZx2pUT1PY29Dqi8UzZYXnRmmOZrFglKbFXY4W3imVNEfUoXa cbCKpbE4Zr35M1aINuKqwU1jeBDKsMWnzq7qXXHI/KPi+f2iJm9E+ZtDbd2RrplhJ5oWS2Mm zqlC+OEyg9ETMr1aTTN/IgYIDgidCZgW8ir8pcKKLHbc2KK/V3N7deLnNvNnKQ/zsxoehrgp CnhCie0NnKm3RUr1jlmmlg8MeiyDP6TXFowPDA2PEbA5pTQSd3H0UvrTLNuJeNP3LU6lZZcF qBZE+3dUqUnYmmWoFw1MMiixLGOgTz23GpiyQL+O2NhF3OhLiSUkuLZkvzHr3JSUXbu7JNWT n/J/lqzfKfvjj9KVa7+QPmu00mwrT4anudzVFHPOd5dZAPn940CFsA7pqZfzxgkJUqRyz2E+ RyRBBtE9+DBr5VsqIvChLyerpfvGOx7RxIIE27e5LewFC/b4mv8ntMQDLfWJWjQBDHu5aGvR eRJ1PWgYvcJq0lH7thnGLFxwKNgu9a2/+1Gzh5pFWngZkiwDu8yOWGP2MRC7/UfxrJQtQasd FiI/91WZeeANM//SQZDLws5dOWTk/oTn2CKv/gyJUz74g5x/aaGDhoOb0Xd1nQFIeIsYo0/w OontMoH0CCFi0InYoSckyRZ12WQNXhcAa8pgY4XXd3wgQ0xx1AcPZGFUn3q4IuCYslnO1UxJ mPGn7LLgrlRyxaQc3c3EnSRj+NRiY5X5UJPxV4GYV+IhsDElrk82xgIqWY7SQFczxNm1eNvO zc0ax0pdPvWpzo41tJeW22MGh1aAEzL80P8/FIFiWnFQhT6TWfKNmA8Zb6A8U1xH7iwpdSHE GV0EFrYbAs=
  • Ironport-hdrordr: A9a23:DK1066lpMY64hRKdnjJy01bbVqXpDfO8imdD5ihNYBxZY6Wkfp +V88jzhCWZtN9OYhwdcLC7WZVpQRvnhPpICPoqTMiftW7dyReVxeBZnPbfKljbdREWmdQtrZ uIH5IObuEYSGIK9/oSgzPIY+rIouP3iZxA7N22pxwGLXAIGtJdBkVCe2Gm+yVNNXh77PECZf ihD6R81l+dkDgsH7+G7i5vZZm8mzSHruOqXTc2QzocrCWehzKh77D3VzCewxclSjtKhZMv63 LMnQDV7riq96jT8G6S60bjq7Bt3PfxwNpKA8KBzuATNzXXkw6tIKBsQaeLsjwZqPymrHwqjN 7PiRE9ONkb0QKcQkiF5T/WnyXw2jcn7HHvjXeenHvYuMT8AAk3DsJQ7LgpOifx2g4FhpVRwa hL12WWu958FhXbhhnw4NDOSlVDile0iWBKq59Ss1VvFa8lLJNBp40W+01YVL0aGjjh1YwhGO 5ySOnB+fdtd0+AZXyxhBgv/DWVZAVwIv66eDlGhiTMuAIm2EyRjnFoivD3p01wt67UEPJ/lq P52qcBrsAGciZZV9M6OA47e7rDNoX6e2O7DIujGyWUKEg5AQO4l3fW2sR/2Aj4Qu1D8HMN8K 6xJ2+w81RCIn7TNQ==
  • Ironport-sdr: LcTrzB4gCCyFXKk33tWGuoUhiITI55oEn7mJNKTiIhyKzIiG/uZsPMpGoEppYFWtK1puQkPO+d qNZS+mnJjOnWXlnVHAzqSl3x3B9AKgWjzoNpNQtWkm//kBITsZ1agKRMz1Yw+R5dgNUyrdhj/s 0r4tFoTrlkbtZ28yLjJZiCj5PvQAaNOVeQLND8Mfu6aveR/1OQjvJCiwi0tIwtwA8gXXKfFRF5 jxKkK8NtwjVhna6LBgIO+WNcwcDIxL2ICVLCIKdybmD0CyAQJKwXix5dqJCJ5hiaBDiqSIt1P7 w0cnEvqVaebSLmKdK5N0nsOG
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 01/11/2021 15:20, Juergen Gross wrote:
> 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
>
> Juergen Gross (15):
>   xen: limit number of hypercall parameters to 5
>   xen: move do_vcpu_op() to arch specific code
>   xen: harmonize return types of hypercall handlers
>   xen/x86: modify hvm_memory_op() prototype
>   xen: don't include asm/hypercall.h from C sources
>   add .gitignore entries for *.[is] below xen
>   xen: generate hypercall interface related code
>   xen: use generated prototypes for hypercall handlers
>   x86/pv-shim: don't modify hypercall table
>   xen/x86: don't use hypercall table for calling compat hypercalls
>   xen/x86: call hypercall handlers via generated macro
>   xen/arm: call hypercall handlers via generated macro
>   xen/x86: add hypercall performance counters for hvm, correct pv
>   xen: drop calls_to_multicall performance counter
>   tools/xenperf: update hypercall names

https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/1752237172

Something here causes

hypercall.c: In function 'hvm_hypercall':
hypercall.c:174:23: error: unused variable 'r8' [-Werror=unused-variable]
  174 |         unsigned long r8 = regs->r8;
      |                       ^~
hypercall.c:190:22: error: unused variable 'edi' [-Werror=unused-variable]
  190 |         unsigned int edi = regs->edi;
      |                      ^~~
cc1: all warnings being treated as errors

I suspect it will be "call hypercall handlers via generated macro", but
I haven't investigated further.

~Andrew



 


Rackspace

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