From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34470) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBJsa-00007q-Bc for qemu-devel@nongnu.org; Mon, 28 Nov 2016 06:13:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBJsX-0007yE-5k for qemu-devel@nongnu.org; Mon, 28 Nov 2016 06:13:48 -0500 Received: from mail-wm0-f48.google.com ([74.125.82.48]:37028) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cBJsW-0007xp-VE for qemu-devel@nongnu.org; Mon, 28 Nov 2016 06:13:45 -0500 Received: by mail-wm0-f48.google.com with SMTP id t79so150828929wmt.0 for ; Mon, 28 Nov 2016 03:13:44 -0800 (PST) References: <20161124161033.11456-1-alex.bennee@linaro.org> <20161128103744.s3wq53xzsxvu5uus@kamzik.brq.redhat.com> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: <20161128103744.s3wq53xzsxvu5uus@kamzik.brq.redhat.com> Date: Mon, 28 Nov 2016 11:12:41 +0000 Message-ID: <878ts3uac6.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [kvm-unit-tests PATCH v7 00/11] QEMU MTTCG Test cases List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Andrew Jones Cc: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, christoffer.dall@linaro.org, marc.zyngier@arm.com, mttcg@greensocs.com, peter.maydell@linaro.org, claudio.fontana@huawei.com, nikunj@linux.vnet.ibm.com, jan.kiszka@siemens.com, mark.burton@greensocs.com, a.rigo@virtualopensystems.com, qemu-devel@nongnu.org, cota@braap.org, serge.fdrv@gmail.com, pbonzini@redhat.com, bobby.prani@gmail.com, rth@twiddle.net, fred.konrad@greensocs.com Andrew Jones writes: > On Thu, Nov 24, 2016 at 04:10:22PM +0000, Alex Bennée wrote: >> Hi, >> >> Looking at my records it seems as though it has been a while since I >> last posted these tests. As I'm hoping to get the final bits of MTTCG >> merged upstream on the next QEMU development cycle I've been re-basing >> these and getting them cleaned up for merging. >> >> Some of the patches might be worth taking now if the maintainers are >> happy to do so (run_test tweaks, libcflat updates?). The others could >> do with more serious review. I've CC'd some of the ARM guys to look >> over the tlbflush/barrier tests so they can cast their expert eyes >> over them ;-) >> >> There are two additions to the series. >> >> The tcg-test is a general torture test aimed at QEMU's TCG execution >> model. It stresses the cpu execution loop through the use of >> cross-page and computed jumps. It can also add IRQ's and self-modifying >> code to the mix. >> >> The tlbflush-data test is a new one, the old tlbflush test is renamed >> tlbflush-code to better indicate the code path it exercise. The the >> code test tests the translation invalidation pathways in QEMU the data >> test exercises the SoftMMU's TLBs and explicitly that tlbflush >> completion semantics are correct. >> >> The tlbflush-data passes most of the times on real hardware but >> definitely showed the problem with deferred TLB flushes running under >> MTTCG QEMU. I've looked at some of the failure cases on real hardware >> and it did look like a timestamp appeared on a page that shouldn't >> have been accessible at the time - I don't know if this is a real >> silicon bug or my misreading of the semantics so I'd appreciate >> a comment from the experts. >> >> The code needs to be applied on top of Drew's latest ARM GIC patches >> or you can grab my tree from: >> >> https://github.com/stsquad/kvm-unit-tests/tree/mttcg/current-tests-v7 > > Thanks Alex, > > I've skimmed over everything looking at it from a framwork/sytle > perspective. I didn't dig in trying to understand the tests though. > One general comment, I see many tests introduce MAX_CPUS 8. Why do > that? Why not allow all cpus by using NR_CPUS for the array sizes? Yeah - I can fix those. I wonder what the maximum is with GIC V3? > > Thanks, > drew > >> >> Cheers, >> >> Alex. >> >> Alex Bennée (11): >> run_tests: allow forcing of acceleration mode >> run_tests: allow disabling of timeouts >> run_tests: allow passing of options to QEMU >> libcflat: add PRI(dux)32 format types >> lib: add isaac prng library from CCAN >> arm/Makefile.common: force -fno-pic >> arm/tlbflush-code: Add TLB flush during code execution test >> arm/tlbflush-data: Add TLB flush during data writes test >> arm/locking-tests: add comprehensive locking test >> arm/barrier-litmus-tests: add simple mp and sal litmus tests >> arm/tcg-test: some basic TCG exercising tests >> >> Makefile | 2 + >> arm/Makefile.arm | 2 + >> arm/Makefile.arm64 | 2 + >> arm/Makefile.common | 11 ++ >> arm/barrier-litmus-test.c | 437 ++++++++++++++++++++++++++++++++++++++++++++++ >> arm/locking-test.c | 302 ++++++++++++++++++++++++++++++++ >> arm/tcg-test-asm.S | 170 ++++++++++++++++++ >> arm/tcg-test-asm64.S | 169 ++++++++++++++++++ >> arm/tcg-test.c | 337 +++++++++++++++++++++++++++++++++++ >> arm/tlbflush-code.c | 212 ++++++++++++++++++++++ >> arm/tlbflush-data.c | 401 ++++++++++++++++++++++++++++++++++++++++++ >> arm/unittests.cfg | 190 ++++++++++++++++++++ >> lib/arm/asm/barrier.h | 63 ++++++- >> lib/arm64/asm/barrier.h | 50 ++++++ >> lib/libcflat.h | 5 + >> lib/prng.c | 162 +++++++++++++++++ >> lib/prng.h | 82 +++++++++ >> run_tests.sh | 18 +- >> scripts/functions.bash | 13 +- >> scripts/runtime.bash | 8 + >> 20 files changed, 2626 insertions(+), 10 deletions(-) >> create mode 100644 arm/barrier-litmus-test.c >> create mode 100644 arm/locking-test.c >> create mode 100644 arm/tcg-test-asm.S >> create mode 100644 arm/tcg-test-asm64.S >> create mode 100644 arm/tcg-test.c >> create mode 100644 arm/tlbflush-code.c >> create mode 100644 arm/tlbflush-data.c >> create mode 100644 lib/prng.c >> create mode 100644 lib/prng.h >> >> -- >> 2.10.1 >> >> -- Alex Bennée