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

Re: [PATCH 6/8] x86/shadow: adjust and move sh_type_to_size[]


  • To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Date: Wed, 21 Dec 2022 18:58:44 +0000
  • Accept-language: en-GB, en-US
  • 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=71lhyFlD3ex4wQWibtgmHp9S/eSNn4Q0TK3CZW69TGI=; b=CgQsvs3aPI0/4GRRZJiNk8rWLOnOaanQ9wP/zM9yT83Pr1qxJYdYXpemMpR0f9QRubpC2OO5IopptezlGLoEna1OKmuJbWmfg0PhrLsk7+6gyTaDIQeRSgC77HRKBU5HflYqdkZ7ijCUez5hb57QWjyGgUtRy68tSeaGnsbcrwgyyNCTvqQq8ZSSdvmY2bDQlaff8QFKizYshztQLtO3N1bkQmnkhMiNrjTdY8yEiA3RdQnwJg5ksBh+NZIFd07bOKtXjaAr0v4D1ahBiUH92p0TrzSe7v8CanrlEi6EPpiKCiCEtALOJ/kwacctNdMHR+qg0Ty0C5iGIeFElUEIdQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oFwN0zjY7qrZa2xP6N60Oapc9qNQ2EOqWRZkoFOE/jcmoKGQIqFv09DdP0dyEnCE+ppG79L9vcWh5XNxsp2zkeLBakNAamAOUUWswgexGankb2iJbDg1yx6wiqrKf2IAFKucer8SNVsuIGbTsFqtFh9i0wKElQ8/xmZ2RENocRFsdhjX9sUjr8+ea6zJdbrWfmEa4NfNdVAVSW7JZFsnLxAaRZCHX9XSOEOctmHxblMJZqA+2YpF4QbusOXeZBwPeaiJ44s97TU/u4T+/zUKTWP0LzENMbA308K2pZU6UNhdCxFbMm2lg+bkgdC+RxAfno5KHvkSFRt/QQ6X91Z0qw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Wei Liu <wl@xxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>, George Dunlap <George.Dunlap@xxxxxxxxxx>, "Tim (Xen.org)" <tim@xxxxxxx>
  • Delivery-date: Wed, 21 Dec 2022 18:58:58 +0000
  • Ironport-data: A9a23:HttJa66cqtBiSW75cW22qgxRtAnGchMFZxGqfqrLsTDasY5as4F+v mJOUGrSbqmDZ2emf9h/YY+2/RxTsJ7cxt82TAtq+ykxHi5G8cbLO4+Ufxz6V8+wwm8vb2o8t plDNYOQRCwQZiWBzvt4GuG59RGQ7YnRGvynTraBYnoqLeNdYH9JoQp5nOIkiZJfj9G8Agec0 fv/uMSaM1K+s9JOGjt8B5mr9VU+4pwehBtC5gZkPKoR5QeF/5UoJMl3yZ+ZfiOQrrZ8RoZWd 86bpJml82XQ+QsaC9/Nut4XpWVTH9Y+lSDX4pZnc/DKbipq/0Te4Y5iXBYoUm9Fii3hojxE4 I4lWapc6+seFvakdOw1C3G0GszlVEFM0OevzXOX6aR/w6BaGpdFLjoH4EweZOUlFuhL7W5m+ +w9Mys9KT65rsmpye6fVflmiP4fM5y+VG8fkikIITDxK98DGMiGZpqQoNhS0XE3m9xEGuvYa 4wBcz1zYR/cYhpJfFAKFJY5m+TujX76G9FagAvN+exrvC6OkUooiOGF3Nn9I7RmQe18mEqCq 32A1GP+GhwAb/SUyCaf82LqjejK9c/+cNJDSefjrqMy6LGV7itOCTc5W2Wfm/WWqk6eZ4gDJ moIoxN7+MDe82TuFLERRSaQonSJoxodUNp4CPAh5UeGza+8yxaUAC0IQyBMbPQitdQqXno62 1mRhdTrCDdz9rqPRhq16bO8vT60fy8PIgcqeS4BZRsI5Z/kuo5bs/7UZtNqEarwi8KvHzj1m miOtHJn3+xVitMX3aKm+1yBmyirupXCUg8y4EPQQ36h6QR6IoWiYuRE9GTm0BqJF67BJnHpg ZTOs5H2ADwmZX1VqBGwfQ==
  • Ironport-hdrordr: A9a23:GNWBO6PKd0Oj+sBcT5j255DYdb4zR+YMi2TDiHoddfUFSKalfp 6V98jzjSWE8wr4WBkb6LO90DHpewKRyXcH2/hqAV7EZniohILIFvAu0WKG+VHd8kLFh4lgPM tbEpSWTeeAdWSS7vyKrjVQcexQpuVvmZrA7Yix854ud3ASV0gK1XYaNu/vKDwTeOAwP+tdKH Pz3Kp6jgvlXU5SQtWwB3EDUeSGjcbMjojabRkPAANiwBWSjBuzgYSKUySw71M7aXdi0L0i+W /Kn0jS/aO4qcy2zRfayiv684lWot380dFObfb8yfT9aw+cyDpAVr4RH4FqjwpF591HL2xa1u Ukli1QevibLUmhJ11d7yGdgzUImwxelkMKgWXo/UcL5/aJBQ7SQvAx+76wOHHimjUdlcA536 RR022DsZ1LSRvGgSTm/tDNEwpnj0yuvBMZ4KYuZtNkIPkjgZJq3PoiFXluYd49NTO/7JpiHP hlDcna6voTeVSGb2rBtm0qxNC3RHw8EhqPX0BH46WuonJrtWE8y1FdyN0Un38G+p54Q55Y5/ 7cOqAtkL1VVMcZYa90Ge9ES8qqDW7GRw7KLQupUB/aPbBCP2iIp4/84b0z6u3vcJsUzIEqkJ CES19cvX5aQTOYNSRP5uw+zvngehTPYd228LAu23FQgMyNeJP7dSueVVspj8ys5/0CH8yzYY fHBK5r
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHZFT/+4m5db1YFGEKNP8aYHdqkgK54sf8A
  • Thread-topic: [PATCH 6/8] x86/shadow: adjust and move sh_type_to_size[]

