On Wed, Jan 17, 2018 at 10:16:43AM +0100, David Hildenbrand wrote: > On 17.01.2018 10:12, Andrew Jones wrote: > > On Tue, Jan 16, 2018 at 08:50:27PM +0100, David Hildenbrand wrote: > >> On 16.01.2018 19:53, Andrew Jones wrote: > >>> The fixes are getting tests to run on 32-bit ARM again and also > >>> fixing virt_to_phys(). The feature is to allow a unit test to start > >>> with the MMU disabled. Couple minor cleanups thrown in too. > >>> > >>> I tested x86 and ppc64 over TCG, but not s390 (please-test: David). > >>> > >>> Andrew Jones (11): > >>> arm/arm64: cleanup alloc.h includes > >>> arm/arm64: add pgtable to thread_info > >>> arm/arm64: fix virt_to_phys > >>> arm/arm64: flush page table cache when installing entries > >>> arm/arm64: setup: don't allow gaps in phys range > >>> phys_alloc: ensure we account all allocations > >>> page_alloc: allow initialization before setup_vm call > >>> page_alloc: add yet another memalign > >>> lib/auxinfo: add flags field > >>> arm/arm64: allow setup_vm to be skipped > >>> arm/arm64: sieve should start with the mmu off > >>> > >>> arm/Makefile.common | 5 ++++- > >>> arm/cstart.S | 19 ++++++++++++++++++- > >>> arm/cstart64.S | 17 ++++++++++++++++- > >>> lib/alloc_page.c | 33 +++++++++++++++++++++++++++++++++ > >>> lib/alloc_page.h | 2 ++ > >>> lib/alloc_phys.c | 10 ++++++++++ > >>> lib/alloc_phys.h | 6 ++++-- > >>> lib/arm/asm/mmu.h | 5 +++++ > >>> lib/arm/asm/page.h | 8 +++----- > >>> lib/arm/asm/pgtable.h | 16 ++++++++++++---- > >>> lib/arm/asm/setup.h | 1 - > >>> lib/arm/asm/thread_info.h | 1 + > >>> lib/arm/mmu.c | 43 ++++++++++++++++++++++++++++++++++++++----- > >>> lib/arm/processor.c | 1 + > >>> lib/arm/setup.c | 22 ++++++++++++++-------- > >>> lib/arm/smp.c | 7 ++++++- > >>> lib/arm64/asm/mmu.h | 5 +++++ > >>> lib/arm64/asm/page.h | 10 +++------- > >>> lib/arm64/asm/pgtable.h | 12 ++++++++++-- > >>> lib/arm64/processor.c | 1 + > >>> lib/arm64/spinlock.c | 1 + > >>> lib/auxinfo.c | 13 ++++++++++++- > >>> lib/auxinfo.h | 6 ++++++ > >>> lib/vmalloc.c | 9 ++++++--- > >>> 24 files changed, 211 insertions(+), 42 deletions(-) > >>> > >> > >> lib/libcflat.a(alloc_page.o): In function `page_memalign': > >> /home/dhildenb/git/kvm-unit-tests/lib/alloc_page.c:146: undefined > >> reference to `__clzdi2' > >> collect2: error: ld returned 1 exit status > >> make: *** [/home/dhildenb/git/kvm-unit-tests/s390x/Makefile:44: > >> s390x/selftest.elf] Error 1 > >> > > > > Eh, I guess the s390 compiler doesn't have that builtin. I should > > properly add an fls() to asm/bitops.h for each arch then. s390 can > > use a generic implementation, like the kernel's generic binary search, > > __fls. > > I wonder if that is a compiler bug. Will try with an older (!cross) > compiler. I just sent a v2 with the bitops fix, which I think was the right way to go from the start. If s390x does have a working builtin or better way to implement fls, then it can be changed with a later patch. Thanks, drew