Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp2121744rwb; Fri, 12 Aug 2022 12:26:24 -0700 (PDT) X-Google-Smtp-Source: AA6agR5RMoYh4pimiJ11vkCNM6MEINb8Eo6jtPwdBDTwIaq1+fEI5fF7VI+oUT7hNYYkNYCZELE3 X-Received: by 2002:aa7:8195:0:b0:52c:7d6a:e89d with SMTP id g21-20020aa78195000000b0052c7d6ae89dmr5315060pfi.69.1660332384251; Fri, 12 Aug 2022 12:26:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660332384; cv=none; d=google.com; s=arc-20160816; b=UuXtwAPt8nz+RjWBeCFEtabugK7Qrf59QE8YKWM+oVKoX3bRYPpXML1AFUUboPB0fG oo0PD7a8/uC0+NWzBUqVvrlc/9dhbqFauwiRuWp48KAk2Ze5NL+ISUEciKSLDPvq9knf VghBWmXWBPyZgLEzmOJxxC1P8VftwQruI/gHSchrvnzJUl0qB/FrXeLj/dcCoKY+sHSv jaAFljQ0aABXVfziRmRjjRvRTOtPFqsswYupQYpk1jmXWFQUqy0oogLBHXvEW4edbILN TzGdTzA53ZuKyPYMZ3QUNeoURwebFhsyvznLHCJgjB/DtMky2zaMbDudnhf3Ffp48qHJ 9jww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:mime-version:message-id:date :dkim-signature; bh=UlTdzT2bx0chOWv9FqUt/dE8vlZ3og2Lke/cZeyX+qs=; b=waCHlG1BsHZkvxtO6qX8xbF9EmegAxnpuvPOX4S3qdiL3M8XBuNsw0I/UvHsPGbWWf 1m3ZsW2/Q3fTJvrY2yjalP9A6/I+++QgTFPnvaHieo3ez6AUYc/dfLNKnUWx7pNShGak 1ow0M3isc+bD/hp78tJIfN12eFvXOqh3zI6rtnKe6Zhk/7pp6ZEEXUodPcFoEsXzP221 OMDo9KGkPK89yebd7ZI7iTDQ2yDpSiO1xNp5msvSnbssv6lOXlweZYzxi2aCWRevA/ak rp7BXrtONEnkLUhpohU6GQFoJGOvO/yDYtr/ARD86I0mgXN4PwfoCIgu69xWp83Vw+d4 V9dQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=koXLHaKU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h3-20020a170902f54300b0016dcf421fe9si3388157plf.486.2022.08.12.12.26.11; Fri, 12 Aug 2022 12:26:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=koXLHaKU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239365AbiHLSfl (ORCPT + 99 others); Fri, 12 Aug 2022 14:35:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37726 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239331AbiHLSfh (ORCPT ); Fri, 12 Aug 2022 14:35:37 -0400 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 132017D7B4 for ; Fri, 12 Aug 2022 11:35:36 -0700 (PDT) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-32a8e40e2dcso13466147b3.23 for ; Fri, 12 Aug 2022 11:35:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:mime-version:message-id:date:from:to:cc; bh=UlTdzT2bx0chOWv9FqUt/dE8vlZ3og2Lke/cZeyX+qs=; b=koXLHaKUzQkEYo2iYmqdTgJu30nqzbtSY1D0ksWnP0AuVZ9RJ4GJuTiQgWczVB8gQI jbhxQfT2C07uF2ZqgFvYiYlJ1AKRT/nL0i8toy8B85i8F7RyKq3dTqVXv7lS0UmIo3FA Iwb/tD0NIgHbLDkKTqBJrWtnkEyKe0TUVr+lb8bowzpxtgR4vOpZH7KmQEHJzmFYbF3U ywWEz7ar+CDnSHRFWMJmKnnjn2wdJ745WMqIJ2FKJRXej1F3rNoYkd8W07cT2Pb7Axlc H+p3Ibqt14f0+2Y6scf+OLYFRmWk81JplNpzlwk4q86b9GF3Hk93sMvPFUn+rH6Mb625 o8XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:mime-version:message-id:date:x-gm-message-state :from:to:cc; bh=UlTdzT2bx0chOWv9FqUt/dE8vlZ3og2Lke/cZeyX+qs=; b=2QWN5/2cHgQTfz3YwbTWIFZqQQSyrpGATvoMSg+maehj9Mo2rkanM2wNtdhDBQTl23 kWsksf2CwrS5xQgeZ/AzZYMUxw1jeFc9Yi9esGJqCK7bkypIyk3hZPMQvxhJuEXDMWU1 2vpVSn4detNsnLd51Jm2PQhiSzBah9RdIad59132MDmZXH5umdZLfqbGmknIBfvtQXuh vuKhAjP9UZETbKhesL1MQX6XnRt59xFd1wjiYI/5J0XtDblLzT7BjSxguYkVg3K7C8yS ZM1KeNm4WpV+FpE8h9pKk7570MOD4F0BeuGiBJqTfKPMVdi80IeORaz1eQLrmpsqL7x1 MLnw== X-Gm-Message-State: ACgBeo1e36Wa+MFLvAgchPbcWmO17FvHmJYEeWK9PxpsDXj5iPJC7y36 YWNfvTVu20bLDL2xrD8VZutnH50= X-Received: from pcc-desktop.svl.corp.google.com ([2620:15c:2ce:200:def9:ef59:f5b5:f65b]) (user=pcc job=sendgmr) by 2002:a81:4ccf:0:b0:32f:cccf:cef7 with SMTP id z198-20020a814ccf000000b0032fcccfcef7mr1479908ywa.191.1660329335377; Fri, 12 Aug 2022 11:35:35 -0700 (PDT) Date: Fri, 12 Aug 2022 11:35:30 -0700 Message-Id: <20220812183530.2261795-1-pcc@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.37.1.595.g718a3a8f04-goog Subject: [PATCH] arm64: translate register values to physical addresses in kernel panics From: Peter Collingbourne To: Catalin Marinas , Will Deacon , Mark Brown , Mark Rutland Cc: Peter Collingbourne , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When debugging a kernel panic it is sometimes useful to know the physical address of any virtual addresses stored in registers. Therefore, pass all register values through AT S1E1R and print the resulting PAR_EL1 value next to the register. Signed-off-by: Peter Collingbourne Link: https://linux-review.googlesource.com/id/I7c6be65f27052da57088ff58b463fdbe2394f43c --- Not sure if this should land in this form (I imagine there could be all kinds of parsers that are expecting the existing format) but maybe behind an option. Let me know what you think. arch/arm64/kernel/process.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 92bcc1768f0b..8b5f8c2c8abf 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -197,6 +197,18 @@ static void print_pstate(struct pt_regs *regs) } } +static unsigned long at(unsigned long addr) +{ + unsigned long pa; + + __asm__ __volatile__("at s1e1r, %1\n" + "mrs %0, par_el1\n" + : "=r"(pa) + : "r"(addr) + : "memory"); + return pa; +} + void __show_regs(struct pt_regs *regs) { int i, top_reg; @@ -231,10 +243,10 @@ void __show_regs(struct pt_regs *regs) i = top_reg; while (i >= 0) { - printk("x%-2d: %016llx", i, regs->regs[i]); + printk("x%-2d: %016llx (%016llx)", i, regs->regs[i], at(regs->regs[i])); while (i-- % 3) - pr_cont(" x%-2d: %016llx", i, regs->regs[i]); + pr_cont(" x%-2d: %016llx (%016llx)", i, regs->regs[i], at(regs->regs[i])); pr_cont("\n"); } -- 2.37.1.595.g718a3a8f04-goog