On Fri, Sep 04, 2020 at 04:31:03PM +0200, Thomas Huth wrote: > On 01/09/2020 10.50, Roman Bolshakov wrote: > > .gitlab-ci.yml already has a job to build the tests with clang but it's > > not clear how to set it up on a personal github repo. > > You can't use gitlab-ci from a github repo, it's a separate git forge > system. > > > NB, realmode test is disabled because it fails immediately after start > > if compiled with clang-10. > > > > Signed-off-by: Roman Bolshakov <r.bolshakov@xxxxxxxxx> > > --- > > .travis.yml | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/.travis.yml b/.travis.yml > > index f3a8899..ae4ed08 100644 > > --- a/.travis.yml > > +++ b/.travis.yml > > @@ -17,6 +17,16 @@ jobs: > > kvmclock_test msr pcid rdpru realmode rmap_chain s3 setjmp umip" > > - ACCEL="kvm" > > > > + - addons: > > + apt_packages: clang-10 qemu-system-x86 > > + env: > > + - CONFIG="--cc=clang-10" > > + - BUILD_DIR="." > > + - TESTS="access asyncpf debug emulator ept hypercall hyperv_stimer > > + hyperv_synic idt_test intel_iommu ioapic ioapic-split > > + kvmclock_test msr pcid rdpru rmap_chain s3 setjmp umip" > > + - ACCEL="kvm" > > We already have two jobs for compiling on x86, one for testing in-tree > builds and one for testing out-of-tree builds ... I wonder whether we > should simply switch one of those two jobs to use clang-10 instead of > gcc (since the in/out-of-tree stuff should be hopefully independent of > the compiler type)? Since Travis limits the amount of jobs that run at > the same time, that would not increase the total testing time, I think. > Hi Thomas, sure, that works for me. > Thomas > > > PS: Maybe we could update from bionic to focal now, too, and see whether > some more tests are working with the newer version of QEMU there... > no problem, here're results for focal/kvm on IBM x3500 M3 (Nehalem) if the tests are built with clang: PASS apic-split (53 tests) PASS ioapic-split (19 tests) PASS apic (53 tests) PASS ioapic (26 tests) SKIP cmpxchg8b (i386 only) PASS smptest (1 tests) PASS smptest3 (1 tests) PASS vmexit_cpuid PASS vmexit_vmcall PASS vmexit_mov_from_cr8 PASS vmexit_mov_to_cr8 PASS vmexit_inl_pmtimer PASS vmexit_ipi PASS vmexit_ipi_halt PASS vmexit_ple_round_robin PASS vmexit_tscdeadline PASS vmexit_tscdeadline_immed PASS access SKIP smap (0 tests) SKIP pku (0 tests) PASS asyncpf (1 tests) PASS emulator (125 tests, 2 skipped) PASS eventinj (13 tests) PASS hypercall (2 tests) PASS idt_test (4 tests) PASS memory (8 tests) PASS msr (12 tests) SKIP pmu (/proc/sys/kernel/nmi_watchdog not equal to 0) SKIP vmware_backdoors (/sys/module/kvm/parameters/enable_vmware_backdoor not equal to Y) PASS port80 FAIL realmode PASS s3 PASS setjmp (10 tests) PASS sieve PASS syscall (2 tests) PASS tsc (3 tests) PASS tsc_adjust (5 tests) PASS xsave (4 tests) PASS rmap_chain SKIP svm (0 tests) SKIP taskswitch (i386 only) SKIP taskswitch2 (i386 only) PASS kvmclock_test PASS pcid (3 tests) PASS pcid-disabled (3 tests) PASS rdpru (1 tests) PASS umip (21 tests) FAIL vmx PASS ept (8636 tests) SKIP vmx_eoi_bitmap_ioapic_scan (1 tests, 1 skipped) SKIP vmx_hlt_with_rvi_test (1 tests, 1 skipped) SKIP vmx_apicv_test (2 tests, 2 skipped) PASS vmx_apic_passthrough_thread (8 tests) FAIL vmx_init_signal_test (8 tests, 1 unexpected failures) FAIL vmx_apic_passthrough_tpr_threshold_test (timeout; duration=10) PASS vmx_vmcs_shadow_test (142218 tests) PASS debug (11 tests) PASS hyperv_synic (1 tests) PASS hyperv_connections (7 tests) PASS hyperv_stimer (12 tests) PASS hyperv_clock PASS intel_iommu (11 tests) PASS tsx-ctrl Here are results for the same server if tests are built with gcc: SureSS apic-split (53 tests) PASS ioapic-split (19 tests) PASS apic (53 tests) PASS ioapic (26 tests) SKIP cmpxchg8b (i386 only) PASS smptest (1 tests) PASS smptest3 (1 tests) PASS vmexit_cpuid PASS vmexit_vmcall PASS vmexit_mov_from_cr8 PASS vmexit_mov_to_cr8 PASS vmexit_inl_pmtimer PASS vmexit_ipi PASS vmexit_ipi_halt PASS vmexit_ple_round_robin PASS vmexit_tscdeadline PASS vmexit_tscdeadline_immed PASS access SKIP smap (0 tests) SKIP pku (0 tests) PASS asyncpf (1 tests) PASS emulator (125 tests, 2 skipped) PASS eventinj (13 tests) PASS hypercall (2 tests) PASS idt_test (4 tests) PASS memory (8 tests) PASS msr (12 tests) SKIP pmu (/proc/sys/kernel/nmi_watchdog not equal to 0) SKIP vmware_backdoors (/sys/module/kvm/parameters/enable_vmware_backdoor not equal to Y) PASS port80 PASS realmode PASS s3 PASS setjmp (10 tests) PASS sieve PASS syscall (2 tests) PASS tsc (3 tests) PASS tsc_adjust (5 tests) PASS xsave (4 tests) PASS rmap_chain SKIP svm (0 tests) SKIP taskswitch (i386 only) SKIP taskswitch2 (i386 only) PASS kvmclock_test PASS pcid (3 tests) PASS pcid-disabled (3 tests) PASS rdpru (1 tests) PASS umip (21 tests) FAIL vmx PASS ept (8636 tests) SKIP vmx_eoi_bitmap_ioapic_scan (1 tests, 1 skipped) SKIP vmx_hlt_with_rvi_test (1 tests, 1 skipped) SKIP vmx_apicv_test (2 tests, 2 skipped) PASS vmx_apic_passthrough_thread (8 tests) FAIL vmx_init_signal_test (8 tests, 1 unexpected failures) FAIL vmx_apic_passthrough_tpr_threshold_test (timeout; duration=10) PASS vmx_vmcs_shadow_test (142218 tests) PASS debug (11 tests) PASS hyperv_synic (1 tests) PASS hyperv_connections (7 tests) PASS hyperv_stimer (12 tests) PASS hyperv_clock PASS intel_iommu (11 tests) PASS tsx-ctrl The difference is only realmode test which doesn't work if built by clang. Thanks, Roman