From owner-svn-src-head@freebsd.org Tue Feb 4 12:33:00 2020 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A740924546E; Tue, 4 Feb 2020 12:33:00 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48BkcX3xSCz3Mgc; Tue, 4 Feb 2020 12:33:00 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8299F19D1B; Tue, 4 Feb 2020 12:33:00 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 014CX0jx097607; Tue, 4 Feb 2020 12:33:00 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 014CX0ie097606; Tue, 4 Feb 2020 12:33:00 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <202002041233.014CX0ie097606@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Tue, 4 Feb 2020 12:33:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r357499 - head/sys/arm64/arm64 X-SVN-Group: head X-SVN-Commit-Author: andrew X-SVN-Commit-Paths: head/sys/arm64/arm64 X-SVN-Commit-Revision: 357499 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Feb 2020 12:33:00 -0000 Author: andrew Date: Tue Feb 4 12:33:00 2020 New Revision: 357499 URL: https://svnweb.freebsd.org/changeset/base/357499 Log: Print useful debug data on unhandled kernel fault on arm64 When panicing because of an unhandled data abort from the kernel it is useful to know the register state and faulting address to aid debugging. Print these registers before calling panic. Sponsored by: DARPA, AFRL Modified: head/sys/arm64/arm64/trap.c Modified: head/sys/arm64/arm64/trap.c ============================================================================== --- head/sys/arm64/arm64/trap.c Tue Feb 4 09:12:12 2020 (r357498) +++ head/sys/arm64/arm64/trap.c Tue Feb 4 12:33:00 2020 (r357499) @@ -357,12 +357,15 @@ do_el1h_sync(struct thread *td, struct trapframe *fram far = READ_SPECIALREG(far_el1); dfsc = esr & ISS_DATA_DFSC_MASK; if (dfsc < nitems(abort_handlers) && - abort_handlers[dfsc] != NULL) + abort_handlers[dfsc] != NULL) { abort_handlers[dfsc](td, frame, esr, far, 0); - else + } else { + print_registers(frame); + printf(" far: %16lx\n", far); panic("Unhandled EL1 %s abort: %x", exception == EXCP_INSN_ABORT ? "instruction" : "data", dfsc); + } break; case EXCP_BRK: #ifdef KDTRACE_HOOKS