README | 3 + xen/arch/arm/include/asm/bitops.h | 69 ---- xen/arch/ppc/include/asm/bitops.h | 54 ---- xen/arch/ppc/include/asm/page.h | 2 +- xen/arch/ppc/mm-radix.c | 2 +- xen/arch/riscv/Makefile | 17 +- xen/arch/riscv/arch.mk | 4 - xen/arch/riscv/early_printk.c | 168 ---------- xen/arch/riscv/include/asm/bitops.h | 137 ++++++++ xen/arch/riscv/include/asm/cmpxchg.h | 16 +- xen/arch/riscv/include/asm/mm.h | 235 ++++++++++++++ xen/arch/riscv/include/asm/processor.h | 2 +- xen/arch/riscv/mm.c | 43 ++- xen/arch/riscv/setup.c | 10 +- xen/arch/riscv/stubs.c | 418 +++++++++++++++++++++++++ xen/arch/riscv/traps.c | 25 ++ xen/arch/x86/include/asm/bitops.h | 39 +-- xen/common/trace.c | 1 + xen/include/xen/bitops.h | 182 +++++++++++ 19 files changed, 1096 insertions(+), 331 deletions(-) create mode 100644 xen/arch/riscv/include/asm/bitops.h create mode 100644 xen/arch/riscv/stubs.c
*** I think that I need to write a separate email requesting approval for this patch series to be included in Xen 4.19. Most of the patches are RISC-V specific, so there is a low risk of breaking anything else. There is only one patch that touches common or arch-specific files, and it doesn't introduce any functional changes. Since I can't approve it myself, I am asking for someone else to do so. *** This patch series performs all of the additions necessary to drop the build overrides for RISCV and enable the full Xen build. Except in cases where compatibile implementations already exist (e.g. atomic.h and bitops.h), the newly added definitions are simple. The patch series is based on the following patch series: - [PATCH 3/3] xen/ppc: Avoid using the legacy __read_mostly/__ro_after_init definitions [1] The link to the branch with rebased patches on top of [1] could be found here: https://gitlab.com/xen-project/people/olkur/xen/-/commits/riscv-full-xen-build-v13 [1] https://lore.kernel.org/xen-devel/20240621201928.319293-4-andrew.cooper3@citrix.com/ --- Changes in V13: - Patch was merged to staging: - [PATCH v12 ] xen/riscv: Update Kconfig in preparation for a full - Rebase on top of the current staging. - Update cover letter message - It was added 2 new patches ( patches 8 and 9 ) which are not necessary for testing environment we have in CI but they improves compatability with older gcc and binutils. - It was added patch 10 as a clean up of [PATCH v12 2/8] xen: introduce generic non-atomic test_*bit() for x86. - Drop [PATCH v12 4/8] xen/riscv: add definition of __read_mostly as it was defined as generic now for all architectures. - It was added the patch [PATCH v13 07/10] xen/common: fix build issue for common/trace.c to resolve compilation issue for RISC-V after reabsing on top of current staging. - Other changes are specific to specific patches. Please look at changes for specific patch. --- Changes in V12: - Rebase the patch series on top of [1] mentioned above. - Update the cover letter message. - "[PATCH v11 3/9] xen/bitops: implement fls{l}() in common logic" was droped as it is a part of patch series [1] mentioned above. - Other changes are specific to specific patches. Please look at changes for specific patch. --- Changes in V11: - Patch was merged to staging: - [PATCH v10 05/14] xen/riscv: introduce cmpxchg.h - [PATCH v10 06/14] xen/riscv: introduce atomic.h - [PATCH v10 07/14] xen/riscv: introduce monitor.h - [PATCH v10 09/14] xen/riscv: add required things to current.h - [PATCH v10 11/14] xen/riscv: introduce vm_event_*() functions - Other changes are specific to specific patches. Please look at changes for specific patch. --- Changes in V10: - Patch was merged to staging: - [PATCH v9 04/15] xen/bitops: put __ffs() into linux compatible header - Other changes are specific to specific patches. Please look at changes for specific patch. --- Changes in V9: - Patch was merged to staging: - [PATCH v8 07/17] xen/riscv: introduce io.h - [PATCH v7 14/19] xen/riscv: add minimal stuff to page.h to build full Xen - Other changes are specific to specific patches. Please look at changes for specific patch. --- Changes in V8: - Patch was merged to staging: - [PATCH v7 01/19] automation: introduce fixed randconfig for RISC-V - [PATCH v7 03/19] xen/riscv: introduce extenstion support check by compiler - Other changes are specific to specific patches. Please look at changes for specific patch. - Update the commit message: - drop the dependency from STATIC_ASSERT_UNREACHABLE() implementation. - Add suggestion to merge arch-specific changes related to __read_mostly. --- Changes in V7: - Patch was merged to staging: [PATCH v6 15/20] xen/riscv: add minimal stuff to processor.h to build full Xen. - Other changes are specific to specific patches. Please look at changes for specific patch. --- Changes in V6: - Update the cover letter message: drop already merged dependecies and add a new one. - Patches were merged to staging: - [PATCH v5 02/23] xen/riscv: use some asm-generic headers ( even v4 was merged to staging branch, I just wasn't apply changes on top of the latest staging branch ) - [PATCH v5 03/23] xen/riscv: introduce nospec.h - [PATCH v5 10/23] xen/riscv: introduces acrquire, release and full barriers - Introduce new patches: - xen/riscv: introduce extenstion support check by compiler - xen/bitops: put __ffs() and ffz() into linux compatible header - xen/bitops: implement fls{l}() in common logic - The following patches were dropped: - drop some patches related to bitops operations as they were introduced in another patch series [...] - introduce new version for generic __ffs(), ffz() and fls{l}(). - Merge patch from patch series "[PATCH v9 0/7] Introduce generic headers" to this patch series as only one patch left in the generic headers patch series and it is more about RISC-V. - Other changes are specific to specific patches. please look at specific patch. --- Changes in V5: - Update the cover letter as one of the dependencies were merged to staging. - Was introduced asm-generic for atomic ops and separate patches for asm-generic bit ops - Moved fence.h to separate patch to deal with some patches dependecies on fence.h - Patches were dropped as they were merged to staging: * [PATCH v4 03/30] xen: add support in public/hvm/save.h for PPC and RISC-V * [PATCH v4 04/30] xen/riscv: introduce cpufeature.h * [PATCH v4 05/30] xen/riscv: introduce guest_atomics.h * [PATCH v4 06/30] xen: avoid generation of empty asm/iommu.h * [PATCH v4 08/30] xen/riscv: introduce setup.h * [PATCH v4 10/30] xen/riscv: introduce flushtlb.h * [PATCH v4 11/30] xen/riscv: introduce smp.h * [PATCH v4 15/30] xen/riscv: introduce irq.h * [PATCH v4 16/30] xen/riscv: introduce p2m.h * [PATCH v4 17/30] xen/riscv: introduce regs.h * [PATCH v4 18/30] xen/riscv: introduce time.h * [PATCH v4 19/30] xen/riscv: introduce event.h * [PATCH v4 22/30] xen/riscv: define an address of frame table - Other changes are specific to specific patches. please look at specific patch --- Changes in V4: - Update the cover letter message: new patch series dependencies. - Some patches were merged to staging, so they were dropped in this patch series: [PATCH v3 09/34] xen/riscv: introduce system.h [PATCH v3 18/34] xen/riscv: introduce domain.h [PATCH v3 19/34] xen/riscv: introduce guest_access.h - Was sent out of this patch series: [PATCH v3 16/34] xen/lib: introduce generic find next bit operations - [PATCH v3 17/34] xen/riscv: add compilation of generic find-next-bit.c was droped as CONFIG_GENERIC_FIND_NEXT_BIT was dropped. - All other changes are specific to a specific patch. --- Changes in V3: - Update the cover letter message - The following patches were dropped as they were merged to staging: [PATCH v2 03/39] xen/riscv:introduce asm/byteorder.h [PATCH v2 04/39] xen/riscv: add public arch-riscv.h [PATCH v2 05/39] xen/riscv: introduce spinlock.h [PATCH v2 20/39] xen/riscv: define bug frame tables in xen.lds.S [PATCH v2 34/39] xen: add RISCV support for pmu.h [PATCH v2 35/39] xen: add necessary headers to common to build full Xen for RISC-V - Instead of the following patches were introduced new: [PATCH v2 10/39] xen/riscv: introduce asm/iommu.h [PATCH v2 11/39] xen/riscv: introduce asm/nospec.h - remove "asm/" for commit messages which start with "xen/riscv:" - code style updates. - add emulation of {cmp}xchg_* for 1 and 2 bytes types. - code style fixes. - add SPDX and footer for the newly added headers. - introduce generic find-next-bit.c. - some other mionor changes. ( details please find in a patch ) --- Changes in V2: - Drop the following patches as they are the part of [2]: [PATCH v1 06/57] xen/riscv: introduce paging.h [PATCH v1 08/57] xen/riscv: introduce asm/device.h [PATCH v1 10/57] xen/riscv: introduce asm/grant_table.h [PATCH v1 12/57] xen/riscv: introduce asm/hypercall.h [PATCH v1 13/57] xen/riscv: introduce asm/iocap.h [PATCH v1 15/57] xen/riscv: introduce asm/mem_access.h [PATCH v1 18/57] xen/riscv: introduce asm/random.h [PATCH v1 21/57] xen/riscv: introduce asm/xenoprof.h [PATCH v1 24/57] xen/riscv: introduce asm/percpu.h [PATCH v1 29/57] xen/riscv: introduce asm/hardirq.h [PATCH v1 33/57] xen/riscv: introduce asm/altp2m.h [PATCH v1 38/57] xen/riscv: introduce asm/monitor.h [PATCH v1 39/57] xen/riscv: introduce asm/numa.h [PATCH v1 42/57] xen/riscv: introduce asm/softirq.h - xen/lib.h in most of the cases were changed to xen/bug.h as mostly functionilty of bug.h is used. - align arch-riscv.h with Arm's version of it. - change the Author of commit with introduction of asm/atomic.h. - update some definition from spinlock.h. - code style changes. --- Oleksii Kurochko (10): xen: introduce generic non-atomic test_*bit() xen/riscv: introduce bitops.h xen/riscv: add minimal stuff to mm.h to build full Xen xen/riscv: add minimal amount of stubs to build full Xen xen/riscv: enable full Xen build xen/README: add compiler and binutils versions for RISC-V64 xen/common: fix build issue for common/trace.c xen/riscv: change .insn to .byte in cpu_relax() xen/riscv: introduce ANDN_INSN xen/x86: drop constanst_test_bit() in asm/bitops.h README | 3 + xen/arch/arm/include/asm/bitops.h | 69 ---- xen/arch/ppc/include/asm/bitops.h | 54 ---- xen/arch/ppc/include/asm/page.h | 2 +- xen/arch/ppc/mm-radix.c | 2 +- xen/arch/riscv/Makefile | 17 +- xen/arch/riscv/arch.mk | 4 - xen/arch/riscv/early_printk.c | 168 ---------- xen/arch/riscv/include/asm/bitops.h | 137 ++++++++ xen/arch/riscv/include/asm/cmpxchg.h | 16 +- xen/arch/riscv/include/asm/mm.h | 235 ++++++++++++++ xen/arch/riscv/include/asm/processor.h | 2 +- xen/arch/riscv/mm.c | 43 ++- xen/arch/riscv/setup.c | 10 +- xen/arch/riscv/stubs.c | 418 +++++++++++++++++++++++++ xen/arch/riscv/traps.c | 25 ++ xen/arch/x86/include/asm/bitops.h | 39 +-- xen/common/trace.c | 1 + xen/include/xen/bitops.h | 182 +++++++++++ 19 files changed, 1096 insertions(+), 331 deletions(-) create mode 100644 xen/arch/riscv/include/asm/bitops.h create mode 100644 xen/arch/riscv/stubs.c -- 2.45.2
I saw a message in the xen-devel channel:``` erm... We've got a problem. https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7185148004 very clearly failed with a panic(), but reported success out to Gitlab ``` However, I couldn't determine if this is related to the patches in this series or to patches that were merged earlier. I would like to understand what needs to be done to be sure that this patch series could be merged. Thanks in advance. Best regards, Oleksii On Tue, 2024-06-25 at 15:51 +0200, Oleksii Kurochko wrote: > *** > I think that I need to write a separate email requesting approval for > this patch > series to be included in Xen 4.19. Most of the patches are RISC-V > specific, > so there is a low risk of breaking anything else. > There is only one patch that touches common or arch-specific files, > and it > doesn't introduce any functional changes. > Since I can't approve it myself, I am asking for someone else to do > so. > *** > > This patch series performs all of the additions necessary to drop the > build overrides for RISCV and enable the full Xen build. Except in > cases > where compatibile implementations already exist (e.g. atomic.h and > bitops.h), the newly added definitions are simple. > > The patch series is based on the following patch series: > - [PATCH 3/3] xen/ppc: Avoid using the legacy > __read_mostly/__ro_after_init definitions [1] > > The link to the branch with rebased patches on top of [1] could be > found here: > > https://gitlab.com/xen-project/people/olkur/xen/-/commits/riscv-full-xen-build-v13 > > [1] > https://lore.kernel.org/xen-devel/20240621201928.319293-4-andrew.cooper3@citrix.com/ > > --- > Changes in V13: > - Patch was merged to staging: > - [PATCH v12 ] xen/riscv: Update Kconfig in preparation for a full > - Rebase on top of the current staging. > - Update cover letter message > - It was added 2 new patches ( patches 8 and 9 ) which are not > necessary for testing environment we > have in CI but they improves compatability with older gcc and > binutils. > - It was added patch 10 as a clean up of [PATCH v12 2/8] xen: > introduce generic non-atomic test_*bit() > for x86. > - Drop [PATCH v12 4/8] xen/riscv: add definition of __read_mostly as > it was defined as generic now > for all architectures. > - It was added the patch [PATCH v13 07/10] xen/common: fix build > issue for common/trace.c > to resolve compilation issue for RISC-V after reabsing on top of > current staging. > - Other changes are specific to specific patches. Please look at > changes for > specific patch. > --- > Changes in V12: > - Rebase the patch series on top of [1] mentioned above. > - Update the cover letter message. > - "[PATCH v11 3/9] xen/bitops: implement fls{l}() in common logic" > was droped > as it is a part of patch series [1] mentioned above. > - Other changes are specific to specific patches. Please look at > changes for > specific patch. > --- > Changes in V11: > - Patch was merged to staging: > - [PATCH v10 05/14] xen/riscv: introduce cmpxchg.h > - [PATCH v10 06/14] xen/riscv: introduce atomic.h > - [PATCH v10 07/14] xen/riscv: introduce monitor.h > - [PATCH v10 09/14] xen/riscv: add required things to > current.h > - [PATCH v10 11/14] xen/riscv: introduce vm_event_*() > functions > - Other changes are specific to specific patches. Please look at > changes for > specific patch. > --- > Changes in V10: > - Patch was merged to staging: > - [PATCH v9 04/15] xen/bitops: put __ffs() into linux compatible > header > - Other changes are specific to specific patches. Please look at > changes for > specific patch. > --- > Changes in V9: > - Patch was merged to staging: > - [PATCH v8 07/17] xen/riscv: introduce io.h > - [PATCH v7 14/19] xen/riscv: add minimal stuff to page.h to > build full Xen > - Other changes are specific to specific patches. Please look at > changes for > specific patch. > --- > Changes in V8: > - Patch was merged to staging: > - [PATCH v7 01/19] automation: introduce fixed randconfig for > RISC-V > - [PATCH v7 03/19] xen/riscv: introduce extenstion support check > by compiler > - Other changes are specific to specific patches. Please look at > changes for > specific patch. > - Update the commit message: > - drop the dependency from STATIC_ASSERT_UNREACHABLE() > implementation. > - Add suggestion to merge arch-specific changes related to > __read_mostly. > --- > Changes in V7: > - Patch was merged to staging: > [PATCH v6 15/20] xen/riscv: add minimal stuff to processor.h to > build full Xen. > - Other changes are specific to specific patches. Please look at > changes for > specific patch. > --- > Changes in V6: > - Update the cover letter message: drop already merged dependecies > and add > a new one. > - Patches were merged to staging: > - [PATCH v5 02/23] xen/riscv: use some asm-generic headers ( even > v4 was > merged to staging branch, I just wasn't apply changes on top of > the latest staging branch ) > - [PATCH v5 03/23] xen/riscv: introduce nospec.h > - [PATCH v5 10/23] xen/riscv: introduces acrquire, release and > full barriers > - Introduce new patches: > - xen/riscv: introduce extenstion support check by compiler > - xen/bitops: put __ffs() and ffz() into linux compatible header > - xen/bitops: implement fls{l}() in common logic > - The following patches were dropped: > - drop some patches related to bitops operations as they were > introduced in another > patch series [...] > - introduce new version for generic __ffs(), ffz() and fls{l}(). > - Merge patch from patch series "[PATCH v9 0/7] Introduce generic > headers" to this patch > series as only one patch left in the generic headers patch series > and it is more about > RISC-V. > - Other changes are specific to specific patches. please look at > specific patch. > --- > Changes in V5: > - Update the cover letter as one of the dependencies were merged to > staging. > - Was introduced asm-generic for atomic ops and separate patches for > asm-generic bit ops > - Moved fence.h to separate patch to deal with some patches > dependecies on fence.h > - Patches were dropped as they were merged to staging: > * [PATCH v4 03/30] xen: add support in public/hvm/save.h for PPC > and RISC-V > * [PATCH v4 04/30] xen/riscv: introduce cpufeature.h > * [PATCH v4 05/30] xen/riscv: introduce guest_atomics.h > * [PATCH v4 06/30] xen: avoid generation of empty asm/iommu.h > * [PATCH v4 08/30] xen/riscv: introduce setup.h > * [PATCH v4 10/30] xen/riscv: introduce flushtlb.h > * [PATCH v4 11/30] xen/riscv: introduce smp.h > * [PATCH v4 15/30] xen/riscv: introduce irq.h > * [PATCH v4 16/30] xen/riscv: introduce p2m.h > * [PATCH v4 17/30] xen/riscv: introduce regs.h > * [PATCH v4 18/30] xen/riscv: introduce time.h > * [PATCH v4 19/30] xen/riscv: introduce event.h > * [PATCH v4 22/30] xen/riscv: define an address of frame table > - Other changes are specific to specific patches. please look at > specific patch > --- > Changes in V4: > - Update the cover letter message: new patch series dependencies. > - Some patches were merged to staging, so they were dropped in this > patch series: > [PATCH v3 09/34] xen/riscv: introduce system.h > [PATCH v3 18/34] xen/riscv: introduce domain.h > [PATCH v3 19/34] xen/riscv: introduce guest_access.h > - Was sent out of this patch series: > [PATCH v3 16/34] xen/lib: introduce generic find next bit > operations > - [PATCH v3 17/34] xen/riscv: add compilation of generic find-next- > bit.c was > droped as CONFIG_GENERIC_FIND_NEXT_BIT was dropped. > - All other changes are specific to a specific patch. > --- > Changes in V3: > - Update the cover letter message > - The following patches were dropped as they were merged to staging: > [PATCH v2 03/39] xen/riscv:introduce asm/byteorder.h > [PATCH v2 04/39] xen/riscv: add public arch-riscv.h > [PATCH v2 05/39] xen/riscv: introduce spinlock.h > [PATCH v2 20/39] xen/riscv: define bug frame tables in xen.lds.S > [PATCH v2 34/39] xen: add RISCV support for pmu.h > [PATCH v2 35/39] xen: add necessary headers to common to build > full Xen for RISC-V > - Instead of the following patches were introduced new: > [PATCH v2 10/39] xen/riscv: introduce asm/iommu.h > [PATCH v2 11/39] xen/riscv: introduce asm/nospec.h > - remove "asm/" for commit messages which start with "xen/riscv:" > - code style updates. > - add emulation of {cmp}xchg_* for 1 and 2 bytes types. > - code style fixes. > - add SPDX and footer for the newly added headers. > - introduce generic find-next-bit.c. > - some other mionor changes. ( details please find in a patch ) > --- > Changes in V2: > - Drop the following patches as they are the part of [2]: > [PATCH v1 06/57] xen/riscv: introduce paging.h > [PATCH v1 08/57] xen/riscv: introduce asm/device.h > [PATCH v1 10/57] xen/riscv: introduce asm/grant_table.h > [PATCH v1 12/57] xen/riscv: introduce asm/hypercall.h > [PATCH v1 13/57] xen/riscv: introduce asm/iocap.h > [PATCH v1 15/57] xen/riscv: introduce asm/mem_access.h > [PATCH v1 18/57] xen/riscv: introduce asm/random.h > [PATCH v1 21/57] xen/riscv: introduce asm/xenoprof.h > [PATCH v1 24/57] xen/riscv: introduce asm/percpu.h > [PATCH v1 29/57] xen/riscv: introduce asm/hardirq.h > [PATCH v1 33/57] xen/riscv: introduce asm/altp2m.h > [PATCH v1 38/57] xen/riscv: introduce asm/monitor.h > [PATCH v1 39/57] xen/riscv: introduce asm/numa.h > [PATCH v1 42/57] xen/riscv: introduce asm/softirq.h > - xen/lib.h in most of the cases were changed to xen/bug.h as > mostly functionilty of bug.h is used. > - align arch-riscv.h with Arm's version of it. > - change the Author of commit with introduction of asm/atomic.h. > - update some definition from spinlock.h. > - code style changes. > --- > > > Oleksii Kurochko (10): > xen: introduce generic non-atomic test_*bit() > xen/riscv: introduce bitops.h > xen/riscv: add minimal stuff to mm.h to build full Xen > xen/riscv: add minimal amount of stubs to build full Xen > xen/riscv: enable full Xen build > xen/README: add compiler and binutils versions for RISC-V64 > xen/common: fix build issue for common/trace.c > xen/riscv: change .insn to .byte in cpu_relax() > xen/riscv: introduce ANDN_INSN > xen/x86: drop constanst_test_bit() in asm/bitops.h > > README | 3 + > xen/arch/arm/include/asm/bitops.h | 69 ---- > xen/arch/ppc/include/asm/bitops.h | 54 ---- > xen/arch/ppc/include/asm/page.h | 2 +- > xen/arch/ppc/mm-radix.c | 2 +- > xen/arch/riscv/Makefile | 17 +- > xen/arch/riscv/arch.mk | 4 - > xen/arch/riscv/early_printk.c | 168 ---------- > xen/arch/riscv/include/asm/bitops.h | 137 ++++++++ > xen/arch/riscv/include/asm/cmpxchg.h | 16 +- > xen/arch/riscv/include/asm/mm.h | 235 ++++++++++++++ > xen/arch/riscv/include/asm/processor.h | 2 +- > xen/arch/riscv/mm.c | 43 ++- > xen/arch/riscv/setup.c | 10 +- > xen/arch/riscv/stubs.c | 418 > +++++++++++++++++++++++++ > xen/arch/riscv/traps.c | 25 ++ > xen/arch/x86/include/asm/bitops.h | 39 +-- > xen/common/trace.c | 1 + > xen/include/xen/bitops.h | 182 +++++++++++ > 19 files changed, 1096 insertions(+), 331 deletions(-) > create mode 100644 xen/arch/riscv/include/asm/bitops.h > create mode 100644 xen/arch/riscv/stubs.c >
On 27.06.2024 14:08, oleksii.kurochko@gmail.com wrote: > I saw a message in the xen-devel channel:``` > erm... We've got a problem. > https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7185148004 > very clearly failed with a panic(), but reported success out to Gitlab > ``` > However, I couldn't determine if this is related to the patches in this > series or to patches that were merged earlier. I don't think that's related to the progress of this series. It is technically related, nevertheless. > I would like to understand what needs to be done to be sure that this > patch series could be merged. First of there is - afaict - still no Arm ack for patch 1. Without that no progress is possible at all. And then there still is this vague "I found another bug" indication by Andrew. It wouldn't feel quite right to me to commit without this having been clarified one way or another, albeit formally - with acks in place and the issue not raised on the list - doing so would still be okay-ish. Jan
© 2016 - 2024 Red Hat, Inc.