From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44751) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YqK2J-0004bh-0t for qemu-devel@nongnu.org; Thu, 07 May 2015 07:32:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YqK2F-0000aB-HY for qemu-devel@nongnu.org; Thu, 07 May 2015 07:32:14 -0400 Received: from mail-wg0-f53.google.com ([74.125.82.53]:33314) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YqK2F-0000a0-Bj for qemu-devel@nongnu.org; Thu, 07 May 2015 07:32:11 -0400 Received: by wgin8 with SMTP id n8so40393023wgi.0 for ; Thu, 07 May 2015 04:32:10 -0700 (PDT) From: Alexander Spyridakis Date: Thu, 7 May 2015 13:31:40 +0200 Message-Id: <1430998302-31502-1-git-send-email-a.spyridakis@virtualopensystems.com> Subject: [Qemu-devel] [PATCH RFC 0/2] virt bare-metal payload infrastructure with atomic test case List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mttcg@listserver.greensocs.com, jani.kokkonen@huawei.com, tech@virtualopensystems.com, claudio.fontana@huawei.com This series implements a bare-metal test payload for the ARM and AARCH64 virt machine models. With the new direction of TCG to finally get multi-threaded capabilities, simple and easily deployed tests are needed, to reproduce race conditions and intuitively debug QEMU's TCG internals. The goal of the series is to provide an easy way to create SMP guest test cases with minimal initialization. In its current state the provided features are, SMP functionality through PSCI calls, a simple spinlock test-case, and a minimal printf implementation based on the multiboot test. Parts of this payload have been also tested with normal hosts, as well as KVM guests. For the example spinlock test, racing errors could not be reproduced in the default single-threaded TCG, even with a non-atomic lock. In KVM the expected behaviour of no errors with regular locks, and some errors with a non-atomic lock was observed. Next steps are to test multi-threaded TCG with this kind of payloads, extend the infrastructure to more complex and sensitive test cases, as well as support different architectures. This work has been sponsored by Huawei Technologies Dusseldorf GmbH. Alexander Spyridakis (2): atomic-test: Implement ARM and AARCH64 basic bare-metal infrastructure atomic-test: Add spinlock test case tests/atomic-test/Makefile | 66 +++++++++++++++++++ tests/atomic-test/helpers.c | 105 +++++++++++++++++++++++++++++ tests/atomic-test/helpers.h | 48 ++++++++++++++ tests/atomic-test/link.ld.S | 19 ++++++ tests/atomic-test/main.c | 65 ++++++++++++++++++ tests/atomic-test/printf.c | 157 ++++++++++++++++++++++++++++++++++++++++++++ tests/atomic-test/start.S | 54 +++++++++++++++ 7 files changed, 514 insertions(+) create mode 100644 tests/atomic-test/Makefile create mode 100644 tests/atomic-test/helpers.c create mode 100644 tests/atomic-test/helpers.h create mode 100644 tests/atomic-test/link.ld.S create mode 100644 tests/atomic-test/main.c create mode 100644 tests/atomic-test/printf.c create mode 100644 tests/atomic-test/start.S -- 2.1.4