From nobody Wed May 8 17:24:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1541777023711207.40674835867867; Fri, 9 Nov 2018 07:23:43 -0800 (PST) Received: from localhost ([::1]:34718 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8dK-0003Nm-Cg for importer@patchew.org; Fri, 09 Nov 2018 10:23:42 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42449) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8bC-0001CK-3u for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gL8b8-0002y2-PD for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:29 -0500 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:32810) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gL8b6-0002Zo-V4 for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:25 -0500 Received: by mail-wr1-x441.google.com with SMTP id u9-v6so2313312wrr.0 for ; Fri, 09 Nov 2018 07:21:22 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id n131-v6sm2941449wmd.7.2018.11.09.07.21.19 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 09 Nov 2018 07:21:19 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 2C27C3E045E; Fri, 9 Nov 2018 15:21:19 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=G7ixcBUZkpRFWN8NapKcCGRdRfATrFNt/wg7PFUgvMM=; b=iMQN8RsZQqkRb2yrEcDy8aT4Nm5AhXKx8Y8X8fQKDiJlRuQow/gZt8oiqUZWP4pUms rr33kuvdg/a/UG8kjmDZNiIfmPxvLugA2vRyGVJnAj1QVQbKRVjwEXuXQPT6tbwCDLd3 0vEvjzA7f1R6dfbj5476re9avkpzeKOsOlQxM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=G7ixcBUZkpRFWN8NapKcCGRdRfATrFNt/wg7PFUgvMM=; b=oaqgMs6m30Ch7M3H651S7krshw7m8IgmVEvZIKmJt8P0kjphO1+fShYxoCIrfMKDBk xZVrVeGH7yRIny6LSOb6w6i3DIThd26GkEy07cJ/+mOxhGc4nlboIVkOKVmfGFmBQBu9 qIMuinbObEC5M/Z6VtKMcP9ED2nIQeqUMetB0w1pLt7tsCCrj3AJxTGJwB/w3Qm1gNdQ 3UFjRw7PbxS2pyzqdZ67g7p7A/EIrvZsKP1r94anL+uiUNGkF+tBh/hLCgKJhj8Ohdqq zDG7Z6ViYFs+9BUYkBOgGlzq2f5lDC58padvj+sSROnPnEiBa7SE3fugvyC3GdQWY9Rt nWCw== X-Gm-Message-State: AGRZ1gIUVO4YewVoTEnIHpBPyqYKOqym+WGoY1+qszLveu0ra9ZdZjqT Sywgr2Nv+JNVSstVrlncPLbp8Q== X-Google-Smtp-Source: AJdET5e61tnArnmvBIKmtzU1hTKyVcsHcLfE14ztQ7tIR/ArnY/987i8sJRmHrp+70QnKg+s189ySw== X-Received: by 2002:adf:e983:: with SMTP id h3-v6mr8244654wrm.58.1541776880758; Fri, 09 Nov 2018 07:21:20 -0800 (PST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Date: Fri, 9 Nov 2018 15:21:13 +0000 Message-Id: <20181109152119.9242-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181109152119.9242-1-alex.bennee@linaro.org> References: <20181109152119.9242-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 Subject: [Qemu-devel] [PATCH v3 1/7] target/arm64: properly handle DBGVR RESS bits X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) This only fails with some (broken) versions of gdb but we should treat the top bits of DBGBVR as RESS. Properly sign extend QEMU's reference copy of dbgbvr and also update the register descriptions in the comment. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- v2 - sanitise register on insertion - update reference description v3 - fix bogus sextract64 --- target/arm/kvm64.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c index 5de8ff0ac5..6351a54b28 100644 --- a/target/arm/kvm64.c +++ b/target/arm/kvm64.c @@ -103,7 +103,7 @@ static void kvm_arm_init_debug(CPUState *cs) * capable of fancier matching but that will require exposing that * fanciness to GDB's interface * - * D7.3.2 DBGBCR_EL1, Debug Breakpoint Control Registers + * DBGBCR_EL1, Debug Breakpoint Control Registers * * 31 24 23 20 19 16 15 14 13 12 9 8 5 4 3 2 1 0 * +------+------+-------+-----+----+------+-----+------+-----+---+ @@ -115,12 +115,25 @@ static void kvm_arm_init_debug(CPUState *cs) * SSC/HMC/PMC: Security, Higher and Priv access control (Table D-12) * BAS: Byte Address Select (RES1 for AArch64) * E: Enable bit + * + * DBGBVR_EL1, Debug Breakpoint Value Registers + * + * 63 53 52 49 48 2 1 0 + * +------+-----------+----------+-----+ + * | RESS | VA[52:49] | VA[48:2] | 0 0 | + * +------+-----------+----------+-----+ + * + * Depending on the addressing mode bits the top bits of the register + * are a sign extension of the highest applicable VA bit. Some + * versions of GDB don't do it correctly so we ensure they are correct + * here so future PC comparisons will work properly. */ + static int insert_hw_breakpoint(target_ulong addr) { HWBreakpoint brk =3D { .bcr =3D 0x1, /* BCR E=3D1, enable */ - .bvr =3D addr + .bvr =3D sextract64(addr, 0, 53) }; =20 if (cur_hw_bps >=3D max_hw_bps) { --=20 2.17.1 From nobody Wed May 8 17:24:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1541777028646562.6642984422043; Fri, 9 Nov 2018 07:23:48 -0800 (PST) Received: from localhost ([::1]:34716 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8dJ-0003LT-Rz for importer@patchew.org; Fri, 09 Nov 2018 10:23:41 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42444) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8bC-0001CF-29 for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gL8b8-0002yI-Pw for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:29 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:42773) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gL8b6-0002jU-V9 for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:25 -0500 Received: by mail-wr1-x444.google.com with SMTP id y15-v6so2283225wru.9 for ; Fri, 09 Nov 2018 07:21:23 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id v129-v6sm1458686wme.45.2018.11.09.07.21.20 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 09 Nov 2018 07:21:21 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 3EC5F3E0467; Fri, 9 Nov 2018 15:21:19 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TOuMJWy6Z+buH6QIOlPoGBEco/kLCfuouHDYpwE2lqQ=; b=bpA+AkPYV6x0Qbu0zjmfFozZNuQiCWo+maGP/NIUDdv7F4UUsjsr8CfUFZs9cbHLuj MovSgfP/M6wBImacUYIY+OL31BQEjZIz8nbxKoxaf/2Q1AVgE0Ri97GJVX9xJFuWZPtA jxQRWMzfyJCUmWUcmLINLFJUl+oVpegHZ/VvQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TOuMJWy6Z+buH6QIOlPoGBEco/kLCfuouHDYpwE2lqQ=; b=btJSgANVLgHS3uzYPauoVSYUYesW4dWXAd5Km28wQf5YXgvEv7L/oZJmQz9bDC/KFB JT6AFq8xt2Bc2eivNi4oe2qPhOjaBqZJXspLEwD6Y6XqxaF0Opu7nseRa+K5QEp7dZfl yzMplXlwZodCACtCpvRaEPRhEEBufp1A6INTxXYdlE6c0Jkxw1TDo2ZQO0zNTpIMqPZL LkbTQoDXRQoYizx8jltBHQ+9hE60yZJoDOZlKeAzJ6dO2LoM/qnzWOiMqj4kOebEg9LB i6sC8iR3t4jY4NF2GMGPYIUkDAnJ4obiAte6dvxUbPVJrm5Omu91lavf/Rw3D88Z9Abo iPCQ== X-Gm-Message-State: AGRZ1gLIzLJtzbCBN2N+j+sMwFb+oWBz2oK98KzYhOy1qCGKiBR1T5eN IWbg6s701qTYeo0/lUK2UAUUtg== X-Google-Smtp-Source: AJdET5fptagpxRlyNJKqZ6FyddHU58oRIItago1FH7Unb0TmmVEiKgcNwIJFndiA+FYLDnFFzurYEA== X-Received: by 2002:adf:f20a:: with SMTP id p10-v6mr8429403wro.293.1541776882133; Fri, 09 Nov 2018 07:21:22 -0800 (PST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Date: Fri, 9 Nov 2018 15:21:14 +0000 Message-Id: <20181109152119.9242-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181109152119.9242-1-alex.bennee@linaro.org> References: <20181109152119.9242-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 Subject: [Qemu-devel] [PATCH v3 2/7] target/arm64: hold BQL when calling do_interrupt() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Fix the assertion failure when running interrupts. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Peter Maydell Reviewed-by: Richard Henderson --- target/arm/kvm64.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c index 6351a54b28..c39150e5e1 100644 --- a/target/arm/kvm64.c +++ b/target/arm/kvm64.c @@ -1000,7 +1000,9 @@ bool kvm_arm_handle_debug(CPUState *cs, struct kvm_de= bug_exit_arch *debug_exit) cs->exception_index =3D EXCP_BKPT; env->exception.syndrome =3D debug_exit->hsr; env->exception.vaddress =3D debug_exit->far; + qemu_mutex_lock_iothread(); cc->do_interrupt(cs); + qemu_mutex_unlock_iothread(); =20 return false; } --=20 2.17.1 From nobody Wed May 8 17:24:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1541777203468523.0246600141305; Fri, 9 Nov 2018 07:26:43 -0800 (PST) Received: from localhost ([::1]:34738 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8gE-00070V-FI for importer@patchew.org; Fri, 09 Nov 2018 10:26:42 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42451) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8bC-0001CL-3y for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gL8b8-0002y3-Qb for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:29 -0500 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:34694) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gL8b6-0002mU-VF for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:25 -0500 Received: by mail-wr1-x444.google.com with SMTP id j26-v6so2303128wre.1 for ; Fri, 09 Nov 2018 07:21:23 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id q17-v6sm5985745wrw.17.2018.11.09.07.21.20 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 09 Nov 2018 07:21:21 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 512E83E04A5; Fri, 9 Nov 2018 15:21:19 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pqkYK55xpellAhp9NIWacaAgqJ2jD6Y2qljTLUr2LBA=; b=jf4bCFLgX0AD3lZYntqdN2qNEYv7VFyqHuj3YrvkC2KED57aUFNMAsw6C3lZPBEUvf apy/1y3AMJfqv/0leUDiezd4VA9lj2LJIeoO5Up76YYimNp+owOVREGC0p9XeZAxCP6o Thkl98iF/J0SiIR5uT4NQJ3umEYcI1gALjOAI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pqkYK55xpellAhp9NIWacaAgqJ2jD6Y2qljTLUr2LBA=; b=M98Oam7/8s5FYQiXI6N2I+hF1UNYuQ4yXPWrcVVB/sCymh5hdiT9GTWYwv+1jwWTge SFOnTsTYP85LZzZULc84MgdNkfahiI0SjuuEZKneotmhxJRrfYZhjGAnN2hCuf6oVUKE qDfbJ4fHTrzGxOCvym98B3QxeLEUo03LmO6YNNr1aZtp+jFHdkzYKl9iBTvwQapzNKid YKHz8OZuS40gQzBlROJK9ayBkep5lGFsvU5gIyo4dOqVDlBIcRz+pVPo8+a15rJgrNec 6VTmPdguSDw7Qq3JVs4cNRTDJ28Ryum8XkDzoN53Mybsz3OCPBB82ZhXc8GgvOcTCNI/ EA1A== X-Gm-Message-State: AGRZ1gJaSj/43s3Q1450BX4BcMLMY8E5NL4nf2RWGOb/j/Gs76lG5f5x ob2ek6ee7TbiGLYDTL8AAcb7QQ== X-Google-Smtp-Source: AJdET5ckmjLWnLQu2tvElkOmgcRC8SRnfo5vdSevhscXBORsGc4HTD6Rj+IHfo+lmcI19syX7zCexQ== X-Received: by 2002:a5d:47d2:: with SMTP id l18-v6mr9089110wrs.319.1541776882738; Fri, 09 Nov 2018 07:21:22 -0800 (PST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Date: Fri, 9 Nov 2018 15:21:15 +0000 Message-Id: <20181109152119.9242-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181109152119.9242-1-alex.bennee@linaro.org> References: <20181109152119.9242-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 Subject: [Qemu-devel] [PATCH v3 3/7] target/arm64: kvm debug set target_el when passing exception to guest X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) When we are debugging the guest all exceptions come our way but might be for the guest's own debug exceptions. We use the ->do_interrupt() infrastructure to inject the exception into the guest. However, we are missing a full setup of the exception structure, causing an assert later down the line. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Peter Maydell Reviewed-by: Richard Henderson --- v2 - tweak commit msg for grammar --- target/arm/kvm64.c | 1 + 1 file changed, 1 insertion(+) diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c index c39150e5e1..46fbe6d8ff 100644 --- a/target/arm/kvm64.c +++ b/target/arm/kvm64.c @@ -1000,6 +1000,7 @@ bool kvm_arm_handle_debug(CPUState *cs, struct kvm_de= bug_exit_arch *debug_exit) cs->exception_index =3D EXCP_BKPT; env->exception.syndrome =3D debug_exit->hsr; env->exception.vaddress =3D debug_exit->far; + env->exception.target_el =3D 1; qemu_mutex_lock_iothread(); cc->do_interrupt(cs); qemu_mutex_unlock_iothread(); --=20 2.17.1 From nobody Wed May 8 17:24:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 154177704757154.243336284617385; Fri, 9 Nov 2018 07:24:07 -0800 (PST) Received: from localhost ([::1]:34720 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8dd-0004PQ-1p for importer@patchew.org; Fri, 09 Nov 2018 10:24:01 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42459) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8bC-0001CR-53 for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gL8b9-0002zb-Ut for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:29 -0500 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:55008) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gL8b8-0002sE-0f for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:26 -0500 Received: by mail-wm1-x341.google.com with SMTP id r63-v6so2373398wma.4 for ; Fri, 09 Nov 2018 07:21:25 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id o27-v6sm5903744wro.24.2018.11.09.07.21.20 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 09 Nov 2018 07:21:21 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 631C63E0581; Fri, 9 Nov 2018 15:21:19 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OqbOy/sDgUCB+L40NDK5FGmCQfZ8PbcrTxhZoCZLx68=; b=RiAdRyK+3aUApOF66bItTVLBom6PrF/U/t2fA0ChAi+RJhRJjyXsEuJ2H8vzdK2hN3 g/cxKnrb2tAuReMCuKxqUEgJgwg3k4WHTQjFwNFdoDSUmZI7V+7vAdf4XgczpMC4bwP3 kU52ZZWo9qPTBsHfmuD5JQlKgMUuAe89O6gJY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OqbOy/sDgUCB+L40NDK5FGmCQfZ8PbcrTxhZoCZLx68=; b=GcRCwE1iKO97zTmg2n4sJQiXVvc4D+TcTk2tf/vLxEEHTZVjjtZGHMj03F+6vIquYq ItJ82kXuL9YqBN9skLWFsFBcDHG8teicup/yIH6cLiHP/jfG2dtPqTONLVk7lCMfphIh p+HSnFuvJBS9kQK2tFLBcjKIIwKfSk9HWV18so9ATj2/dFH510PAE5SJr/LyH+lavCUT c3VD4mpyL84plSfQseW+nPuy/5knPLyt3IzE1dsvn9rrUr29l2UScWZetsds4H11HX4x dJ95jzgPjNAkU6fN3SdkFIS+MfxnVdBqZeqCap68A0YdM04vuyDT7jyEzaAxvJt7jVfw Y6Ng== X-Gm-Message-State: AGRZ1gJ6bmlqZ8Bw/P7Bpzy7Lfb3WULpCDGNAM4BGWybm1VcS61h8R+j pUc9a/8Pm57/gfouvAKcYVIWZg== X-Google-Smtp-Source: AJdET5caluhRF/m5TA51fsYvBRT3RjS2c31SR3ozfO8NlUKMZ8lYb2x1FACGyofqs3ZsgnjZ8WFcpQ== X-Received: by 2002:a1c:8791:: with SMTP id j139-v6mr5161951wmd.76.1541776884104; Fri, 09 Nov 2018 07:21:24 -0800 (PST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Date: Fri, 9 Nov 2018 15:21:16 +0000 Message-Id: <20181109152119.9242-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181109152119.9242-1-alex.bennee@linaro.org> References: <20181109152119.9242-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::341 Subject: [Qemu-devel] [PATCH v3 4/7] tests/guest-debug: fix scoping of failcount X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) You should declare you are using a global version of a variable before you attempt to modify it in a function. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Peter Maydell Reviewed-by: Richard Henderson --- tests/guest-debug/test-gdbstub.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/guest-debug/test-gdbstub.py b/tests/guest-debug/test-gdb= stub.py index 0e4ac01426..c7e3986a24 100644 --- a/tests/guest-debug/test-gdbstub.py +++ b/tests/guest-debug/test-gdbstub.py @@ -16,6 +16,7 @@ def report(cond, msg): print ("PASS: %s" % (msg)) else: print ("FAIL: %s" % (msg)) + global failcount failcount +=3D 1 =20 =20 --=20 2.17.1 From nobody Wed May 8 17:24:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1541777331018292.0999957539292; Fri, 9 Nov 2018 07:28:51 -0800 (PST) Received: from localhost ([::1]:34747 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8iD-0008OX-Qa for importer@patchew.org; Fri, 09 Nov 2018 10:28:45 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42452) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8bC-0001CM-4J for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gL8b8-0002yM-Pr for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:29 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:56306) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gL8b6-0002pn-VD for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:25 -0500 Received: by mail-wm1-x343.google.com with SMTP id s10-v6so2363853wmc.5 for ; Fri, 09 Nov 2018 07:21:24 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id i7-v6sm5743780wrs.55.2018.11.09.07.21.21 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 09 Nov 2018 07:21:21 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 756133E0593; Fri, 9 Nov 2018 15:21:19 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=w/xPzGFYDm1mbK9oUTpNs65d923WwAqDK1S68c4QRE0=; b=OAcXXQBgf9q0VgEYhrhXR3SM/fQWBJ59lYHbvmMn1jmyVWDuhuqUMsYvgoqZpheJiI P3FagqkgTVbSM07G3AEAjQVSDJnqJHihcEYSfAXZHhvs/sV9jUxkyHlENljLBto0Ityx YSQNu9EKOKGxWML9FKh5K2c5C/UAg4P4IqTtk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=w/xPzGFYDm1mbK9oUTpNs65d923WwAqDK1S68c4QRE0=; b=Y9RiHXkbtZCCIb3msyJlJbUy6thzBl7dtuVehnmmA/43rWIPIyZzIqahHKjFyyYj14 ziPklJBtA1bZ4A4scxGpTinIKpfbHeOXT/jkeJBa/4rSDaAQsWwplpVC3m0TEol7DJiV hhVRUp9ytuGNnWHXMPph62wdTZWzDZfiTKjXvo9UhHu+R7/0ePM61LZbfvg8ygdBY66T Z09+gTKj/3YL1W410y1RJ77VHRTyJ/xnjcKZAx+LD94yA3fTvmrDRSqEi9+9Jo0lw00i SoPR6EQACze3+rwR8X3utL4qXWTzIsEMo9xf5hpiQjge7vRJJzCSJxhj98pGYEfa5BGt zV+Q== X-Gm-Message-State: AGRZ1gJJ051fVnP5gknE4xAmstnMBro7w0Wf51gA2HgHpFHiR0eW0yek KAoTcBhW2vMj+QS8ief6k81CZg== X-Google-Smtp-Source: AJdET5dNiUTFORVqj/EcXD9bN6TaR4xBg1sqL8RD0+4M32piiHAEDO/s8f78x+FzNddTXJ+LqMCmJA== X-Received: by 2002:a1c:dc86:: with SMTP id t128-v6mr5049386wmg.111.1541776883509; Fri, 09 Nov 2018 07:21:23 -0800 (PST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Date: Fri, 9 Nov 2018 15:21:17 +0000 Message-Id: <20181109152119.9242-6-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181109152119.9242-1-alex.bennee@linaro.org> References: <20181109152119.9242-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::343 Subject: [Qemu-devel] [PATCH v3 5/7] tests/guest-debug: don't use symbol resolution for PC checks X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) It turns out symbol resolution isn't enough as modern kernels are often padded with check code at the start of functions. GDB seems to put the breakpoint at the first non-check instruction which causes comparisons with the symbol resolution to fail. For normal breakpoints we can detect the hit just by checking hit_count instead. For hardware breakpoints we fish the breakpoint address out of what gdb.execute() reported it was set at. Signed-off-by: Alex Benn=C3=A9e --- tests/guest-debug/test-gdbstub.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/tests/guest-debug/test-gdbstub.py b/tests/guest-debug/test-gdb= stub.py index c7e3986a24..3de174b74b 100644 --- a/tests/guest-debug/test-gdbstub.py +++ b/tests/guest-debug/test-gdbstub.py @@ -6,9 +6,10 @@ from __future__ import print_function # gdb ${KERNEL}.vmlinux -x ${QEMU_SRC}/tests/guest-debug/test-gdbstub.py =20 import gdb +import re =20 failcount =3D 0 - +addr_match =3D re.compile("(0x[0-9a-f]{4,16})") =20 def report(cond, msg): "Report success/fail of test" @@ -37,26 +38,30 @@ def check_break(sym_name): gdb.execute("c") =20 # hopefully we came back - end_pc =3D gdb.parse_and_eval('$pc') - print ("%s =3D=3D %s %d" % (end_pc, sym.value(), bp.hit_count)) + hit =3D bp.hit_count bp.delete() =20 - # can we test we hit bp? - return end_pc =3D=3D sym.value() + # did we hit bp? + return hit > 0 =20 =20 # We need to do hbreak manually as the python interface doesn't export it +# As the resolution of sym_name might not exactly match where the +# breakpoint actually ends up we need to fish it out from result of +# gdb.execute. def check_hbreak(sym_name): "Setup hardware breakpoint, continue and check we stopped." - sym, ok =3D gdb.lookup_symbol(sym_name) - gdb.execute("hbreak %s" % (sym_name)) + result =3D gdb.execute("hbreak %s" % (sym_name), to_string=3DTrue) + addr_txt =3D addr_match.search(result).group() + addr =3D int(addr_txt, 16) + gdb.execute("c") =20 # hopefully we came back end_pc =3D gdb.parse_and_eval('$pc') - print ("%s =3D=3D %s" % (end_pc, sym.value())) + print ("%s =3D=3D %s" % (end_pc, addr)) =20 - if end_pc =3D=3D sym.value(): + if end_pc =3D=3D addr: gdb.execute("d 1") return True else: --=20 2.17.1 From nobody Wed May 8 17:24:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1541777318990836.0452825059511; Fri, 9 Nov 2018 07:28:38 -0800 (PST) Received: from localhost ([::1]:34746 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8i2-0008IL-1H for importer@patchew.org; Fri, 09 Nov 2018 10:28:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42502) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8bC-0001Co-UE for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gL8bA-00031C-Mf for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:30 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:32811) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gL8bA-0002vb-Bz for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:28 -0500 Received: by mail-wr1-x442.google.com with SMTP id u9-v6so2313533wrr.0 for ; Fri, 09 Nov 2018 07:21:26 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id a126-v6sm1162248wmh.4.2018.11.09.07.21.21 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 09 Nov 2018 07:21:21 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 897153E059D; Fri, 9 Nov 2018 15:21:19 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=g0/XsCCUtLQZBWR5e4EasFWLSAo5CocKlEGU+K2+VDw=; b=Xv2QSWv707C7oPm8k9Wm7EiRHJXy4BuoIw2l6JVatkFalOoRyiFvdjYmQNPSsBLVJZ MlenqxUDBY7MfVwzJ+0H+ABPHCp3IgJWpEYWo3xxDRDekccpbocpNqu0+LDYbpPjlcqB 4vP4Se8KuuXCDZuK44P/qHsYWaXrlPE4ULfrw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=g0/XsCCUtLQZBWR5e4EasFWLSAo5CocKlEGU+K2+VDw=; b=II4ZOkoqrYs3d8KzRk534YNGMT1bbG1tKq+/tWCUf2Ppey3LKkxwY3ywHzc9vE1dPW y5v6wIXPq5TmFE6Cm8zN60KVCOvtjrPUr0vJ9/EQG8U4U531Qj9JkdloSgtA0AE5jAmJ vn+ZW7meQLpTHZvVONCurnykf3wOE6dO+ATB5P96D0REkmAGaPPVThNK0aJlRyBqvDiH MIl7/lChoKirr1drkYZ4c/uLjrpWMFNQkmrno4JXQ0+Ad8h8gTU8V0TiT7NGQ7JGUg4k mjiUl0orwdBv6JX7GjTAwu8zIz/HNK5ENNOfFO8GH68BrCgAP/9/kjyZ/BHdislMyIvl Jn1A== X-Gm-Message-State: AGRZ1gLreIYqJd6XzIrpjbz9p3/qOIs/BnzzI6WZNSK7LQG4ykSSaQf0 pABwEXOsnOudpzKEeTGUWhz1dw== X-Google-Smtp-Source: AJdET5d0UfUEC2kSyQn1FRz2Rj3k6aqdmFV2jSZOQGTuQmYKjNnyhHXjLNSL4+JPOpV9yideyTVbtA== X-Received: by 2002:adf:cd0c:: with SMTP id w12-v6mr8711418wrm.67.1541776885018; Fri, 09 Nov 2018 07:21:25 -0800 (PST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Date: Fri, 9 Nov 2018 15:21:18 +0000 Message-Id: <20181109152119.9242-7-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181109152119.9242-1-alex.bennee@linaro.org> References: <20181109152119.9242-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 Subject: [Qemu-devel] [PATCH v3 6/7] arm: use symbolic MDCR_TDE in arm_debug_target_el X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) We already have this symbol defined so lets use it. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- target/arm/cpu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index b5eff79f73..1efff21a18 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -2743,7 +2743,7 @@ static inline int arm_debug_target_el(CPUARMState *en= v) =20 if (arm_feature(env, ARM_FEATURE_EL2) && !secure) { route_to_el2 =3D env->cp15.hcr_el2 & HCR_TGE || - env->cp15.mdcr_el2 & (1 << 8); + env->cp15.mdcr_el2 & MDCR_TDE; } =20 if (route_to_el2) { --=20 2.17.1 From nobody Wed May 8 17:24:51 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1541777149069222.00710923269344; Fri, 9 Nov 2018 07:25:49 -0800 (PST) Received: from localhost ([::1]:34733 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8fL-00066o-Q9 for importer@patchew.org; Fri, 09 Nov 2018 10:25:47 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42465) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gL8bC-0001CS-5r for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gL8bA-00030Q-Fm for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:29 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:38703) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gL8bA-0002xU-2N for qemu-devel@nongnu.org; Fri, 09 Nov 2018 10:21:28 -0500 Received: by mail-wr1-x442.google.com with SMTP id e3-v6so2298968wrs.5 for ; Fri, 09 Nov 2018 07:21:26 -0800 (PST) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id e10-v6sm2019691wmg.23.2018.11.09.07.21.21 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 09 Nov 2018 07:21:25 -0800 (PST) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 9C74B3E05B2; Fri, 9 Nov 2018 15:21:19 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BbD6VI0WAZqcOWIe9t90I9j76OAQGf7qYc88DzkrQ3c=; b=FI+XjthORKzHYeHe4nGA+Y9YWreBdHdzRsGQDs7FBNPBbNNrFCm3SkXa0gUznnBGSh Du6yr22CNBYo45afB78+UwI/ce/nX3XKsLIbxc+sC2qG6tSsQ6P1jOR1dWv79YZ2bFev h+xSuGYcmjvXqpcgc9WZwX0oUOj+o2ll01xSI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BbD6VI0WAZqcOWIe9t90I9j76OAQGf7qYc88DzkrQ3c=; b=miNwqZTYCpk2/MXcRyVC8k2R3YzN8GY1iFiHxP978cTWvAR91Czzs4dTDKY0ziDPqk y5u+00quBm9fESw7GTofLw4qsTrCzdi6Wdsl3zylkqCkuL8lPSK52SoRk9a2jsncWcYX UAznasla+q5xPO3FLhnqjdbWuMl7PSnTVimn339vJvMJqnJVmT3W114t7522hk0V3fhk ZukQzcPVSy0l1a9hqyLGGI2NdARwtD3dliXhtZWlPs99C81sG9LAa5swEF4VgzXeLe4z Pnjv3z+wGRZawr8A4I7EWpxwpn1vtFcYWCUepXNIWXCFY0g1TTdgcA/IC9jfckywBWfm Bt4w== X-Gm-Message-State: AGRZ1gK0BX7cyokkUA2RqjDdmDbLs7fZqEQOi18qd5n96CZyHK7xA2kX /ifAxpbv1I0SGmT9bYsuLEcK7A== X-Google-Smtp-Source: AJdET5dMtSxsRUU1HWHxqwDlmbpq8ZUoqh1t1V05RqQqUVfLMR8KP6w8FOaC4ogDa4HN3bCEZVJEZw== X-Received: by 2002:adf:ef85:: with SMTP id d5-v6mr8126702wro.163.1541776885898; Fri, 09 Nov 2018 07:21:25 -0800 (PST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Date: Fri, 9 Nov 2018 15:21:19 +0000 Message-Id: <20181109152119.9242-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181109152119.9242-1-alex.bennee@linaro.org> References: <20181109152119.9242-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 Subject: [Qemu-devel] [PATCH v3 7/7] arm: fix aa64_generate_debug_exceptions to work with EL2 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) The test was incomplete and incorrectly caused debug exceptions to be generated when returning to EL2 after a failed attempt to single-step an EL1 instruction. Fix this while cleaning up the function a little. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson --- v3 - further re-arrangement as suggested by rth --- target/arm/cpu.h | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 1efff21a18..814ff69bc2 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -2764,23 +2764,35 @@ static inline bool arm_v7m_csselr_razwi(ARMCPU *cpu) return (cpu->clidr & R_V7M_CLIDR_CTYPE_ALL_MASK) !=3D 0; } =20 +/* See AArch64.GenerateDebugExceptionsFrom() in ARM ARM pseudocode */ static inline bool aa64_generate_debug_exceptions(CPUARMState *env) { - if (arm_is_secure(env)) { - /* MDCR_EL3.SDD disables debug events from Secure state */ - if (extract32(env->cp15.mdcr_el3, 16, 1) !=3D 0 - || arm_current_el(env) =3D=3D 3) { - return false; - } + int cur_el =3D arm_current_el(env); + int debug_el; + + if (cur_el =3D=3D 3) { + return false; } =20 - if (arm_current_el(env) =3D=3D arm_debug_target_el(env)) { - if ((extract32(env->cp15.mdscr_el1, 13, 1) =3D=3D 0) - || (env->daif & PSTATE_D)) { - return false; - } + /* MDCR_EL3.SDD disables debug events from Secure state */ + if (arm_is_secure_below_el3(env) + && extract32(env->cp15.mdcr_el3, 16, 1)) { + return false; } - return true; + + /* + * Same EL to same EL debug exceptions need MDSCR_KDE enabled + * while not masking the (D)ebug bit in DAIF. + */ + debug_el =3D arm_debug_target_el(env); + + if (cur_el =3D=3D debug_el) { + return extract32(env->cp15.mdscr_el1, 13, 1) + && !(env->daif & PSTATE_D); + } + + /* Otherwise the debug target needs to be a higher EL */ + return debug_el > cur_el; } =20 static inline bool aa32_generate_debug_exceptions(CPUARMState *env) @@ -2833,9 +2845,6 @@ static inline bool aa32_generate_debug_exceptions(CPU= ARMState *env) * since the pseudocode has it at all callsites except for the one in * CheckSoftwareStep(), where it is elided because both branches would * always return the same value. - * - * Parts of the pseudocode relating to EL2 and EL3 are omitted because we - * don't yet implement those exception levels or their associated trap bit= s. */ static inline bool arm_generate_debug_exceptions(CPUARMState *env) { --=20 2.17.1