[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 0/7] xen/bitops: Reduce the mess, starting with ffs()
bitops.h is a mess. It has grown organtically over many years, and forces unreasonable repsonsibilities out into the per-arch stubs. Start cleaning it up with ffs() and friends. Across the board, this adds: * Functioning bitops without arch-specific asm * An option for arches to provide more optimal code generation * Compile-time constant folding * Testing at both compile time and during init that the basic operations behave according to spec. and the only reason this series isn't a net reduction in code alone is the because of the testing infrastructure in patch 1. This form is superior in many ways, including getting RISC-V support for free. Testing: https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1212269924 https://cirrus-ci.com/build/4939856296542208 Andrew Cooper (7): xen/bitops: Cleanup ahead of rearrangements xen/bitops: Implement ffs() in common logic xen/bitops: Implement ffsl() in common logic xen/bitops: Delete generic_ffs{,l}() xen/bitops: Implement ffs64() in common logic xen: Swap find_first_set_bit() for ffsl() - 1 xen/bitops: Delete find_first_set_bit() xen/arch/arm/include/asm/bitops.h | 16 +--- xen/arch/ppc/include/asm/bitops.h | 11 --- xen/arch/x86/guest/xen/xen.c | 4 +- xen/arch/x86/hvm/dom0_build.c | 2 +- xen/arch/x86/hvm/hpet.c | 8 +- xen/arch/x86/include/asm/bitops.h | 53 +++++------ xen/arch/x86/include/asm/pt-contig-markers.h | 2 +- xen/arch/x86/mm.c | 2 +- xen/arch/x86/mm/p2m-pod.c | 4 +- xen/common/Makefile | 1 + xen/common/bitops.c | 70 ++++++++++++++ xen/common/page_alloc.c | 2 +- xen/common/softirq.c | 2 +- xen/drivers/passthrough/amd/iommu_map.c | 2 +- xen/drivers/passthrough/iommu.c | 4 +- xen/drivers/passthrough/x86/iommu.c | 4 +- xen/include/xen/bitops.h | 97 +++++++++----------- xen/include/xen/compiler.h | 3 +- 18 files changed, 160 insertions(+), 127 deletions(-) create mode 100644 xen/common/bitops.c base-commit: 03cf7ca23e0e876075954c558485b267b7d02406 -- 2.30.2
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |