* Re: [PATCH v4 0/8] xen/arm: Emulate ID registers [not found] <160823586491.13274.572144728643942444@600e7e483b3a> @ 2020-12-17 23:02 ` Stefano Stabellini 0 siblings, 0 replies; 4+ messages in thread From: Stefano Stabellini @ 2020-12-17 23:02 UTC (permalink / raw) To: xen-devel; +Cc: famzheng, sstabellini, cardoe, wl, Bertrand.Marquis, julien Actually it passed. It was just a transient internet issue. On Thu, 17 Dec 2020, no-reply@patchew.org wrote: > Hi, > > Patchew automatically ran gitlab-ci pipeline with this patch (series) applied, but the job failed. Maybe there's a bug in the patches? > > You can find the link to the pipeline near the end of the report below: > > Type: series > Message-id: cover.1608214355.git.bertrand.marquis@arm.com > Subject: [PATCH v4 0/8] xen/arm: Emulate ID registers > > === TEST SCRIPT BEGIN === > #!/bin/bash > sleep 10 > patchew gitlab-pipeline-check -p xen-project/patchew/xen > === TEST SCRIPT END === > > warning: redirecting to https://gitlab.com/xen-project/patchew/xen.git/ > From https://gitlab.com/xen-project/patchew/xen > 8e0fe4fe5f..904148ecb4 master -> master > warning: redirecting to https://gitlab.com/xen-project/patchew/xen.git/ > From https://gitlab.com/xen-project/patchew/xen > * [new tag] patchew/cover.1608214355.git.bertrand.marquis@arm.com -> patchew/cover.1608214355.git.bertrand.marquis@arm.com > Switched to a new branch 'test' > 4fc8dff44c xen/arm: Activate TID3 in HCR_EL2 > d72e6d1faa xen/arm: Add CP10 exception support to handle MVFR > 9ef18928a0 xen/arm: Add handler for cp15 ID registers > 09f61edd55 xen/arm: Add handler for ID registers on arm64 > 0a14368a8f xen/arm: create a cpuinfo structure for guest > 01fd2fca83 xen/arm: Add arm64 ID registers definitions > e87a25c913 xen/arm: Add ID registers and complete cpuinfo > 66f3ee6d1a xen/arm: Use READ_SYSREG instead of 32/64 versions > > === OUTPUT BEGIN === > [2020-12-17 16:52:57] Looking up pipeline... > [2020-12-17 16:52:58] Found pipeline 231473331: > > https://gitlab.com/xen-project/patchew/xen/-/pipelines/231473331 > > [2020-12-17 16:52:58] Waiting for pipeline to finish... > [2020-12-17 17:08:03] Still waiting... > [2020-12-17 17:23:09] Still waiting... > [2020-12-17 17:38:13] Still waiting... > [2020-12-17 17:53:18] Still waiting... > [2020-12-17 18:08:22] Still waiting... > [2020-12-17 18:23:27] Still waiting... > [2020-12-17 18:38:32] Still waiting... > [2020-12-17 18:53:36] Still waiting... > [2020-12-17 19:08:42] Still waiting... > [2020-12-17 19:23:48] Still waiting... > [2020-12-17 19:38:53] Still waiting... > [2020-12-17 19:53:58] Still waiting... > [2020-12-17 20:09:03] Still waiting... > [2020-12-17 20:11:03] Pipeline failed > [2020-12-17 20:11:04] Job 'qemu-smoke-x86-64-clang-pvh' in stage 'test' is skipped > [2020-12-17 20:11:04] Job 'qemu-smoke-x86-64-gcc-pvh' in stage 'test' is skipped > [2020-12-17 20:11:04] Job 'qemu-smoke-x86-64-clang' in stage 'test' is skipped > [2020-12-17 20:11:04] Job 'qemu-smoke-x86-64-gcc' in stage 'test' is skipped > [2020-12-17 20:11:04] Job 'build-each-commit-gcc' in stage 'test' is skipped > [2020-12-17 20:11:04] Job 'debian-unstable-gcc-debug-arm64' in stage 'build' is failed > [2020-12-17 20:11:04] Job 'debian-unstable-gcc-arm64' in stage 'build' is failed > === OUTPUT END === > > Test command exited with code: 1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v4 0/8] xen/arm: Emulate ID registers @ 2020-12-17 15:38 Bertrand Marquis 2020-12-17 23:47 ` Stefano Stabellini 0 siblings, 1 reply; 4+ messages in thread From: Bertrand Marquis @ 2020-12-17 15:38 UTC (permalink / raw) To: xen-devel; +Cc: Stefano Stabellini, Julien Grall, Volodymyr Babchuk The goal of this serie is to emulate coprocessor ID registers so that Xen only publish to guest features that are supported by Xen and can actually be used by guests. One practical example where this is required are SVE support which is forbidden by Xen as it is not supported, but if Linux is compiled with it, it will crash on boot. An other one is AMU which is also forbidden by Xen but one Linux compiled with it would crash if the platform supports it. To be able to emulate the coprocessor registers defining what features are supported by the hardware, the TID3 bit of HCR must be disabled and Xen must emulated the values of those registers when an exception is catched when a guest is accessing it. This serie is first creating a guest cpuinfo structure which will contain the values that we want to publish to the guests and then provides the proper emulationg for those registers when Xen is getting an exception due to an access to any of those registers. This is a first simple implementation to solve the problem and the way to define the values that we provide to guests and which features are disabled will be in a future patchset enhance so that we could decide per guest what can be used or not and depending on this deduce the bits to activate in HCR and the values that we must publish on ID registers. --- Changes in V2: Fix First patch to properly handle DFR1 register and increase dbg32 size. Other patches have just been rebased. Changes in V3: Add handling of reserved registers as RAZ Minor fixes described in each patch Changes in V4: Add a patch to switch implementation to use READ_SYSREG instead of the 32/64 bit version of it. Move cases for reserved register handling from macros to the code itself. Various typos fixes. Bertrand Marquis (8): xen/arm: Use READ_SYSREG instead of 32/64 versions xen/arm: Add ID registers and complete cpuinfo xen/arm: Add arm64 ID registers definitions xen/arm: create a cpuinfo structure for guest xen/arm: Add handler for ID registers on arm64 xen/arm: Add handler for cp15 ID registers xen/arm: Add CP10 exception support to handle MVFR xen/arm: Activate TID3 in HCR_EL2 xen/arch/arm/arm64/vsysreg.c | 82 ++++++++++++++++++++ xen/arch/arm/cpufeature.c | 113 ++++++++++++++++++++++------ xen/arch/arm/traps.c | 7 +- xen/arch/arm/vcpreg.c | 102 +++++++++++++++++++++++++ xen/include/asm-arm/arm64/hsr.h | 37 +++++++++ xen/include/asm-arm/arm64/sysregs.h | 28 +++++++ xen/include/asm-arm/cpregs.h | 15 ++++ xen/include/asm-arm/cpufeature.h | 58 +++++++++++--- xen/include/asm-arm/perfc_defn.h | 1 + xen/include/asm-arm/traps.h | 1 + 10 files changed, 409 insertions(+), 35 deletions(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v4 0/8] xen/arm: Emulate ID registers 2020-12-17 15:38 Bertrand Marquis @ 2020-12-17 23:47 ` Stefano Stabellini 2020-12-18 10:12 ` Bertrand Marquis 0 siblings, 1 reply; 4+ messages in thread From: Stefano Stabellini @ 2020-12-17 23:47 UTC (permalink / raw) To: Bertrand Marquis Cc: xen-devel, Stefano Stabellini, Julien Grall, Volodymyr Babchuk, andrew.cooper3, george.dunlap, iwj, wl On Thu, 17 Dec 2020, Bertrand Marquis wrote: > The goal of this serie is to emulate coprocessor ID registers so that > Xen only publish to guest features that are supported by Xen and can > actually be used by guests. > One practical example where this is required are SVE support which is > forbidden by Xen as it is not supported, but if Linux is compiled with > it, it will crash on boot. An other one is AMU which is also forbidden > by Xen but one Linux compiled with it would crash if the platform > supports it. > > To be able to emulate the coprocessor registers defining what features > are supported by the hardware, the TID3 bit of HCR must be disabled and > Xen must emulated the values of those registers when an exception is > catched when a guest is accessing it. > > This serie is first creating a guest cpuinfo structure which will > contain the values that we want to publish to the guests and then > provides the proper emulationg for those registers when Xen is getting > an exception due to an access to any of those registers. > > This is a first simple implementation to solve the problem and the way > to define the values that we provide to guests and which features are > disabled will be in a future patchset enhance so that we could decide > per guest what can be used or not and depending on this deduce the bits > to activate in HCR and the values that we must publish on ID registers. As per our discussion I think we want to add this to the series. --- xen/arm: clarify support status for various ARMv8.x CPUs ARMv8.1+ is not security supported for now, as it would require more investigation on hardware features that Xen has to hide from the guest. Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> diff --git a/SUPPORT.md b/SUPPORT.md index ab02aca5f4..d95ce3a411 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -37,7 +37,8 @@ supported in this document. ### ARM v8 - Status: Supported + Status, ARMv8.0: Supported + Status, ARMv8.1+: Supported, not security supported Status, Cortex A57 r0p0-r1p1: Supported, not security supported For the Cortex A57 r0p0 - r1p1, see Errata 832075. ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v4 0/8] xen/arm: Emulate ID registers 2020-12-17 23:47 ` Stefano Stabellini @ 2020-12-18 10:12 ` Bertrand Marquis 0 siblings, 0 replies; 4+ messages in thread From: Bertrand Marquis @ 2020-12-18 10:12 UTC (permalink / raw) To: Stefano Stabellini Cc: Xen-devel, Julien Grall, Volodymyr Babchuk, andrew.cooper3, george.dunlap, iwj, wl Hi Stefano, > On 17 Dec 2020, at 23:47, Stefano Stabellini <sstabellini@kernel.org> wrote: > > On Thu, 17 Dec 2020, Bertrand Marquis wrote: >> The goal of this serie is to emulate coprocessor ID registers so that >> Xen only publish to guest features that are supported by Xen and can >> actually be used by guests. >> One practical example where this is required are SVE support which is >> forbidden by Xen as it is not supported, but if Linux is compiled with >> it, it will crash on boot. An other one is AMU which is also forbidden >> by Xen but one Linux compiled with it would crash if the platform >> supports it. >> >> To be able to emulate the coprocessor registers defining what features >> are supported by the hardware, the TID3 bit of HCR must be disabled and >> Xen must emulated the values of those registers when an exception is >> catched when a guest is accessing it. >> >> This serie is first creating a guest cpuinfo structure which will >> contain the values that we want to publish to the guests and then >> provides the proper emulationg for those registers when Xen is getting >> an exception due to an access to any of those registers. >> >> This is a first simple implementation to solve the problem and the way >> to define the values that we provide to guests and which features are >> disabled will be in a future patchset enhance so that we could decide >> per guest what can be used or not and depending on this deduce the bits >> to activate in HCR and the values that we must publish on ID registers. > > As per our discussion I think we want to add this to the series. Fully agree. > > --- > > xen/arm: clarify support status for various ARMv8.x CPUs > > ARMv8.1+ is not security supported for now, as it would require more > investigation on hardware features that Xen has to hide from the guest. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com> Cheers Bertrand > > diff --git a/SUPPORT.md b/SUPPORT.md > index ab02aca5f4..d95ce3a411 100644 > --- a/SUPPORT.md > +++ b/SUPPORT.md > @@ -37,7 +37,8 @@ supported in this document. > > ### ARM v8 > > - Status: Supported > + Status, ARMv8.0: Supported > + Status, ARMv8.1+: Supported, not security supported > Status, Cortex A57 r0p0-r1p1: Supported, not security supported > > For the Cortex A57 r0p0 - r1p1, see Errata 832075. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-12-18 10:13 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <160823586491.13274.572144728643942444@600e7e483b3a> 2020-12-17 23:02 ` [PATCH v4 0/8] xen/arm: Emulate ID registers Stefano Stabellini 2020-12-17 15:38 Bertrand Marquis 2020-12-17 23:47 ` Stefano Stabellini 2020-12-18 10:12 ` Bertrand Marquis
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).