From patchwork Tue Oct 10 07:52:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845687 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=elog3bUZ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4SqZ09tLz1ypX for ; Tue, 10 Oct 2023 18:55:05 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7Y1-0004aT-Sj; Tue, 10 Oct 2023 03:52:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7Xz-0004Yi-G3; Tue, 10 Oct 2023 03:52:56 -0400 Received: from mail-ua1-x936.google.com ([2607:f8b0:4864:20::936]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7Xx-0005Fv-FN; Tue, 10 Oct 2023 03:52:54 -0400 Received: by mail-ua1-x936.google.com with SMTP id a1e0cc1a2514c-7b5fd3d0d7eso199053241.0; Tue, 10 Oct 2023 00:52:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924372; x=1697529172; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jqOeK0/4KlKokdTq+gvtYVKstLq2Zxm+SQKNVRGnoUw=; b=elog3bUZmKk1Hn4JITSbCXtrQON1b9cta5647ZML9mnXV+ZdykLr80IuhpFuIGvMG+ OEV7R9/1eGQcKvhLuYrdEP6e1UsTy/B2KMfuqp4LA0wnWjV2vO/ek/K3kF9DdejoR1EK 1lEUdFlEir6ZUEkNqhbI1ex+JFoCFG0wIXnxAurP02ymt9n+J776f4o7S6PRGnMLNTJp nG35TEe3DQUpB56iQhlSltVX15KPXfsaSpk/1N33tnEKxqLV3URGZ1dWfbOiyJJbOdJW 3X4Frn3RKtBXtMA4/wLNUtzhiXGvaHG35E5unLSzHqfms52CG0ErTclvvvZfULIXeLIy CVIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924372; x=1697529172; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jqOeK0/4KlKokdTq+gvtYVKstLq2Zxm+SQKNVRGnoUw=; b=g+xuEm8s3Q+G5y5YqyAHzmunbhgOf0UGYdZa15ryyzCWiAdEfBUCmXcl9JDBkxl2NG YIFW8MIGoBGvq1f9O3CCKijxxnIeIUvsVA0DS1NuF/0En9abk0MpMjlERr4BfrigvTd4 YiIAXQZidHUfgb5Y7BHGuK/qJN410R5GpCiQ1XTicOhx9+sZ2H6m7/eRfSqLbxKFPTWs MwLc8x4rTjn8/2NUa8s4QPWwspEHJrBF/1+LZoi3V887aztmmTvYKX5p/nyzLMwNM73S v9RlPxuoth5kmDAYtiSlpV0ONsUNPZ18zx7OLu6WdMUGv+AA4YXmTSkRHvFvv7IwVJtw Fr2g== X-Gm-Message-State: AOJu0YyIyChOnA2TdFjMa5pLgBXXKgznL5OuuVrMs7o6x2bwByQgd5uM QGxwnNTk1QMIi7CvkiTskvZlao0WvEY= X-Google-Smtp-Source: AGHT+IGSxfNKGu2U1uIoBjwkp81iseKPFUM6R9ESwpnxxVH4M+PutpazvrFa3PGHu7/G5wiwE0MOOg== X-Received: by 2002:a1f:ddc2:0:b0:49a:36e4:5565 with SMTP id u185-20020a1fddc2000000b0049a36e45565mr13319788vkg.16.1696924371714; Tue, 10 Oct 2023 00:52:51 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.52.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:52:51 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 01/11] tests/avocado: ppc add powernv10 boot_linux_console test Date: Tue, 10 Oct 2023 17:52:28 +1000 Message-ID: <20231010075238.95646-2-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::936; envelope-from=npiggin@gmail.com; helo=mail-ua1-x936.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Add a powernv POWER10 variant for boot_linux_console.py. Signed-off-by: Nicholas Piggin --- tests/avocado/boot_linux_console.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py index 01ee149812..9434304cd3 100644 --- a/tests/avocado/boot_linux_console.py +++ b/tests/avocado/boot_linux_console.py @@ -1393,6 +1393,14 @@ def test_ppc_powernv9(self): """ self.do_test_ppc64_powernv('P9') + def test_ppc_powernv10(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:powernv10 + :avocado: tags=accel:tcg + """ + self.do_test_ppc64_powernv('P10') + def test_ppc_g3beige(self): """ :avocado: tags=arch:ppc From patchwork Tue Oct 10 07:52:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845684 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=TCokQRj1; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4Sq33Vvdz1yqN for ; Tue, 10 Oct 2023 18:54:39 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7Y5-0004bw-BC; Tue, 10 Oct 2023 03:53:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7Y3-0004ak-Eo; Tue, 10 Oct 2023 03:53:00 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7Y1-0005GS-Jh; Tue, 10 Oct 2023 03:52:59 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-692b2bdfce9so4775163b3a.3; Tue, 10 Oct 2023 00:52:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924375; x=1697529175; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NNwNk6v5s/mWYlSRNEECJ0K7X37JqAfWAFjFfycrRY0=; b=TCokQRj18mqU3ftklDcGv0sTDp/nvWPAdsFVpTsQXOw68KF1+J/4IJDaIRjMeH6np4 EuoaCzMeFfUMcz5pUH5VUkquokJq8z1kzAMtPLb4iT9TMsJ0QtxxtD1Qwd8j1OhCNm25 vnOelyJqoSr8MJ7oCaepiXFvuGo/UdQL2vmz9y+MVUM1AzvvmkMe+rcap2JYQU0ai/Od PYzPmW4HDYYgXdST9re7y4JTLwKVw0tIDBh6NrJQ0u+dmOxSkQ7mv33yvOvY6VOrx6PW hBtS7+9i4ZTYcFew5DfO/CA7ALy1IgyJ2GGFkU6tvZ1+BfAqP0b5G2FPLtSZLMul38Ac zZgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924375; x=1697529175; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NNwNk6v5s/mWYlSRNEECJ0K7X37JqAfWAFjFfycrRY0=; b=WKLQKd8I6MNs/6fOt48s81yIvYbOM25ZSZDKeBFPG04iNQFlKDe/b6jVfOjk6S7OX3 fOTZf1WpKDH0W3uiZKZLiRGlHEesgeGTRPMuahB2oiPyk9sfO+74C2aeTgBkww7SK9Dg fSqysVQEoRkJWQiQErQW17JR2xd6+LGVyRld7QF//KuX8VTc3USk3/V7VjhlMTY5LDKp Fmh1B6JZ/YtU04vt/pKxiRrz2YhHnlzcVHGslE/bov5zpRDBqBlJKBe6qm7zYw9Ycyy6 fapg3c1PyOnejDxw1v9uv77vR5f9raYWih8QNfYpPmmqb7x0XGyBvfL+VrSXRlZrH9o3 N55g== X-Gm-Message-State: AOJu0YxHOfL7YgcNee87Ya2E2cvMj7UyskqqLAZJWL+qzB6tSd//rr3t FcCXoHwWRG+nBJ3KV8UR5wIz1tLW2J8= X-Google-Smtp-Source: AGHT+IEZ7jbEeZI0gelwMGzVXD/vYwcL0ynkXCtgd6mYPdwmcNB86f9Nd1DOc4KPm3s3ZHl2ZQEC/w== X-Received: by 2002:a05:6a21:3290:b0:15d:ec88:356e with SMTP id yt16-20020a056a21329000b0015dec88356emr22672435pzb.41.1696924375405; Tue, 10 Oct 2023 00:52:55 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.52.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:52:55 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 02/11] tests/avocado: Add ppc pseries and powernv Hash MMU tests Date: Tue, 10 Oct 2023 17:52:29 +1000 Message-ID: <20231010075238.95646-3-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42c; envelope-from=npiggin@gmail.com; helo=mail-pf1-x42c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org The Hash MMU mode is supported along side Radix in POWER hardware, and Linux supports running in either mode. Radix is the default so to keep up testing of QEMU Hash MMU, add some explicit Hash MMU tests. Signed-off-by: Nicholas Piggin --- tests/avocado/ppc_powernv.py | 21 ++++++++++++++++++--- tests/avocado/ppc_pseries.py | 20 +++++++++++++++++--- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/tests/avocado/ppc_powernv.py b/tests/avocado/ppc_powernv.py index d0e5c07bde..2be322c47d 100644 --- a/tests/avocado/ppc_powernv.py +++ b/tests/avocado/ppc_powernv.py @@ -12,11 +12,11 @@ class powernvMachine(QemuSystemTest): timeout = 90 - KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 ' + KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 console=hvc0 ' panic_message = 'Kernel panic - not syncing' good_message = 'VFS: Cannot open root device' - def do_test_linux_boot(self): + def do_test_linux_boot(self, kernel_command_line = KERNEL_COMMON_COMMAND_LINE): self.require_accelerator("tcg") kernel_url = ('https://archives.fedoraproject.org/pub/archive' '/fedora-secondary/releases/29/Everything/ppc64le/os' @@ -25,7 +25,6 @@ def do_test_linux_boot(self): kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash) self.vm.set_console() - kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=hvc0' self.vm.add_args('-kernel', kernel_path, '-append', kernel_command_line) self.vm.launch() @@ -54,6 +53,22 @@ def test_linux_smp_boot(self): wait_for_console_pattern(self, console_pattern, self.panic_message) wait_for_console_pattern(self, self.good_message, self.panic_message) + def test_linux_smp_hpt_boot(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:powernv + :avocado: tags=accel:tcg + """ + + self.vm.add_args('-smp', '4') + self.do_test_linux_boot(self.KERNEL_COMMON_COMMAND_LINE + + 'disable_radix') + console_pattern = 'smp: Brought up 1 node, 4 CPUs' + wait_for_console_pattern(self, 'hash-mmu: Initializing hash mmu', + self.panic_message) + wait_for_console_pattern(self, console_pattern, self.panic_message) + wait_for_console_pattern(self, self.good_message, self.panic_message) + def test_linux_smt_boot(self): """ :avocado: tags=arch:ppc64 diff --git a/tests/avocado/ppc_pseries.py b/tests/avocado/ppc_pseries.py index a8311e6555..74aaa4ac4a 100644 --- a/tests/avocado/ppc_pseries.py +++ b/tests/avocado/ppc_pseries.py @@ -12,11 +12,11 @@ class pseriesMachine(QemuSystemTest): timeout = 90 - KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 ' + KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 console=hvc0 ' panic_message = 'Kernel panic - not syncing' good_message = 'VFS: Cannot open root device' - def do_test_ppc64_linux_boot(self): + def do_test_ppc64_linux_boot(self, kernel_command_line = KERNEL_COMMON_COMMAND_LINE): kernel_url = ('https://archives.fedoraproject.org/pub/archive' '/fedora-secondary/releases/29/Everything/ppc64le/os' '/ppc/ppc64/vmlinuz') @@ -24,7 +24,6 @@ def do_test_ppc64_linux_boot(self): kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash) self.vm.set_console() - kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=hvc0' self.vm.add_args('-kernel', kernel_path, '-append', kernel_command_line) self.vm.launch() @@ -62,6 +61,21 @@ def test_ppc64_linux_smp_boot(self): wait_for_console_pattern(self, console_pattern, self.panic_message) wait_for_console_pattern(self, self.good_message, self.panic_message) + def test_ppc64_linux_hpt_smp_boot(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:pseries + """ + + self.vm.add_args('-smp', '4') + self.do_test_ppc64_linux_boot(self.KERNEL_COMMON_COMMAND_LINE + + 'disable_radix') + console_pattern = 'smp: Brought up 1 node, 4 CPUs' + wait_for_console_pattern(self, 'hash-mmu: Initializing hash mmu', + self.panic_message) + wait_for_console_pattern(self, console_pattern, self.panic_message) + wait_for_console_pattern(self, self.good_message, self.panic_message) + def test_ppc64_linux_smt_boot(self): """ :avocado: tags=arch:ppc64 From patchwork Tue Oct 10 07:52:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845683 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=a3ESwaVW; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4Spy3Wfbz1yqN for ; Tue, 10 Oct 2023 18:54:34 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7YA-0004dX-Hd; Tue, 10 Oct 2023 03:53:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7Y8-0004dB-MX; Tue, 10 Oct 2023 03:53:04 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7Y5-0005HA-5W; Tue, 10 Oct 2023 03:53:04 -0400 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-69fc829d7b1so2321962b3a.1; Tue, 10 Oct 2023 00:53:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924379; x=1697529179; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rFyMnwFgzOm/mAvbUFxth7p6TWc0PhYI/tCOyvFn+Sc=; b=a3ESwaVW32mmYUz688o+kNMVF0LQNcin97ZQan53BptSWFse5XapTPcOW5bhOulyjB ET7+1E8AkYPioybPpaaISPeW78gTLCQGmbsHwTtpAJI1v/j0Lh+e1VbltpmvBo6+uwsm hjMjGQxMKf8rjH5BKdUu0+LuCMVFFBjAXSTOccN2oyrGm4/4GPdhsT7e1HAHWiqLHhmM +6V9tPQaY9v2MPYIh4wdujcrAx4otY/aGEquE4cSTYV9mBYjN+8hpwNIq5aoY5mwW9BG nw7Ict4tYh3sXMopj4A1ypMrI0hXcwk1edJuziD9GQ+psFftQNo8bIVQN9BDEKmwUUpy L3jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924379; x=1697529179; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rFyMnwFgzOm/mAvbUFxth7p6TWc0PhYI/tCOyvFn+Sc=; b=m+l4XJUFwl94K9HQvN8XxNMgBiJs+qLAqlAjhUum3OTwwUxMwk26AkRZTcWSp2LLN0 xxUGQsE9ilQW8d85D5ZRqenV+ns+wDn82MyKA7vOI/IAy1cgPMgLIMZREfiaccUMVZiC CNkHeKDz7pVC/J/MdA38j2lc7gjgqri1pCYlUTVHS3ScAwi7HqiM99w09ecDuL/DJhyu 8D2UvhELPZTW1s67l69oKynEevoA0u+Exna0GoqO6yWCL7ddX0B3p48t9M1klZZ1KrCe vunmT0kDAAylBKPX6nAIunnjLzrmK61pCTpDf0PSeloO9Vwi1wdsGD/rZs7X507F9cZr 3jAg== X-Gm-Message-State: AOJu0Yy4L9EXbulej13ptLYpE9NwBlsLwqcBYOL+DOgoMVZ6bC+fYrSd eWFNfXiMaym5S+zbm8O4vXx2FecrS4k= X-Google-Smtp-Source: AGHT+IGqMe0ujA9jOeuIqfPkAtJwIOYlW0rrMPtBwdxvoXbsTbVGUwFsnxSPsr5JMODQkgfdWjJKJQ== X-Received: by 2002:a05:6a00:230c:b0:68a:6305:a4cc with SMTP id h12-20020a056a00230c00b0068a6305a4ccmr20504911pfh.5.1696924379268; Tue, 10 Oct 2023 00:52:59 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.52.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:52:59 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 03/11] tests/avocado: Add pseries KVM boot_linux test Date: Tue, 10 Oct 2023 17:52:30 +1000 Message-ID: <20231010075238.95646-4-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=npiggin@gmail.com; helo=mail-pf1-x435.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org There is not much support for KVM backend. Add a KVM boot_linux.py test for pseries. Signed-off-by: Nicholas Piggin --- tests/avocado/boot_linux.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/avocado/boot_linux.py b/tests/avocado/boot_linux.py index be30dcbd58..6ce08ff6aa 100644 --- a/tests/avocado/boot_linux.py +++ b/tests/avocado/boot_linux.py @@ -103,6 +103,15 @@ def test_pseries_tcg(self): self.vm.add_args("-accel", "tcg") self.launch_and_wait(set_up_ssh_connection=False) + @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab') + def test_pseries_kvm(self): + """ + :avocado: tags=machine:pseries + :avocado: tags=accel:kvm + """ + self.require_accelerator("kvm") + self.vm.add_args("-accel", "kvm") + self.launch_and_wait(set_up_ssh_connection=False) class BootLinuxS390X(LinuxTest): """ From patchwork Tue Oct 10 07:52:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845675 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=Jjy4cjLg; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4Sp63lDvz1yqN for ; Tue, 10 Oct 2023 18:53:50 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7YE-0004iS-Ce; Tue, 10 Oct 2023 03:53:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7YA-0004db-Vt; Tue, 10 Oct 2023 03:53:07 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7Y8-0005HT-PN; Tue, 10 Oct 2023 03:53:06 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-692d2e8c003so4670019b3a.1; Tue, 10 Oct 2023 00:53:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924383; x=1697529183; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9KpFJaUa6C+kEpWe/K0V38sdkDOIqd7glVdiqnCv3zc=; b=Jjy4cjLg7x4WYsRE3tK8qN0UrMdN7RUvTooVTHXPUDQkXiley57GEY3EcMexbDzqKc YqWu0P/60nJNqb7skyzJS5WhQfW7wtFG1V2VubsJi64QmE4GltUieY9xigU+7NcFddM4 UoTnwBtZRoXOo8RhQs1CViXeeVIWpQB29RHIhCAeO4DcaZbeg/Wt1TN2lFlwOIwIImp8 kxbarbSzxvWsz1EBRIaZSRW6nOSd2bWNEmUkvYvFiBR0X+7pz9NCkQ8iyOG3OdufzFBZ scdkSicviSKMl8dqqwRbskbt5Wttcz/EWTD0lN7EP5JdAwypZrWaf4ymkFkfyCvEwIor Gjuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924383; x=1697529183; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9KpFJaUa6C+kEpWe/K0V38sdkDOIqd7glVdiqnCv3zc=; b=Dzggs8ozPLa0O1bjwbNkMj1uhtw0n5CyV5rYV0CMcWsK4GNITnr5HCppFutZa6qNcL ePbnjIlg3NiimDM9eo+LGt6iplrUEdktChupeF7PHInrVevlzBQngzx9USP3Wp3Bby/x wE9lfQUs1/p+qA/k1GJ17lX5OwOYzY5+AVMJxDXXFlZJe94EMhFlRZgyM3YrkpyhvBx7 SEpr4xksO9+fl/lnVK5h25TOFOOEl5pN55jQGpIGSzcg3/TlJ+BzOaZWIUy1mVEAaiJL zqGMEvAHPS0KInHMTXwt13IhKFf0m9nl98mq6mzevt1hi4IDJund8gwEl0m0fwHN+q5c 6mwA== X-Gm-Message-State: AOJu0Yx0FUUpiy1ZiY6lhcw8LLHWLySeTqMt3wNvU/h4EKMEDq0GYR0T wVmpIO5R5zaZq+BBgTwp5sDqTyZpUIM= X-Google-Smtp-Source: AGHT+IFfEh/MnNmOiX/0yd818trsgjzupkLNvORDhtgjTcRjEp1z6bIkw007XhbwXc7H2oy7e+La9A== X-Received: by 2002:a05:6a20:8e28:b0:140:d536:d434 with SMTP id y40-20020a056a208e2800b00140d536d434mr22360904pzj.10.1696924382867; Tue, 10 Oct 2023 00:53:02 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.52.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:53:02 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 04/11] tests/avocado: ppc add hypervisor tests Date: Tue, 10 Oct 2023 17:52:31 +1000 Message-ID: <20231010075238.95646-5-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=npiggin@gmail.com; helo=mail-pf1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org The powernv and pseries machines both provide hypervisor facilities, which is a large and complicated set of features that don't get much system testing in CI. Add a new test case for these which runs QEMU KVM inside the target. --- tests/avocado/ppc_hv_tests.py | 173 ++++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 tests/avocado/ppc_hv_tests.py diff --git a/tests/avocado/ppc_hv_tests.py b/tests/avocado/ppc_hv_tests.py new file mode 100644 index 0000000000..16aac1d35d --- /dev/null +++ b/tests/avocado/ppc_hv_tests.py @@ -0,0 +1,173 @@ +# Tests that specifically try to exercise hypervisor features of the +# target machines. powernv supports the Power hypervisor ISA, and +# pseries supports the nested-HV hypervisor spec. +# +# Copyright (c) 2023 IBM Corporation +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +from avocado import skipIf +from avocado.utils import archive +from avocado_qemu import QemuSystemTest +from avocado_qemu import wait_for_console_pattern, exec_command +import os +import time +import subprocess + +# Alpine is a light weight distro that supports QEMU. These tests boot +# that on the machine then run a QEMU guest inside it in KVM mode, +# that runs the same Alpine distro image. +# QEMU packages are downloaded and installed on each test. That's not a +# large download, but it may be more polite to create qcow2 image with +# QEMU already installed and use that. +class HypervisorTest(QemuSystemTest): + + timeout = 600 + KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 console=hvc0 ' + panic_message = 'Kernel panic - not syncing' + good_message = 'VFS: Cannot open root device' + + def extract_from_iso(self, iso, path): + """ + Extracts a file from an iso file into the test workdir + + :param iso: path to the iso file + :param path: path within the iso file of the file to be extracted + :returns: path of the extracted file + """ + filename = os.path.basename(path) + + cwd = os.getcwd() + os.chdir(self.workdir) + + with open(filename, "w") as outfile: + cmd = "isoinfo -i %s -R -x %s" % (iso, path) + subprocess.run(cmd.split(), stdout=outfile) + + os.chdir(cwd) + + # Return complete path to extracted file. Because callers to + # extract_from_iso() specify 'path' with a leading slash, it is + # necessary to use os.path.relpath() as otherwise os.path.join() + # interprets it as an absolute path and drops the self.workdir part. + return os.path.normpath(os.path.join(self.workdir, filename)) + + def do_start_alpine(self): + iso_url = ('https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/ppc64le/alpine-standard-3.18.4-ppc64le.iso') + + # Alpine use sha256 so I recalculated this myself + iso_sha256 = 'c26b8d3e17c2f3f0fed02b4b1296589c2390e6d5548610099af75300edd7b3ff' + iso_path = self.fetch_asset(iso_url, asset_hash=iso_sha256, + algorithm = "sha256") + + vmlinuz = self.extract_from_iso(iso_path, '/boot/vmlinuz-lts') + initramfs = self.extract_from_iso(iso_path, '/boot/initramfs-lts') + + self.vm.set_console() + self.vm.add_args("-kernel", vmlinuz) + self.vm.add_args("-initrd", initramfs) + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + + 'console=hvc0') + self.require_accelerator("tcg") + + self.vm.add_args("-accel", "tcg,thread=multi") + self.vm.add_args("-smp", "4", "-m", "2g") + self.vm.add_args("-drive", f"file={iso_path},format=raw,if=none,id=drive0") +# self.vm.add_args("-drive", f"file={iso_path},format=raw") + + self.vm.launch() + wait_for_console_pattern(self, 'Welcome to Alpine Linux 3.18') + exec_command(self, 'root') + wait_for_console_pattern(self, 'localhost login:') + wait_for_console_pattern(self, 'You may change this message by editing /etc/motd.') + exec_command(self, 'setup-alpine -qe') + wait_for_console_pattern(self, 'localhost:~#') + + def do_stop_alpine(self): + exec_command(self, 'poweroff') + wait_for_console_pattern(self, 'alpine:~#') + self.vm.wait() + + def do_setup_kvm(self): + exec_command(self, 'echo http://dl-cdn.alpinelinux.org/alpine/v3.18/main > /etc/apk/repositories') + wait_for_console_pattern(self, 'alpine:~#') + exec_command(self, 'echo http://dl-cdn.alpinelinux.org/alpine/v3.18/community >> /etc/apk/repositories') + wait_for_console_pattern(self, 'alpine:~#') + exec_command(self, 'apk update') + wait_for_console_pattern(self, 'alpine:~#') + exec_command(self, 'apk add qemu-system-ppc64') + wait_for_console_pattern(self, 'alpine:~#') + exec_command(self, 'modprobe kvm-hv') + wait_for_console_pattern(self, 'alpine:~#') + + def do_test_kvm(self, hpt=False): + if hpt: + append = 'disable_radix' + else: + append = '' + exec_command(self, 'qemu-system-ppc64 -nographic -smp 2 -m 1g ' + '-machine pseries,x-vof=on,accel=kvm ' + '-machine cap-cfpc=broken,cap-sbbc=broken,' + 'cap-ibs=broken,cap-ccf-assist=off ' + '-drive file=/dev/nvme0n1,format=raw,readonly=on ' + '-initrd /media/nvme0n1/boot/initramfs-lts ' + '-kernel /media/nvme0n1/boot/vmlinuz-lts ' + '-append \'usbcore.nousb ' + append + '\'') + # Alpine 3.18 kernel seems to crash in XHCI USB driver. + wait_for_console_pattern(self, 'Welcome to Alpine Linux 3.18') + exec_command(self, 'root') + wait_for_console_pattern(self, 'localhost login:') + wait_for_console_pattern(self, 'You may change this message by editing /etc/motd.') + exec_command(self, 'poweroff >& /dev/null') + wait_for_console_pattern(self, 'localhost:~#') + wait_for_console_pattern(self, 'reboot: Power down') + time.sleep(1) + exec_command(self, '') # console has strange issue after qemu exit + exec_command(self, 'reset') + exec_command(self, 'echo VM finished') + wait_for_console_pattern(self, 'VM finished') + + @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab') + def test_hv_pseries(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:pseries + :avocado: tags=accel:tcg + """ + self.vm.add_args('-device', 'nvme,serial=1234,drive=drive0') + self.vm.add_args("-machine", "x-vof=on,cap-nested-hv=on") + self.do_start_alpine() + self.do_setup_kvm() + self.do_test_kvm() + self.do_stop_alpine() + + @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab') + def test_hv_pseries_kvm(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:pseries + :avocado: tags=accel:kvm + """ + self.vm.add_args('-device', 'nvme,serial=1234,drive=drive0') + self.vm.add_args("-machine", "x-vof=on,cap-nested-hv=on") + self.do_start_alpine() + self.do_setup_kvm() + self.do_test_kvm() + self.do_stop_alpine() + + @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab') + def test_hv_powernv(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:powernv + :avocado: tags=accel:tcg + """ + self.vm.add_args('-device', 'nvme,bus=pcie.2,addr=0x0,serial=1234,drive=drive0', + '-device', 'e1000e,netdev=net0,mac=C0:FF:EE:00:00:02,bus=pcie.0,addr=0x0', + '-netdev', 'user,id=net0,hostfwd=::20022-:22,hostname=alpine') + self.do_start_alpine() + self.do_setup_kvm() + self.do_test_kvm() + self.do_test_kvm(True) + self.do_stop_alpine() From patchwork Tue Oct 10 07:52:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845671 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=GU5u+p8v; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4Snj3VHmz1yqN for ; Tue, 10 Oct 2023 18:53:29 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7YJ-000541-Ns; Tue, 10 Oct 2023 03:53:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7YE-0004il-FB; Tue, 10 Oct 2023 03:53:10 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7YC-0005I0-6k; Tue, 10 Oct 2023 03:53:09 -0400 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-690f7d73a3aso4748069b3a.0; Tue, 10 Oct 2023 00:53:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924386; x=1697529186; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W3kMfoAJbHxcTO8KNkuAf+XxPC/1KqJfhYW246npcGE=; b=GU5u+p8vic5m0ep7BYxbgSqDlDbtMA4k5515YixbqVNmvzPWuk3lerkbZ5HQftS5rX KSGkZddNpAL4HyAEeQIDHFWKtYN4qlIxjjBcM+G3ivBSm2591uAB4+AKC9E3vKSVRQDg JGiqAuNE1XtkMRZJN9TC166Gg8OyqXqjFFq8IFJ58drJqOgok2alg9XC+wvW66f23XQ2 /hMpVhsVxrccCh2JAX1JSsjrwu1RFav7r0LM/LYsz4zgzcMFchSvq183Zx4maxgK/0Hc WKvmszCJQ1Tw7XLy2nl/lcCzQ+CT8eclaloySZwwp3yDjBENDtJ3ng+83037dKpsSUWO Ux6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924386; x=1697529186; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W3kMfoAJbHxcTO8KNkuAf+XxPC/1KqJfhYW246npcGE=; b=t9ocHdEtg9iLp+ZDmiJKliOIAlmqhpT4ieAZNMj2cs0/MwfS3Yfe8nQzEMEiY/uXrl KlY2CmuPbEGvXTVOcAkDhcyW7S/HHMXegvI7ZMU3TdD9wook4ycMzQeeU2MrEl2E+v2f h8iGcdZkb9XLzW5E0ikGwAYBuIaaAhYryAS5vQxnGU27+/9PehlfZLVajk2WCgXwPlBF kzzr8Is3bz13NP+IfRt6cCnCRKz5n94sqy8TufjIizmOq0BY2kJnta2DoF0mGyiTSGMH OL63ggZD8WiTpUTNiDjM1tWqgSedTpVdZVDaavD2AoM8halSx7cFOMBSJGIggSpKz2d4 Dr5w== X-Gm-Message-State: AOJu0YxB617PpoL0cywUbJyTdHfccN6Kxw/Zn09IDlZ2qNBr7hKnma8L YxaqEWVTZfk/NAOi2AzEgKDp8Q8JIKs= X-Google-Smtp-Source: AGHT+IEFAYiiyt+LyeG8F5lUAvXnd0BejZd32fdJfUearp06e4w4kAo1uiHGOfARLkHwacpI33yA5A== X-Received: by 2002:a05:6a20:430e:b0:16b:8498:d9bc with SMTP id h14-20020a056a20430e00b0016b8498d9bcmr12958320pzk.62.1696924386438; Tue, 10 Oct 2023 00:53:06 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.53.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:53:06 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 05/11] testing/avocado: ppc add new BookE boot_linux_console.py tests Date: Tue, 10 Oct 2023 17:52:32 +1000 Message-ID: <20231010075238.95646-6-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42d; envelope-from=npiggin@gmail.com; helo=mail-pf1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Add simple Linux kernel boot tests for BookE 64-bit and 32-bit CPUs using Guenter Roeck's rootfs images for Linux testing, and a gitlab repository with kernel images that I built since there are very few sources of modern BookE images now. Signed-off-by: Nicholas Piggin Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Joel Stanley --- tests/avocado/boot_linux_console.py | 53 +++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py index 9434304cd3..dc3346ef49 100644 --- a/tests/avocado/boot_linux_console.py +++ b/tests/avocado/boot_linux_console.py @@ -1355,6 +1355,59 @@ def test_ppc64_e500(self): tar_hash = '6951d86d644b302898da2fd701739c9406527fe1' self.do_test_advcal_2018('19', tar_hash, 'uImage') + def test_ppc64_e6500(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:ppce500 + :avocado: tags=cpu:e6500 + :avocado: tags=accel:tcg + """ + kernel_url = ('https://gitlab.com/npiggin/qemu-ci-images/-/raw/main/ppc/corenet64_vmlinux?ref_type=heads&inline=false') + kernel_hash = '01051590b083fec66cb3b9e2e553e95d4cf47691' + kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash) + + initrd_url = ('https://github.com/groeck/linux-build-test/raw/master/rootfs/ppc64/rootfs.cpio.gz') + initrd_hash = '798acffc036c3b1ae6cacf95c869bba2' + initrd_path = self.fetch_asset(initrd_url, asset_hash=initrd_hash, + algorithm="md5") + + self.vm.set_console() + kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + self.vm.add_args('-smp', '2', + '-kernel', kernel_path, + '-initrd', initrd_path, + '-append', kernel_command_line, + '-no-reboot') + self.vm.launch() + # Wait for VM to shut down gracefully + self.vm.wait() + + def test_ppc32_mpc85xx(self): + """ + :avocado: tags=arch:ppc + :avocado: tags=machine:ppce500 + :avocado: tags=cpu:mpc8568 + :avocado: tags=accel:tcg + """ + kernel_url = ('https://gitlab.com/npiggin/qemu-ci-images/-/raw/main/ppc/mpc85xx_vmlinux?ref_type=heads&inline=false') + kernel_hash = '726f7f574a491282454850b48546b3827593142b' + kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash) + + initrd_url = ('https://github.com/groeck/linux-build-test/raw/master/rootfs/ppc/rootfs.cpio.gz') + initrd_hash = '4d30fa93b742c493e8cf2140e49bbd9a' + initrd_path = self.fetch_asset(initrd_url, asset_hash=initrd_hash, + algorithm="md5") + + self.vm.set_console() + kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + self.vm.add_args('-kernel', kernel_path, + '-initrd', initrd_path, + '-append', kernel_command_line, + '-no-reboot') + self.vm.launch() + # Wait for VM to shut down gracefully + self.vm.wait() + def do_test_ppc64_powernv(self, proc): self.require_accelerator("tcg") images_url = ('https://github.com/open-power/op-build/releases/download/v2.7/') From patchwork Tue Oct 10 07:52:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845681 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=MZVTgSBn; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4Spc6pCRz1yqN for ; Tue, 10 Oct 2023 18:54:16 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7YK-000564-0v; Tue, 10 Oct 2023 03:53:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7YI-0004wc-Q3; Tue, 10 Oct 2023 03:53:14 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7YG-0005Ib-St; Tue, 10 Oct 2023 03:53:14 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-69fc829d7b1so2322084b3a.1; Tue, 10 Oct 2023 00:53:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924390; x=1697529190; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3HUbZ3BEaIDQPcjinhz07GtBsmP9XjGNwVpI8n08oeI=; b=MZVTgSBn6usBtBbmwwpRib3tVs36RxYpxp0TqjvKNtpFOFBglu652BwMkZPmG0b/ke EmJcQN2rwW2/MSc3QtQ4XDNvqM/dDYtTFNjR3yUPiIhJGnbmh2wAZL1OSLVe5cqq2Itz eKNslsRhwETKNWAehUTc2vrcSX7sp2PNiCzzrPpRfz+8vy9GvAca+aV6lUt1hpq9EKv+ FYP1XemFB6OMt5P+k9PCElLu8l10Tz+5grr3DfxoEcLrPHlVTUjB3H5VFsuciL7dwxVO zLtiGQXHI5uwum3XZUAOcBL4onm4zHbiAMszhULNfpxeqqMoHsQbLH4JN/jD0WfdjhOP p5Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924390; x=1697529190; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3HUbZ3BEaIDQPcjinhz07GtBsmP9XjGNwVpI8n08oeI=; b=vQUNM+WvwnVauqT6doSpxRVJ1uAjQl8lQVVvm9zGeue8uU3YkUT1th6qEAR8Oc/QyK 58n1Lx9GgVFErwjgowaAzYqBeKZTDC7QS2vdwpHdlJZgW6vD9max1mukT9rUo95zRqKK ZdKLXENqbOQ9RuWDUWs5Nju/fAX2Br3c8xqC915yUU3IyVkDqSZTKxxaMATaY7jMT5Sc Hg30uqOqC5pVTxX/1prYHSlD1g0ThQ9UpVcUp9DTjb+Amyb+HGHJQpJZVi5/yUD3IfYF wW00sZdNsJs0NAfVHH6jmQWgNjNc9BA/ubJ/nFhWezwpMDvvDKHgX+h9ZUsPpe6/JLWE Mg0g== X-Gm-Message-State: AOJu0YxoXU5nAPolGGU7+DTwZXiRa0wPmKqyZQbYDMsZ6RfjBNoh0t2b 6UnYWkNK9IDKkxat7s3IVxIpTQvqO4M= X-Google-Smtp-Source: AGHT+IERyVgKMM7QeIBkJ99lcWv5MIr6x+un5MXHC9f+zKGh507QnPNlb+bHCAqcC8GAfux8ltOyoQ== X-Received: by 2002:a05:6a00:1da2:b0:69f:1791:70b with SMTP id z34-20020a056a001da200b0069f1791070bmr8574619pfw.34.1696924390520; Tue, 10 Oct 2023 00:53:10 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.53.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:53:10 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org, Warner Losh Subject: [RFC PATCH 06/11] tests/avocado: Add FreeBSD distro boot tests for ppc Date: Tue, 10 Oct 2023 17:52:33 +1000 Message-ID: <20231010075238.95646-7-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=npiggin@gmail.com; helo=mail-pf1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org FreeBSD project provides qcow2 images that work well for testing QEMU. Add pseries tests for HPT and Radix, KVM and TCG. Other architectures could be added so this does not get a ppc_ prefix but is instead named similarly to boot_linux. Cc: Warner Losh Signed-off-by: Nicholas Piggin CC'ing Warner to check if it's okay for us to use these images and any comments or suggestions. avocado tests have many Linux boots so we'd do much better to expand test coverage by adding some other systems. Reviewed-by: Warner Losh --- tests/avocado/boot_freebsd.py | 109 ++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 tests/avocado/boot_freebsd.py diff --git a/tests/avocado/boot_freebsd.py b/tests/avocado/boot_freebsd.py new file mode 100644 index 0000000000..9a499a28ad --- /dev/null +++ b/tests/avocado/boot_freebsd.py @@ -0,0 +1,109 @@ +# Functional tests that boot FreeBSD in various configurations +# +# Copyright (c) 2023 IBM Corporation +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +import os + +from avocado import skipUnless +from avocado import skipIf +from avocado_qemu import QemuSystemTest +from avocado_qemu import wait_for_console_pattern +from avocado_qemu import exec_command +from avocado.utils import archive +from avocado.utils import process +from avocado.utils.path import find_command + +class BootFreeBSDPPC64(QemuSystemTest): + """ + :avocado: tags=arch:ppc64 + """ + + timeout = 360 + + def run_pseries_test(self, force_HPT=False): + # We need zstd for all the tuxrun tests + # See https://github.com/avocado-framework/avocado/issues/5609 + zstd = find_command('zstd', False) + if zstd is False: + self.cancel('Could not find "zstd", which is required to ' + 'decompress rootfs') + self.zstd = zstd + + drive_url = ('https://artifact.ci.freebsd.org/snapshot/15.0-CURRENT/a2440348eed75bb7682579af0905b652747fd016/powerpc/powerpc64le/disk.qcow2.zst') + drive_hash = '8ab11a05ccab3d44215fd4667a70454ed10a203f' + drive_path_zstd = self.fetch_asset(drive_url, asset_hash=drive_hash) + drive_path = os.path.join(self.workdir, 'disk.qcow2') + # archive.zstd_uncompress(drive_path_zstd, drive_path) + + cmd = f"{self.zstd} -d {drive_path_zstd} -o {drive_path}" + process.run(cmd) + + drive = f"file={drive_path},format=qcow2,if=virtio" + + self.vm.set_console() + if force_HPT: + self.vm.add_args('-m', '4g') + else: + self.vm.add_args('-m', '1g') + self.vm.add_args('-smp', '4') + self.vm.add_args('-drive', drive) + self.vm.add_args('-net', 'nic,model=virtio') + self.vm.launch() + + wait_for_console_pattern(self, 'Hit [Enter] to boot immediately, or any other key for command prompt.') + if force_HPT: + exec_command(self, 'x') + wait_for_console_pattern(self, 'OK') + exec_command(self, 'set radix_mmu=0') + exec_command(self, 'boot') + wait_for_console_pattern(self, 'cas: selected hash MMU', 'panic:') + else: + exec_command(self, '') + wait_for_console_pattern(self, 'cas: selected radix MMU') + + wait_for_console_pattern(self, 'FreeBSD 15.0-CURRENT #0 a244034: Mon Sep 25 02:05:22 UTC 2023', 'panic:') + wait_for_console_pattern(self, 'FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs') + wait_for_console_pattern(self, 'FreeBSD/powerpc (Amnesiac) (ttyu0)', 'panic:') + + @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab') + def test_pseries_tcg(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:pseries + :avocado: tags=accel:tcg + """ + self.require_accelerator("tcg") + self.run_pseries_test() + + @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab') + def test_pseries_hpt_tcg(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:pseries + :avocado: tags=accel:tcg + """ + self.require_accelerator("tcg") + self.run_pseries_test(force_HPT=True) + + @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab') + def test_pseries_kvm(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:pseries + :avocado: tags=accel:kvm + """ + self.require_accelerator("kvm") + self.run_pseries_test() + + @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab') + def test_pseries_hpt_kvm(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:pseries + :avocado: tags=accel:kvm + """ + self.require_accelerator("kvm") + self.run_pseries_test(force_HPT=True) From patchwork Tue Oct 10 07:52:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845685 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=fF/Qz9wY; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4SqL6w2Kz1yqN for ; Tue, 10 Oct 2023 18:54:54 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7YN-0005Dw-2z; Tue, 10 Oct 2023 03:53:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7YL-0005DL-Ls; Tue, 10 Oct 2023 03:53:18 -0400 Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7YK-0005J7-1O; Tue, 10 Oct 2023 03:53:17 -0400 Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-694f3444f94so4372155b3a.2; Tue, 10 Oct 2023 00:53:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924394; x=1697529194; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tzOvLxS1cPxCxPNwvebvFR0vfUNiwD3ZL/gAnQtCs40=; b=fF/Qz9wY9NzOtO4Sbz/1JY5ZTtjKLQDz+UbK0RAwCFAY/ocrsZcYJCiOmGpoNgIRH3 VDKin8DmqKtxn1t0SMakalb1mzPJUI4gXVfGcjJGPG75l7XM/YIm8GXAnhGt0TYbVEdc 4mL2p8bp7pICQWilYiymBx2DNaEw0GW+RJCOrTFZNgCH65Em8N0frpx4tuuraFdXy5nP 5n1NUwXs6AEQ7w4ntYGHyv8CrlG+N8hssmNVyt3B17Wlr57fvbPFMM0J/RCCeX/rW2j0 vy1Oym4c8larZikV5etP1DNZ2hMQHRMB9MOIbxWaPYSzAJr865DCq8sToNpY1nz+Ow/o 0+Vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924394; x=1697529194; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tzOvLxS1cPxCxPNwvebvFR0vfUNiwD3ZL/gAnQtCs40=; b=Ttuk2dFvZqYb8jGCaIoZPGIVwCyZlQlY3t7aR+Bk/lthE9lk/NYhbd+HH1kGot6Vxt 86njsRdFsc4/s6mBy3VjWlHKtq223u3B+QFKHNy5XVmL6PNniF5uVd0IctHqJ+zaCa9P HkYGeMI0HPTDk1Nbu4rB18eda8uCI8YulCboPdJQrtKBh4OLWjNVrvgviNaIvmxS8Kyp vuPPeoafI8AO5sCa/7cU0xHK7H9UU+SR4VB7N62LUt1eOOOsEbHTpf7qO0oPPYxRvBTb lPzUDNUJMIztfL4DwnKMC7Iy6naJanalcuP3ifiZD2xpj0Irfq4fNNP7s4oyETtsmAr9 Q0aw== X-Gm-Message-State: AOJu0Yzh1vFKhuEYH+HTXtS2oq97nrjVGR9abWIyOmWYi9ETOldmzEjm CoXiuKxXNrqoDcIwWQuFiGInRCk+pGE= X-Google-Smtp-Source: AGHT+IFmF1pxen0+7sYvREMdchqD21gPoFLDst0CGYa9ywv9ISYWe5gJmcVy4hruzf+jkm20A7Tebw== X-Received: by 2002:a05:6a20:914b:b0:158:7fdf:66df with SMTP id x11-20020a056a20914b00b001587fdf66dfmr21927995pzc.18.1696924394072; Tue, 10 Oct 2023 00:53:14 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.53.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:53:13 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 07/11] tests/avocado: Add ppc boot tests for non-free AIX images Date: Tue, 10 Oct 2023 17:52:34 +1000 Message-ID: <20231010075238.95646-8-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=npiggin@gmail.com; helo=mail-pf1-x436.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org An AIX image can be provided by setting AIX_IMAGE environment variable when running avocado. It's questionable whether we should carry these in upstream QEMU. It's convenient to see how to run these things, but simple enough to maintain in out of tree branch. I just wanted to see opinions about it. --- tests/avocado/ppc_aix.py | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tests/avocado/ppc_aix.py diff --git a/tests/avocado/ppc_aix.py b/tests/avocado/ppc_aix.py new file mode 100644 index 0000000000..b8d5d4cc38 --- /dev/null +++ b/tests/avocado/ppc_aix.py @@ -0,0 +1,63 @@ +# Functional test that boots AIX on ppc pseries TCG and KVM +# +# Copyright (c) 2023 IBM Corporation +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +import os +from avocado.utils import archive +from avocado_qemu import QemuSystemTest +from avocado_qemu import wait_for_console_pattern + +class pseriesMachine(QemuSystemTest): + + timeout = 600 + + def do_test_ppc64_aix_boot(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:pseries + """ + + image = os.getenv('AIX_IMAGE') + if not image: + self.cancel('No AIX_IMAGE environment variable defined') + + _hash = os.getenv('AIX_HASH') + if _hash: + aix_disk = self.fetch_asset(image, asset_hash=_hash) + else: + aix_disk = self.fetch_asset(image) + + self.vm.set_console() + self.vm.add_args('-machine', 'ic-mode=xics', + '-smp', '16,threads=8,cores=2', + '-m', '4g', +# '-device', 'spapr-vlan,netdev=net0,mac=52:54:00:49:53:14', +# '-netdev', 'tap,id=net0,helper=/usr/libexec/qemu-bridge-helper,br=virbr0', + '-device', 'qemu-xhci', + '-device', 'virtio-scsi,id=scsi0', + '-drive', f'file={aix_disk},if=none,id=drive-scsi0-0-0-0,format=qcow2,cache=none', + '-device', 'scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=1', + '-nodefaults') + self.vm.launch() + wait_for_console_pattern(self, 'AIX Version 7') + + def test_ppc64_aix_boot_tcg(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:pseries + :avocado: tags=accel:tcg + """ + self.require_accelerator("tcg") + self.do_test_ppc64_aix_boot() + + def test_ppc64_aix_boot_kvm(self): + """ + :avocado: tags=arch:ppc64 + :avocado: tags=machine:pseries + :avocado: tags=accel:kvm + """ + self.require_accelerator("kvm") + self.do_test_ppc64_aix_boot() From patchwork Tue Oct 10 07:52:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845691 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=gXSfAUV1; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4Sqt5Fv3z1ypX for ; Tue, 10 Oct 2023 18:55:22 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7YW-0005nf-PG; Tue, 10 Oct 2023 03:53:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7YV-0005hg-FU; Tue, 10 Oct 2023 03:53:27 -0400 Received: from mail-ot1-x32f.google.com ([2607:f8b0:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7YP-0005Jm-MX; Tue, 10 Oct 2023 03:53:27 -0400 Received: by mail-ot1-x32f.google.com with SMTP id 46e09a7af769-6c615df24c0so3647999a34.1; Tue, 10 Oct 2023 00:53:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924400; x=1697529200; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RLNYJ8t4jqLnyryhAA2gveg7y+jnACsL6CwNdvnZIrM=; b=gXSfAUV13+n329L8YzEP208ECjCiOAemcVG9SHjhCuvC6aceamkyXvlu4aC9I4vmdX NASSyL4B6NugAsr2il9ul6tkdn4/M7bjSt07rhSxmlsjH1KRQLJ8UlibCzkDsuDg6MIG XIeTKLL4u1ncJIIt0djNsY4OhhlHx/I78R4hEarLLv/evbWECAjQjoqmjGGZoQCu8hsn PbdfPbLecPCaKYcb3bsgtBFfkVAvQPvMpaGNKugIU1Q/oaz/6PxlUQjGVURKLGDDu/Aw 1AQZSbo/xIH6GXQLyZMbmzAIpkCtSTOuRzrBe5786oTzjeDWE0w7rjMaOmWkGRj4bz0F ZPjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924400; x=1697529200; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RLNYJ8t4jqLnyryhAA2gveg7y+jnACsL6CwNdvnZIrM=; b=SJ3QWqBqKZbPuBkaSrGYnR1m3k6ZznnsBB8ZC1PnPGn0DDoXiDPVywKluq04qes6Tr bKcxyLyDHuGfG3zZfTF4wr/+vk5Bzv3gMKSltcq1qYsOLQ7OopqQQtPzbrk6Wa00OYg0 GOLcXKHKwYpVUQffBOhs/eBoK12fQHFxUKLGs3qJ3RA0OuITIVs8EFrxnjUqNh6AMVYZ JfGEK8AiuczQX7UlVNJcSaxcLzMYnPBgFrMicTuKVrI/FlDrFBhvZnTl8GdUb7UsmQZJ lN34og6WFyyoza312s7hnAxjt+duZT+VeR0KJBIw4ZSXWPezACLLchZ+9/Fo0S6J19Oj di6g== X-Gm-Message-State: AOJu0YxR76kPI5zipUDpYqksyArWQv44plECe5cwJNFxm1oJ391gd7Bk pcPRrRHB1xxZmiqaC4d1QnHwN6QK338= X-Google-Smtp-Source: AGHT+IFwCh5mIGoNAK1aKuCO2X3Z1H/XvGbQu+ELyg2TMew9bitKmKaq0fLn8RQuTttSeDp/DM+nEw== X-Received: by 2002:a05:6870:e307:b0:1bb:a227:7008 with SMTP id z7-20020a056870e30700b001bba2277008mr19284238oad.3.1696924399169; Tue, 10 Oct 2023 00:53:19 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.53.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:53:18 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 08/11] tests/avocado: Add ppc MacOS tests Date: Tue, 10 Oct 2023 17:52:35 +1000 Message-ID: <20231010075238.95646-9-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::32f; envelope-from=npiggin@gmail.com; helo=mail-ot1-x32f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Similarly to the AIX test, this adds some tests that can boot MacOS9 and OSX images that are provided. --- tests/avocado/ppc/macos9.ppm | Bin 0 -> 921615 bytes tests/avocado/ppc_macos.py | 90 +++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 tests/avocado/ppc/macos9.ppm create mode 100644 tests/avocado/ppc_macos.py diff --git a/tests/avocado/ppc/macos9.ppm b/tests/avocado/ppc/macos9.ppm new file mode 100644 index 0000000000000000000000000000000000000000..662d1a5a0fec47a589dbc03ed3b10b3d653c07f1 GIT binary patch literal 921615 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