On 21/12/2022 1:27 pm, Jan Beulich wrote:
> Drop the SH_type_none entry - there are no allocation attempts with
> this type, and there also shouldn't be any. Adjust the shadow_size()
> alternative path to match that change. Also generalize two related
> assertions.
>
> While there move the entire table and the respective part of the comment
> there to hvm.c, resulting in one less #ifdef. In the course of the
> movement switch to using designated initializers.
>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, although ...

> --- a/xen/arch/x86/mm/shadow/hvm.c
> +++ b/xen/arch/x86/mm/shadow/hvm.c
> @@ -33,6 +33,37 @@
>  
>  #include "private.h"
>  
> +/*
> + * This table shows the allocation behaviour of the different modes:
> + *
> + * Xen paging      64b  64b  64b
> + * Guest paging    32b  pae  64b
> + * PV or HVM       HVM  HVM   *
> + * Shadow paging   pae  pae  64b
> + *
> + * sl1 size         8k   4k   4k
> + * sl2 size        16k   4k   4k
> + * sl3 size         -    -    4k
> + * sl4 size         -    -    4k
> + */
> +const uint8_t sh_type_to_size[] = {
> +    [SH_type_l1_32_shadow]   = 2,
> +    [SH_type_fl1_32_shadow]  = 2,
> +    [SH_type_l2_32_shadow]   = 4,
> +    [SH_type_l1_pae_shadow]  = 1,
> +    [SH_type_fl1_pae_shadow] = 1,
> +    [SH_type_l2_pae_shadow]  = 1,
> +    [SH_type_l1_64_shadow]   = 1,
> +    [SH_type_fl1_64_shadow]  = 1,
> +    [SH_type_l2_64_shadow]   = 1,
> +    [SH_type_l2h_64_shadow]  = 1,
> +    [SH_type_l3_64_shadow]   = 1,
> +    [SH_type_l4_64_shadow]   = 1,
> +    [SH_type_p2m_table]      = 1,
> +    [SH_type_monitor_table]  = 1,
> +    [SH_type_oos_snapshot]   = 1,

... this feels like it's wanting to turn into a (1 + ...) expression.  I
can't see anything that prevents us from reordering the SH_type
constants, but

1 + (idx == 1 /* l1 */ || idx == /* fl1 */) + 2 * (idx == 3 /* l2 */);

doesn't obviously simplify further.

~Andrew

 


Rackspace

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