gKoqB-=F|TZhcFEznlsH!lX>#~a#|~3Q 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 literal 0 HcmV?d00001 diff --git a/tests/avocado/ppc_macos.py b/tests/avocado/ppc_macos.py new file mode 100644 index 0000000000..055fc3aca4 --- /dev/null +++ b/tests/avocado/ppc_macos.py @@ -0,0 +1,90 @@ +# Functional test that boots MacOS on ppc mac99 +# +# Copyright (c) 2023 IBM Corporation +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +import time +import tempfile +import filecmp +import os + +from typing import List +from avocado.utils import archive +from avocado_qemu import QemuSystemTest +from avocado_qemu import wait_for_console_pattern + +class PPCMacOSTest(QemuSystemTest): + + timeout = 240 + + def test_macos9(self): + """ + :avocado: tags=arch:ppc + :avocado: tags=machine:mac99 + :avocado: tags=device:framebuffer + """ + + basedir = os.getenv('AVOCADO_TEST_BASEDIR') + screenshot_path = os.path.join(basedir, 'ppc/macos9.ppm') + + image = os.getenv('MACOS9_IMAGE') + if not image: + self.cancel('No MACOS9_IMAGE environment variable defined') + drive_path = self.fetch_asset(image) + + self.vm.set_console() + self.vm.add_args('-M', 'via=pmu') + self.vm.add_args('-m', '1g') + self.vm.add_args('-cpu', 'G4') + self.vm.add_args('-drive', 'file=' + drive_path) +# self.vm.add_args('-net', 'nic,model=rtl8139') +# self.vm.add_args('-net', 'user,hostfwd=:127.0.0.1:2223-:22,hostname=qemu') + self.vm.add_args('-vga', 'std') + self.vm.add_args('-g', '640x480') + self.vm.launch() + + # This comes up after 60 seconds on a fast x86 CPU. Give it + # 180s to be sure. + time.sleep(180) + with tempfile.NamedTemporaryFile(suffix='.ppm', + prefix='screendump-', delete=False) as ppmfile: + self.vm.command('screendump', filename=ppmfile.name) + if not filecmp.cmp(ppmfile.name, screenshot_path): + self.fail('Screenshot does not match') + + def test_macos10(self): + """ + :avocado: tags=arch:ppc + :avocado: tags=machine:mac99 + :avocado: tags=device:framebuffer + """ + + basedir = os.getenv('AVOCADO_TEST_BASEDIR') + screenshot_path = os.path.join(basedir, 'ppc/macos10.ppm') + + image = os.getenv('MACOS10_IMAGE') + if not image: + self.cancel('No MACOS10_IMAGE environment variable defined') + drive_path = self.fetch_asset(image) + + self.vm.set_console() + self.vm.add_args('-M', 'via=pmu') + self.vm.add_args('-m', '1g') + self.vm.add_args('-cpu', 'G4') + self.vm.add_args('-drive', 'file=' + drive_path) +# self.vm.add_args('-net', 'nic,model=rtl8139') +# self.vm.add_args('-net', 'user,hostfwd=:127.0.0.1:2223-:22,hostname=qemu') + self.vm.add_args('-vga', 'std') + self.vm.add_args('-g', '640x480') + self.vm.launch() + + # This comes up after 60 seconds on a fast x86 CPU. Give it + # 180s to be sure. + time.sleep(180) + with tempfile.NamedTemporaryFile(suffix='.ppm', + prefix='screendump-', delete=False) as ppmfile: + self.vm.command('screendump', filename=ppmfile.name) + if not filecmp.cmp(ppmfile.name, screenshot_path): + self.fail('Screenshot does not match') From patchwork Tue Oct 10 07:52:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845692 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=aWbDbZl1; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4Srg283rz1ypX for ; Tue, 10 Oct 2023 18:56:02 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7YW-0005m0-9b; Tue, 10 Oct 2023 03:53:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7YU-0005b1-E4; Tue, 10 Oct 2023 03:53:26 -0400 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7YS-0005K9-R2; Tue, 10 Oct 2023 03:53:26 -0400 Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-692eed30152so3945899b3a.1; Tue, 10 Oct 2023 00:53:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924403; x=1697529203; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xqotvT7s2KNx9nGdrthTh0VLKSX7c1BTmCAddFJyYLE=; b=aWbDbZl1M1f+tSLlQrvahn+4YnA2lqy09so2KJLCsKwZcEwj8dAvLOJboMXZxzBE6g usEOTOSY3mFkZb1z+/agJdykyW40KIg2vBYyDZywY8G6nRBs68sirtAF+P+ejO5kGvWp exoKSshWuiM/D/cIIwqbbLabOf8Xov5RGmfGS/X0jTL6vCEoTA6Py/i5LJWhUGOd+jAv 88qtO4ZsctUtKXu5hPzaGNeSnyb5D/hy6l04t3dUxqQb/ZUyS3d+3NkcVBjW1H2xa1Ub /Ul+CZ0wujA9cR3pWdaSozCxEnbb9Lmf+wdzQ81TtmZQpXSg5hMjNhEO0bpELbdBH3VO dEjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924403; x=1697529203; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xqotvT7s2KNx9nGdrthTh0VLKSX7c1BTmCAddFJyYLE=; b=vrAkmNw6xU14LiE4TlS751nxRj7gPywFqDkfTHld4XydtMPvnyX0P7yxZYvte3By+C czlFr1LWbXjFs744czGbakp4412EjtHQoS1tgduXlurrS6XjjuXUCZTNnSQDUNlL5vOa FT4auKipIlgW40kQGCIv1ILKDRZaFQOLOALlN4P08xlQ79FfxBRKdVCBmCzTdji1k2Dp 8nUSSqs0/a07cup5soGMCjtfeSNrPebKstyfTbme+0zNhyoQvztaGj3dDTz0i2LMt35r TEjURoC+LhaxwQU96cqYVaoS3zpFvudnFkzt5jkwQG8zQ5AQM2IQ3KTkfpZ8ilSStdhX AJPQ== X-Gm-Message-State: AOJu0Yysa6hvuqwFcYxMe2VSvmrosqL151lIjqvaJa48IwFN/aub0W6Z YcRqcMTB3tONgC18N9k0TVMR5jhDSB0= X-Google-Smtp-Source: AGHT+IGkoWM3U++R5fSZteHO6AILGH2qp3Nu9yK9zNVp4qR+AdDSEx3T/OrvbTeUm1SNo3vp7Yi7jw== X-Received: by 2002:a05:6a20:7487:b0:15d:3a10:18c6 with SMTP id p7-20020a056a20748700b0015d3a1018c6mr17087391pzd.45.1696924402845; Tue, 10 Oct 2023 00:53:22 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.53.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:53:22 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 09/11] tests/avocado: Use default CPU for pseries machine Date: Tue, 10 Oct 2023 17:52:36 +1000 Message-ID: <20231010075238.95646-10-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42a; envelope-from=npiggin@gmail.com; helo=mail-pf1-x42a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Use the default CPU with the pseries machine unless there is a specific requirement. Signed-off-by: Nicholas Piggin --- tests/avocado/migration.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/avocado/migration.py b/tests/avocado/migration.py index fdc1d234fb..91ac33919b 100644 --- a/tests/avocado/migration.py +++ b/tests/avocado/migration.py @@ -123,7 +123,6 @@ class PPC64(MigrationTest): """ :avocado: tags=arch:ppc64 :avocado: tags=machine:pseries - :avocado: tags=cpu:power9_v2.0 """ def test_migration_with_tcp_localhost(self): From patchwork Tue Oct 10 07:52:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845688 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=KE4cataA; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4SqZ0cs1z23jb for ; Tue, 10 Oct 2023 18:55:06 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7YZ-0005w8-C5; Tue, 10 Oct 2023 03:53:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7YX-0005pq-Tm; Tue, 10 Oct 2023 03:53:29 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7YW-0005LP-CP; Tue, 10 Oct 2023 03:53:29 -0400 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-6969b391791so3638103b3a.3; Tue, 10 Oct 2023 00:53:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924406; x=1697529206; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fLLT5ObzM5KwZn8Whir/m9IL59w1BchNaowOLYzDN5M=; b=KE4cataAgP/WGjg9n0IsyxguZ/S56BKt+4CGkKT8X7D4FfLCJqETnzV0HBCs7k42pR B8I0aVNhaXfXSogIh2+qYUF8VkI7vKIF1ocWSae4OM+uZibqmVn6dnxJ5+hlBYtO6p/i mIo2SAFRdEKBuSQI8Y5StA4uHtRMrzv7iV2ymRJDH/r9Bx8NGdQATQAs+HYah3qMK4e3 fYSszkPQrtcuuZ9eY1mHTCKFtSXKg+W9EFEo9h6YNLjhUusHL+LC0M5/kkUVEBKNgS3d ZfT/d/YhrHBCkiOVotvM9fzxhuDzsIvZ2HtloR0NpTKhVN4U844hM0uNealdx88XZA2C BMDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924406; x=1697529206; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fLLT5ObzM5KwZn8Whir/m9IL59w1BchNaowOLYzDN5M=; b=W1FtAD1HChtFNIsPMmF8ScPhlTDS5FVJy2DcGhtJ+6ftHIEKH8QQVZ5DGkDI1dzleF IvUQd9/7Us/2uPeANSUjkhTIMYK+B4V2b47Pjtua2RK8Be7R+0cAO2xuFWSoVfc4HxNZ G5VHlYUVPjLTQw3u/v751n8ousP5TXdX40QszD/oIWqgZCONzO0K/1D79dDpQcJ+h9LL ZbiCB89VtbXTjrgcJ9v3TUWql/W5ffUve/gbgmHQNNDh9047gMFOBnpe/dpo0SCnH+6H dj64kReyv+yPHAOfotMMNtZuYR38F9tIt8S/Yc69RneL8T/5urj5orapL4+DfureYpKd eudw== X-Gm-Message-State: AOJu0YzcorJDj8gj34eSSKG/85uDainbtCoRCTEklHcgbrQVtGTbzRSK WK6WoJgvvAKRYZkv6S9jrcy9z5Mf9mc= X-Google-Smtp-Source: AGHT+IFoCVXayD5MC7U6976MFuH6jyYim/JWHmql35AW2Osix0YGGEuaNR6FvAQBVhlaSQzM0bdVAA== X-Received: by 2002:a05:6a21:191:b0:160:18d6:a3d7 with SMTP id le17-20020a056a21019100b0016018d6a3d7mr20195671pzb.1.1696924406592; Tue, 10 Oct 2023 00:53:26 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.53.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:53:26 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 10/11] ppc/spapr: change pseries machine default to POWER10 CPU Date: Tue, 10 Oct 2023 17:52:37 +1000 Message-ID: <20231010075238.95646-11-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42d; envelope-from=npiggin@gmail.com; helo=mail-pf1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org POWER10 is the latest pseries CPU. Signed-off-by: Nicholas Piggin Reviewed-by: Joel Stanley Reviewed-by: Cédric Le Goater --- hw/ppc/spapr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index d4230d3647..9d3475d64b 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4661,7 +4661,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) smc->dr_lmb_enabled = true; smc->update_dt_enabled = true; - mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power9_v2.2"); + mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power10_v2.0"); mc->has_hotpluggable_cpus = true; mc->nvdimm_supported = true; smc->resize_hpt_default = SPAPR_RESIZE_HPT_ENABLED; From patchwork Tue Oct 10 07:52:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 1845686 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=LxjDVPza; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=patchwork.ozlabs.org) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4S4SqT2Zjcz1yqN for ; Tue, 10 Oct 2023 18:55:01 +1100 (AEDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7Yg-00065Q-Gn; Tue, 10 Oct 2023 03:53:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7Yc-0005zO-L4; Tue, 10 Oct 2023 03:53:34 -0400 Received: from mail-pg1-x52b.google.com ([2607:f8b0:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7Yb-0005NK-1o; Tue, 10 Oct 2023 03:53:34 -0400 Received: by mail-pg1-x52b.google.com with SMTP id 41be03b00d2f7-584bfb14c59so3334123a12.0; Tue, 10 Oct 2023 00:53:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924410; x=1697529210; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7LcO0gLbMNqViKZELBCVLMmMGMEI+C0ZUAgyxlQweSY=; b=LxjDVPza5ogPhMGN7Fha+wyJMECJ/R8bDcw8cGhbf4aS7397sU5h8orIcMB2YYPUae 4WoEpsN4QKe+9WRuKPDj1EqYvSLWTXap60JuDSmt0oInGflHa75qMttPK8eFerLABkSr cItQFdbGLgUd9YclJFwsWgZwkWH4ILflJBW9PpSblBWlIdgcMNwb/f5hfEXfYxeXvhDS hGhkPTJERJg6Kd9cr+gg1L/tWZpeRbUFixLRtBay2XCagSL/FWExWes0DaqeGuggWdxO MWfZEAq+321puHNcJaz4E22RtCN9NDiaAFQw84kWDvn/A+r0czMWz8tzal4ayaNCl+La MOxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924410; x=1697529210; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7LcO0gLbMNqViKZELBCVLMmMGMEI+C0ZUAgyxlQweSY=; b=cVM6cJohab2UyRh6YBwKy6HQ8NxFXexXdBYvWN3He3wjd9iDGscAfZ8cr3CXa280tx k0KqoB2hu9QH/t/isCMl8hf9N8kBPkGKyINNvygOcp4HDPg6UG/tfeME4ISW7vCz+bQp EHe1m6QSLE3FMMvEuiV98NBbdLEMF7SHdYIV/CfAxXyl77yDXrFXhYRbN72lb6FwvvHd r/1R96hN5zqtjOcd0Z3tD6c8QEIF/am3YPjy5BywwpvntrogEQx0a1GYVz7G6Y8Ua88G 9iDh9dCeYL6n3fLXxYCZXDnqRHGKnMsNINjCdtlWfQlRiZM6j5l0s6+Ae70dEkLmb+G3 iQRQ== X-Gm-Message-State: AOJu0Yx0s4Zq6ESRzstdnXOAo4WGzKyjDlWbKS7Bs+VyvqFRCYfwMsSQ J3bxI67XJxrE0Pp1V8YXXLAxcN8ptRQ= X-Google-Smtp-Source: AGHT+IEnh+eKabeyX0ROkvd77jFpkX783986fkfcz7v9ig/Q7F5SSHoxeaucX2bzqgeZQ5CNMrrw9A== X-Received: by 2002:a05:6a20:144d:b0:153:39d9:56fe with SMTP id a13-20020a056a20144d00b0015339d956femr15444626pzi.47.1696924410343; Tue, 10 Oct 2023 00:53:30 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.53.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:53:30 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 11/11] ppc/pnv: Change powernv default to powernv10 Date: Tue, 10 Oct 2023 17:52:38 +1000 Message-ID: <20231010075238.95646-12-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::52b; envelope-from=npiggin@gmail.com; helo=mail-pg1-x52b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-ppc@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org POWER10 is the latest IBM Power machine. Although it is not offered in "OPAL mode" (i.e., powernv configuration), so there is a case that it should remain at powernv9, most of the development work is going into powernv10 at the moment. Signed-off-by: Nicholas Piggin Reviewed-by: Joel Stanley Reviewed-by: Cédric Le Goater --- hw/ppc/pnv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index eb54f93986..f3dad5ae05 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -2195,8 +2195,6 @@ static void pnv_machine_power9_class_init(ObjectClass *oc, void *data) xfc->match_nvt = pnv_match_nvt; - mc->alias = "powernv"; - pmc->compat = compat; pmc->compat_size = sizeof(compat); pmc->dt_power_mgt = pnv_dt_power_mgt; @@ -2220,6 +2218,8 @@ static void pnv_machine_power10_class_init(ObjectClass *oc, void *data) mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power10_v2.0"); compat_props_add(mc->compat_props, phb_compat, G_N_ELEMENTS(phb_compat)); + mc->alias = "powernv"; + pmc->compat = compat; pmc->compat_size = sizeof(compat); pmc->dt_power_mgt = pnv_dt_power_mgt;