From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C579D450F2 for ; Tue, 17 Sep 2024 00:00:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726531249; cv=none; b=TVA3FnnldR60xfPp/3x5muGLNoROKzoIS1dJsGtZ0AP61WGjsEIID5yYJRdk/RLRXfLvVP+0NwOjMPfgBS7sZzgDkpsNapO8A+MyczZ6QmU6NQH8rC8ZkSw7vbatw7xiPe2uutNJny5vwQp/oxScwiyP+oP+dMyavFJWjR5mnNo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1726531249; c=relaxed/simple; bh=Ee17siRqBFROuZr/thXBuY61Xxnn7brpn1HX2BS79j4=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Ei6c1dU1vhsmjtpkV5NgY/YkDxBq4gMrTCR+ke+UmwmoMxYm6jDjGJYRwvuc6hjFCxuN2wL/5SCGRwnfuBhEP3w0oUeDX4nY7FTGzvyjbuKDQueLjh7VNF+EId5Z/4WDwxRrVl6NiuT4u/XSv7o5RD9gZebTmEDGmX84uPUUJd4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=RhRoQT49; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="RhRoQT49" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2053a0bd0a6so51896185ad.3 for ; Mon, 16 Sep 2024 17:00:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1726531246; x=1727136046; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=eup1ahvLxbk3GqS/ZMeUjwBFH9cE8D+Ggr+WJlLQMOk=; b=RhRoQT49oLiMTKeVDt3o35EPTFrI9VTfyuiHCpYg0jF/Ir0+3X6JtB37avwfLK/pOo xtUz4MGUJ6UkuCuX+7d1d7AMVsLkDNoHDX5K14QrtR8CNaDZkDZUC2CwcyvDqi99H8k0 SGt7yw9X814xthl4fj/4VQFD6VQjlbyrxxw5EkJUNfr4kfrfC5MEl7zwcFJMbhfvCeaM EKmNXMThZdV2mD32PkwhtCa0LrlHqz+etI5OcLU2psrqL/OE6ymC6jTgvp9xbONqSMP8 BUTnOj2lJLTz9/RK58pKcXsMfwkOfq6yQ9Y6hgKizhG7G6mYHOPDm4WIYfihyE0f8IYh PjXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726531246; x=1727136046; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=eup1ahvLxbk3GqS/ZMeUjwBFH9cE8D+Ggr+WJlLQMOk=; b=OPVvwqlxHoj/EM0uzkJS3h8RFsETR2qh2xrAn8a/6GmXYlekEGTAEVJ1gPpzxa7Yyh S8YBsczn1ZoFIMPzTtiw+7NxR6GoE6CZ4NDjfj6w8ZRBHR9C8uuWPN7ffJ/XDzqaJ1Lu z2iY3gnPnqzGF/XuePulgpJvPAzYUG8UkJvSTVio3z+K9lhGs2zwsffVQgqLfpLeJKB3 Qwtk06lSf/ZC2LjFW4irSIDortlnHwWZrWyRHzC2EtT9T1ZlXwbfiSEpx9M8mFkExa1Y exodGbdI0FfQfRmJ45VDnBDYr6ys+VOIgdp5Q0JqzWIGzim2YpXuj34AANBvPvd99llz C5wQ== X-Forwarded-Encrypted: i=1; AJvYcCXZgnwYyxVuKmgVrEp6UgMr/o++SbfJSaJdjfAOvsreeskNFYVVqFsaafjEr9CMBhZiekzo2KIv8TiG@vger.kernel.org X-Gm-Message-State: AOJu0YxSA0sC1bVWh0LovBDsS8EhgGFZ/edWbvoyWV7ONbY4yaPOgRo2 Vy1mChyVQHN8NkJh+sw2Sw6+k2JDF3gtBaokoYvqgyiOXNP/l6cR05D4g8Omt+s= X-Google-Smtp-Source: AGHT+IH64YpGkOt6sdEnN70vzwbW5vOexKApQ3tQQA6MC8BwStmIPrrAyTwaRSTJo5R11SP51oTbHQ== X-Received: by 2002:a17:902:ea0d:b0:205:7c76:4b2c with SMTP id d9443c01a7336-2076e412882mr247960785ad.48.1726531245442; Mon, 16 Sep 2024 17:00:45 -0700 (PDT) Received: from debug.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-20794601384sm41311685ad.94.2024.09.16.17.00.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Sep 2024 17:00:45 -0700 (PDT) Date: Mon, 16 Sep 2024 17:00:40 -0700 From: Deepak Gupta To: Andy Chiu Cc: paul.walmsley@sifive.com, palmer@sifive.com, conor@kernel.org, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kselftest@vger.kernel.org, quic_zhonhan@quicinc.com, zong.li@sifive.com, zev@bewilderbeest.net, david@redhat.com, peterz@infradead.org, catalin.marinas@arm.com, broonie@kernel.org, dave.hansen@linux.intel.com, atishp@rivosinc.com, bjorn@rivosinc.com, namcaov@gmail.com, usama.anjum@collabora.com, guoren@kernel.org, alx@kernel.org, jszhang@kernel.org, hpa@zytor.com, puranjay@kernel.org, shuah@kernel.org, sorear@fastmail.com, costa.shul@redhat.com, robh@kernel.org, antonb@tenstorrent.com, quic_bjorande@quicinc.com, lorenzo.stoakes@oracle.com, corbet@lwn.net, dawei.li@shingroup.cn, anup@brainfault.org, deller@gmx.de, x86@kernel.org, andrii@kernel.org, willy@infradead.org, kees@kernel.org, mingo@redhat.com, libang.li@antgroup.com, samitolvanen@google.com, greentime.hu@sifive.com, osalvador@suse.de, ajones@ventanamicro.com, revest@chromium.org, ancientmodern4@gmail.com, aou@eecs.berkeley.edu, jerry.shih@sifive.com, alexghiti@rivosinc.com, arnd@arndb.de, yang.lee@linux.alibaba.com, charlie@rivosinc.com, bgray@linux.ibm.com, Liam.Howlett@oracle.com, leobras@redhat.com, songshuaishuai@tinylab.org, xiao.w.wang@intel.com, bp@alien8.de, cuiyunhui@bytedance.com, mchitale@ventanamicro.com, cleger@rivosinc.com, tglx@linutronix.de, krzk+dt@kernel.org, vbabka@suse.cz, brauner@kernel.org, bhe@redhat.com, ke.zhao@shingroup.cn, oleg@redhat.com, samuel.holland@sifive.com, ben.dooks@codethink.co.uk, evan@rivosinc.com, palmer@dabbelt.com, ebiederm@xmission.com, andy.chiu@sifive.com, schwab@suse.de, akpm@linux-foundation.org, sameo@rivosinc.com, tanzhasanwork@gmail.com, rppt@kernel.org, ryan.roberts@arm.com Subject: Re: [PATCH v4 21/30] riscv/traps: Introduce software check exception Message-ID: References: <20240912231650.3740732-1-debug@rivosinc.com> <20240912231650.3740732-22-debug@rivosinc.com> Precedence: bulk X-Mailing-List: linux-arch@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Fri, Sep 13, 2024 at 09:35:50PM +0200, Andy Chiu wrote: >Hi Deepak > >Deepak Gupta 於 2024年9月13日 週五 上午2:32寫道: >> >> zicfiss / zicfilp introduces a new exception to priv isa `software check >> exception` with cause code = 18. This patch implements software check >> exception. >> >> Additionally it implements a cfi violation handler which checks for code >> in xtval. If xtval=2, it means that sw check exception happened because of >> an indirect branch not landing on 4 byte aligned PC or not landing on >> `lpad` instruction or label value embedded in `lpad` not matching label >> value setup in `x7`. If xtval=3, it means that sw check exception happened >> because of mismatch between link register (x1 or x5) and top of shadow >> stack (on execution of `sspopchk`). >> >> In case of cfi violation, SIGSEGV is raised with code=SEGV_CPERR. >> SEGV_CPERR was introduced by x86 shadow stack patches. >> >> Signed-off-by: Deepak Gupta >> --- >> arch/riscv/include/asm/asm-prototypes.h | 1 + >> arch/riscv/include/asm/entry-common.h | 2 ++ >> arch/riscv/kernel/entry.S | 3 ++ >> arch/riscv/kernel/traps.c | 38 +++++++++++++++++++++++++ >> 4 files changed, 44 insertions(+) >> >> diff --git a/arch/riscv/include/asm/asm-prototypes.h b/arch/riscv/include/asm/asm-prototypes.h >> index cd627ec289f1..5a27cefd7805 100644 >> --- a/arch/riscv/include/asm/asm-prototypes.h >> +++ b/arch/riscv/include/asm/asm-prototypes.h >> @@ -51,6 +51,7 @@ DECLARE_DO_ERROR_INFO(do_trap_ecall_u); >> DECLARE_DO_ERROR_INFO(do_trap_ecall_s); >> DECLARE_DO_ERROR_INFO(do_trap_ecall_m); >> DECLARE_DO_ERROR_INFO(do_trap_break); >> +DECLARE_DO_ERROR_INFO(do_trap_software_check); >> >> asmlinkage void handle_bad_stack(struct pt_regs *regs); >> asmlinkage void do_page_fault(struct pt_regs *regs); >> diff --git a/arch/riscv/include/asm/entry-common.h b/arch/riscv/include/asm/entry-common.h >> index 2293e535f865..4068c7e5452a 100644 >> --- a/arch/riscv/include/asm/entry-common.h >> +++ b/arch/riscv/include/asm/entry-common.h >> @@ -39,4 +39,6 @@ static inline int handle_misaligned_store(struct pt_regs *regs) >> } >> #endif >> >> +bool handle_user_cfi_violation(struct pt_regs *regs); >> + >> #endif /* _ASM_RISCV_ENTRY_COMMON_H */ >> diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S >> index ca9203e6d76d..2ec75ba864a8 100644 >> --- a/arch/riscv/kernel/entry.S >> +++ b/arch/riscv/kernel/entry.S >> @@ -384,6 +384,9 @@ SYM_DATA_START_LOCAL(excp_vect_table) >> RISCV_PTR do_page_fault /* load page fault */ >> RISCV_PTR do_trap_unknown >> RISCV_PTR do_page_fault /* store page fault */ >> + RISCV_PTR do_trap_unknown /* cause=16 */ >> + RISCV_PTR do_trap_unknown /* cause=17 */ >> + RISCV_PTR do_trap_software_check /* cause=18 is sw check exception */ >> SYM_DATA_END_LABEL(excp_vect_table, SYM_L_LOCAL, excp_vect_table_end) >> >> #ifndef CONFIG_MMU >> diff --git a/arch/riscv/kernel/traps.c b/arch/riscv/kernel/traps.c >> index 51ebfd23e007..32d1453bed72 100644 >> --- a/arch/riscv/kernel/traps.c >> +++ b/arch/riscv/kernel/traps.c >> @@ -354,6 +354,44 @@ void do_trap_ecall_u(struct pt_regs *regs) >> >> } >> >> +#define CFI_TVAL_FCFI_CODE 2 >> +#define CFI_TVAL_BCFI_CODE 3 >> +/* handle cfi violations */ >> +bool handle_user_cfi_violation(struct pt_regs *regs) >> +{ >> + bool ret = false; >> + unsigned long tval = csr_read(CSR_TVAL); >> + >> + if (((tval == CFI_TVAL_FCFI_CODE) && cpu_supports_indirect_br_lp_instr()) || >> + ((tval == CFI_TVAL_BCFI_CODE) && cpu_supports_shadow_stack())) { >> + do_trap_error(regs, SIGSEGV, SEGV_CPERR, regs->epc, >> + "Oops - control flow violation"); >> + ret = true; >> + } >> + >> + return ret; >> +} >> +/* >> + * software check exception is defined with risc-v cfi spec. Software check >> + * exception is raised when:- >> + * a) An indirect branch doesn't land on 4 byte aligned PC or `lpad` >> + * instruction or `label` value programmed in `lpad` instr doesn't >> + * match with value setup in `x7`. reported code in `xtval` is 2. >> + * b) `sspopchk` instruction finds a mismatch between top of shadow stack (ssp) >> + * and x1/x5. reported code in `xtval` is 3. >> + */ > >It seems like this trap handler does not follow generic entry. This >can cause problems as signal delivery is done in >irqentry_exit_to_user_mode(). Please reference the commit f0bddf50586d >("riscv: entry: Convert to generic entry") for more information. Ack. will fix it. > >> +asmlinkage __visible __trap_section void do_trap_software_check(struct pt_regs *regs) >> +{ >> + if (user_mode(regs)) { >> + /* not a cfi violation, then merge into flow of unknown trap handler */ >> + if (!handle_user_cfi_violation(regs)) >> + do_trap_unknown(regs); >> + } else { >> + /* sw check exception coming from kernel is a bug in kernel */ >> + die(regs, "Kernel BUG"); >> + } >> +} >> + >> #ifdef CONFIG_MMU >> asmlinkage __visible noinstr void do_page_fault(struct pt_regs *regs) >> { >> -- >> 2.45.0 >> >> >> _______________________________________________ >> linux-riscv mailing list >> linux-riscv@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-riscv > >Cheers, >Andy From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E0CF9C3ABCB for ; Tue, 17 Sep 2024 00:00:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=nbdhZ6HxRFhjn33XkrB1gwtWzu44VQ8n/PqLNuO9q38=; b=QwuDINzUClyTf21/Yg86KsHDHV CtrJd0ew2PLja+u9vWxuGvH2x7B6Op5vjwyO8u1CPG0GwanHGNF7x724sFpM0c/B6x/0YfjBJ0f58 Pt/NJuaDL/vlcxZj5hxOpmRWrzi4hOEPmjjg0rkE7Lb6J7dxjuxsBGlbUMEe1pmI92TCxyfjr3dvN ZSWwNFOGd8HXYOFYpEmseESqeVeJ4paq6N3sDdwxoD97uxXK5w7C6Y5I0HRODvXUhjkwxwO6/fxiM xOgn0Sk5BxH1Oh9Tsptp0qCmk3jwSHIsLFlQWBJ9QF3hAgiy0qzqnZwzLZoXF0XvD4bzHUsR0nTl8 Pf3yAXlg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1sqLeF-000000057Sb-2eW2; Tue, 17 Sep 2024 00:00:51 +0000 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1sqLeB-000000057Rc-0VrV for linux-riscv@lists.infradead.org; Tue, 17 Sep 2024 00:00:50 +0000 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-1fee6435a34so43704075ad.0 for ; Mon, 16 Sep 2024 17:00:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1726531246; x=1727136046; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=eup1ahvLxbk3GqS/ZMeUjwBFH9cE8D+Ggr+WJlLQMOk=; b=00ePe22wFqVfWxiJmOgwt2KLEBb02zR1SsDleMqRVpV3rFzSTh7DBT5smGj3cog01x dVRHcFdaE/YnE+yArYgiDsu69FOUfDV3qkVhdLxmIWrdoj0kWtV1GS+ikiovOltMNZh1 bDuSJpgmjQ2cFhcaJVOGhv0MJlFvkjEi9kZe6GYyir5rYL98TuYqopK022LDVlrskVf6 v8JATcQOb5l01JlAEgn/wDNlMgNZgHPA2UB0y+pw2TO1vdP4JcFnpFv2EKD+mFieLEVS VCmqNMHNk1J3itOXZmR0kfbvR5JW8Sk+RqHPjt4xpYduY5QmlhnyKEX01DrVGRYsUeky mrvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726531246; x=1727136046; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=eup1ahvLxbk3GqS/ZMeUjwBFH9cE8D+Ggr+WJlLQMOk=; b=UY0mjb6E4NG3dkA3QER/MvSpZHtYumsIhBa4R7AKZEWYnXGbZ2hI9XQigZdS0HZonK T209ccMaqCexx0iH5zprURxpRazEQc/mr61g2eNiHlzNb6GaWSZ1JYIIZzmC4DlehElL c644N0N1tCKEinl2OB6TMKBEgeInz4RMUcSbq19frrZZf81oShDbDSt4xMcsk9a696xS s4EecFo4G1ljbGRq6F0uasEW6cuyhhGmMZ8ZyckZz2eo0p2kZe/rGmIiDJanAuy2G9U+ fmv47cF40ZywnGaHvwgmyGeHX89T/4UG2fLqkx0T+rM3JeD2mSlr1cdE4eFaANala1Dq kmdg== X-Forwarded-Encrypted: i=1; AJvYcCXXSOnXVTqjNLp700TGEW9bzleYTij4IxszCs96vS7uFLM/liwavbPzrD4WBpYje1Km9WDyYJYw+/5miA==@lists.infradead.org X-Gm-Message-State: AOJu0YxGqvo3bTbuI8peHvTfR7yWuM3xfKXTCaD0tVMqhUstXQyKFX28 aIAsr9zvGkSHJLWKAvQpXsn3Ncj9qFAypfQZzEPHEWroXZ9OzXoJTi4Ga+6+SOw/F8EAs8sfvVk 0 X-Google-Smtp-Source: AGHT+IH64YpGkOt6sdEnN70vzwbW5vOexKApQ3tQQA6MC8BwStmIPrrAyTwaRSTJo5R11SP51oTbHQ== X-Received: by 2002:a17:902:ea0d:b0:205:7c76:4b2c with SMTP id d9443c01a7336-2076e412882mr247960785ad.48.1726531245442; Mon, 16 Sep 2024 17:00:45 -0700 (PDT) Received: from debug.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-20794601384sm41311685ad.94.2024.09.16.17.00.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Sep 2024 17:00:45 -0700 (PDT) Date: Mon, 16 Sep 2024 17:00:40 -0700 From: Deepak Gupta To: Andy Chiu Cc: paul.walmsley@sifive.com, palmer@sifive.com, conor@kernel.org, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kselftest@vger.kernel.org, quic_zhonhan@quicinc.com, zong.li@sifive.com, zev@bewilderbeest.net, david@redhat.com, peterz@infradead.org, catalin.marinas@arm.com, broonie@kernel.org, dave.hansen@linux.intel.com, atishp@rivosinc.com, bjorn@rivosinc.com, namcaov@gmail.com, usama.anjum@collabora.com, guoren@kernel.org, alx@kernel.org, jszhang@kernel.org, hpa@zytor.com, puranjay@kernel.org, shuah@kernel.org, sorear@fastmail.com, costa.shul@redhat.com, robh@kernel.org, antonb@tenstorrent.com, quic_bjorande@quicinc.com, lorenzo.stoakes@oracle.com, corbet@lwn.net, dawei.li@shingroup.cn, anup@brainfault.org, deller@gmx.de, x86@kernel.org, andrii@kernel.org, willy@infradead.org, kees@kernel.org, mingo@redhat.com, libang.li@antgroup.com, samitolvanen@google.com, greentime.hu@sifive.com, osalvador@suse.de, ajones@ventanamicro.com, revest@chromium.org, ancientmodern4@gmail.com, aou@eecs.berkeley.edu, jerry.shih@sifive.com, alexghiti@rivosinc.com, arnd@arndb.de, yang.lee@linux.alibaba.com, charlie@rivosinc.com, bgray@linux.ibm.com, Liam.Howlett@oracle.com, leobras@redhat.com, songshuaishuai@tinylab.org, xiao.w.wang@intel.com, bp@alien8.de, cuiyunhui@bytedance.com, mchitale@ventanamicro.com, cleger@rivosinc.com, tglx@linutronix.de, krzk+dt@kernel.org, vbabka@suse.cz, brauner@kernel.org, bhe@redhat.com, ke.zhao@shingroup.cn, oleg@redhat.com, samuel.holland@sifive.com, ben.dooks@codethink.co.uk, evan@rivosinc.com, palmer@dabbelt.com, ebiederm@xmission.com, andy.chiu@sifive.com, schwab@suse.de, akpm@linux-foundation.org, sameo@rivosinc.com, tanzhasanwork@gmail.com, rppt@kernel.org, ryan.roberts@arm.com Subject: Re: [PATCH v4 21/30] riscv/traps: Introduce software check exception Message-ID: References: <20240912231650.3740732-1-debug@rivosinc.com> <20240912231650.3740732-22-debug@rivosinc.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240916_170047_467347_3847B3E5 X-CRM114-Status: GOOD ( 22.33 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gRnJpLCBTZXAgMTMsIDIwMjQgYXQgMDk6MzU6NTBQTSArMDIwMCwgQW5keSBDaGl1IHdyb3Rl Ogo+SGkgRGVlcGFrCj4KPkRlZXBhayBHdXB0YSA8ZGVidWdAcml2b3NpbmMuY29tPiDmlrwgMjAy NOW5tDnmnIgxM+aXpSDpgLHkupQg5LiK5Y2IMjozMuWvq+mBk++8mgo+Pgo+PiB6aWNmaXNzIC8g emljZmlscCBpbnRyb2R1Y2VzIGEgbmV3IGV4Y2VwdGlvbiB0byBwcml2IGlzYSBgc29mdHdhcmUg Y2hlY2sKPj4gZXhjZXB0aW9uYCB3aXRoIGNhdXNlIGNvZGUgPSAxOC4gVGhpcyBwYXRjaCBpbXBs ZW1lbnRzIHNvZnR3YXJlIGNoZWNrCj4+IGV4Y2VwdGlvbi4KPj4KPj4gQWRkaXRpb25hbGx5IGl0 IGltcGxlbWVudHMgYSBjZmkgdmlvbGF0aW9uIGhhbmRsZXIgd2hpY2ggY2hlY2tzIGZvciBjb2Rl Cj4+IGluIHh0dmFsLiBJZiB4dHZhbD0yLCBpdCBtZWFucyB0aGF0IHN3IGNoZWNrIGV4Y2VwdGlv biBoYXBwZW5lZCBiZWNhdXNlIG9mCj4+IGFuIGluZGlyZWN0IGJyYW5jaCBub3QgbGFuZGluZyBv biA0IGJ5dGUgYWxpZ25lZCBQQyBvciBub3QgbGFuZGluZyBvbgo+PiBgbHBhZGAgaW5zdHJ1Y3Rp b24gb3IgbGFiZWwgdmFsdWUgZW1iZWRkZWQgaW4gYGxwYWRgIG5vdCBtYXRjaGluZyBsYWJlbAo+ PiB2YWx1ZSBzZXR1cCBpbiBgeDdgLiBJZiB4dHZhbD0zLCBpdCBtZWFucyB0aGF0IHN3IGNoZWNr IGV4Y2VwdGlvbiBoYXBwZW5lZAo+PiBiZWNhdXNlIG9mIG1pc21hdGNoIGJldHdlZW4gbGluayBy ZWdpc3RlciAoeDEgb3IgeDUpIGFuZCB0b3Agb2Ygc2hhZG93Cj4+IHN0YWNrIChvbiBleGVjdXRp b24gb2YgYHNzcG9wY2hrYCkuCj4+Cj4+IEluIGNhc2Ugb2YgY2ZpIHZpb2xhdGlvbiwgU0lHU0VH ViBpcyByYWlzZWQgd2l0aCBjb2RlPVNFR1ZfQ1BFUlIuCj4+IFNFR1ZfQ1BFUlIgd2FzIGludHJv ZHVjZWQgYnkgeDg2IHNoYWRvdyBzdGFjayBwYXRjaGVzLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBE ZWVwYWsgR3VwdGEgPGRlYnVnQHJpdm9zaW5jLmNvbT4KPj4gLS0tCj4+ICBhcmNoL3Jpc2N2L2lu Y2x1ZGUvYXNtL2FzbS1wcm90b3R5cGVzLmggfCAgMSArCj4+ICBhcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL2VudHJ5LWNvbW1vbi5oICAgfCAgMiArKwo+PiAgYXJjaC9yaXNjdi9rZXJuZWwvZW50cnku UyAgICAgICAgICAgICAgIHwgIDMgKysKPj4gIGFyY2gvcmlzY3Yva2VybmVsL3RyYXBzLmMgICAg ICAgICAgICAgICB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysKPj4gIDQgZmlsZXMgY2hh bmdlZCwgNDQgaW5zZXJ0aW9ucygrKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS9hc20tcHJvdG90eXBlcy5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hc20tcHJv dG90eXBlcy5oCj4+IGluZGV4IGNkNjI3ZWMyODlmMS4uNWEyN2NlZmQ3ODA1IDEwMDY0NAo+PiAt LS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2FzbS1wcm90b3R5cGVzLmgKPj4gKysrIGIvYXJj aC9yaXNjdi9pbmNsdWRlL2FzbS9hc20tcHJvdG90eXBlcy5oCj4+IEBAIC01MSw2ICs1MSw3IEBA IERFQ0xBUkVfRE9fRVJST1JfSU5GTyhkb190cmFwX2VjYWxsX3UpOwo+PiAgREVDTEFSRV9ET19F UlJPUl9JTkZPKGRvX3RyYXBfZWNhbGxfcyk7Cj4+ICBERUNMQVJFX0RPX0VSUk9SX0lORk8oZG9f dHJhcF9lY2FsbF9tKTsKPj4gIERFQ0xBUkVfRE9fRVJST1JfSU5GTyhkb190cmFwX2JyZWFrKTsK Pj4gK0RFQ0xBUkVfRE9fRVJST1JfSU5GTyhkb190cmFwX3NvZnR3YXJlX2NoZWNrKTsKPj4KPj4g IGFzbWxpbmthZ2Ugdm9pZCBoYW5kbGVfYmFkX3N0YWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsK Pj4gIGFzbWxpbmthZ2Ugdm9pZCBkb19wYWdlX2ZhdWx0KHN0cnVjdCBwdF9yZWdzICpyZWdzKTsK Pj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZW50cnktY29tbW9uLmggYi9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2VudHJ5LWNvbW1vbi5oCj4+IGluZGV4IDIyOTNlNTM1Zjg2 NS4uNDA2OGM3ZTU0NTJhIDEwMDY0NAo+PiAtLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Vu dHJ5LWNvbW1vbi5oCj4+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZW50cnktY29tbW9u LmgKPj4gQEAgLTM5LDQgKzM5LDYgQEAgc3RhdGljIGlubGluZSBpbnQgaGFuZGxlX21pc2FsaWdu ZWRfc3RvcmUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ICB9Cj4+ICAjZW5kaWYKPj4KPj4gK2Jv b2wgaGFuZGxlX3VzZXJfY2ZpX3Zpb2xhdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncyk7Cj4+ICsK Pj4gICNlbmRpZiAvKiBfQVNNX1JJU0NWX0VOVFJZX0NPTU1PTl9IICovCj4+IGRpZmYgLS1naXQg YS9hcmNoL3Jpc2N2L2tlcm5lbC9lbnRyeS5TIGIvYXJjaC9yaXNjdi9rZXJuZWwvZW50cnkuUwo+ PiBpbmRleCBjYTkyMDNlNmQ3NmQuLjJlYzc1YmE4NjRhOCAxMDA2NDQKPj4gLS0tIGEvYXJjaC9y aXNjdi9rZXJuZWwvZW50cnkuUwo+PiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9lbnRyeS5TCj4+ IEBAIC0zODQsNiArMzg0LDkgQEAgU1lNX0RBVEFfU1RBUlRfTE9DQUwoZXhjcF92ZWN0X3RhYmxl KQo+PiAgICAgICAgIFJJU0NWX1BUUiBkb19wYWdlX2ZhdWx0ICAgLyogbG9hZCBwYWdlIGZhdWx0 ICovCj4+ICAgICAgICAgUklTQ1ZfUFRSIGRvX3RyYXBfdW5rbm93bgo+PiAgICAgICAgIFJJU0NW X1BUUiBkb19wYWdlX2ZhdWx0ICAgLyogc3RvcmUgcGFnZSBmYXVsdCAqLwo+PiArICAgICAgIFJJ U0NWX1BUUiBkb190cmFwX3Vua25vd24gLyogY2F1c2U9MTYgKi8KPj4gKyAgICAgICBSSVNDVl9Q VFIgZG9fdHJhcF91bmtub3duIC8qIGNhdXNlPTE3ICovCj4+ICsgICAgICAgUklTQ1ZfUFRSIGRv X3RyYXBfc29mdHdhcmVfY2hlY2sgLyogY2F1c2U9MTggaXMgc3cgY2hlY2sgZXhjZXB0aW9uICov Cj4+ICBTWU1fREFUQV9FTkRfTEFCRUwoZXhjcF92ZWN0X3RhYmxlLCBTWU1fTF9MT0NBTCwgZXhj cF92ZWN0X3RhYmxlX2VuZCkKPj4KPj4gICNpZm5kZWYgQ09ORklHX01NVQo+PiBkaWZmIC0tZ2l0 IGEvYXJjaC9yaXNjdi9rZXJuZWwvdHJhcHMuYyBiL2FyY2gvcmlzY3Yva2VybmVsL3RyYXBzLmMK Pj4gaW5kZXggNTFlYmZkMjNlMDA3Li4zMmQxNDUzYmVkNzIgMTAwNjQ0Cj4+IC0tLSBhL2FyY2gv cmlzY3Yva2VybmVsL3RyYXBzLmMKPj4gKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvdHJhcHMuYwo+ PiBAQCAtMzU0LDYgKzM1NCw0NCBAQCB2b2lkIGRvX3RyYXBfZWNhbGxfdShzdHJ1Y3QgcHRfcmVn cyAqcmVncykKPj4KPj4gIH0KPj4KPj4gKyNkZWZpbmUgQ0ZJX1RWQUxfRkNGSV9DT0RFICAgICAy Cj4+ICsjZGVmaW5lIENGSV9UVkFMX0JDRklfQ09ERSAgICAgMwo+PiArLyogaGFuZGxlIGNmaSB2 aW9sYXRpb25zICovCj4+ICtib29sIGhhbmRsZV91c2VyX2NmaV92aW9sYXRpb24oc3RydWN0IHB0 X3JlZ3MgKnJlZ3MpCj4+ICt7Cj4+ICsgICAgICAgYm9vbCByZXQgPSBmYWxzZTsKPj4gKyAgICAg ICB1bnNpZ25lZCBsb25nIHR2YWwgPSBjc3JfcmVhZChDU1JfVFZBTCk7Cj4+ICsKPj4gKyAgICAg ICBpZiAoKCh0dmFsID09IENGSV9UVkFMX0ZDRklfQ09ERSkgJiYgY3B1X3N1cHBvcnRzX2luZGly ZWN0X2JyX2xwX2luc3RyKCkpIHx8Cj4+ICsgICAgICAgICAgICAgICAoKHR2YWwgPT0gQ0ZJX1RW QUxfQkNGSV9DT0RFKSAmJiBjcHVfc3VwcG9ydHNfc2hhZG93X3N0YWNrKCkpKSB7Cj4+ICsgICAg ICAgICAgICAgICBkb190cmFwX2Vycm9yKHJlZ3MsIFNJR1NFR1YsIFNFR1ZfQ1BFUlIsIHJlZ3Mt PmVwYywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9vcHMg LSBjb250cm9sIGZsb3cgdmlvbGF0aW9uIik7Cj4+ICsgICAgICAgICAgICAgICByZXQgPSB0cnVl Owo+PiArICAgICAgIH0KPj4gKwo+PiArICAgICAgIHJldHVybiByZXQ7Cj4+ICt9Cj4+ICsvKgo+ PiArICogc29mdHdhcmUgY2hlY2sgZXhjZXB0aW9uIGlzIGRlZmluZWQgd2l0aCByaXNjLXYgY2Zp IHNwZWMuIFNvZnR3YXJlIGNoZWNrCj4+ICsgKiBleGNlcHRpb24gaXMgcmFpc2VkIHdoZW46LQo+ PiArICogYSkgQW4gaW5kaXJlY3QgYnJhbmNoIGRvZXNuJ3QgbGFuZCBvbiA0IGJ5dGUgYWxpZ25l ZCBQQyBvciBgbHBhZGAKPj4gKyAqICAgIGluc3RydWN0aW9uIG9yIGBsYWJlbGAgdmFsdWUgcHJv Z3JhbW1lZCBpbiBgbHBhZGAgaW5zdHIgZG9lc24ndAo+PiArICogICAgbWF0Y2ggd2l0aCB2YWx1 ZSBzZXR1cCBpbiBgeDdgLiByZXBvcnRlZCBjb2RlIGluIGB4dHZhbGAgaXMgMi4KPj4gKyAqIGIp IGBzc3BvcGNoa2AgaW5zdHJ1Y3Rpb24gZmluZHMgYSBtaXNtYXRjaCBiZXR3ZWVuIHRvcCBvZiBz aGFkb3cgc3RhY2sgKHNzcCkKPj4gKyAqICAgIGFuZCB4MS94NS4gcmVwb3J0ZWQgY29kZSBpbiBg eHR2YWxgIGlzIDMuCj4+ICsgKi8KPgo+SXQgc2VlbXMgbGlrZSB0aGlzIHRyYXAgaGFuZGxlciBk b2VzIG5vdCBmb2xsb3cgZ2VuZXJpYyBlbnRyeS4gVGhpcwo+Y2FuIGNhdXNlIHByb2JsZW1zIGFz IHNpZ25hbCBkZWxpdmVyeSBpcyBkb25lIGluCj5pcnFlbnRyeV9leGl0X3RvX3VzZXJfbW9kZSgp LiBQbGVhc2UgcmVmZXJlbmNlIHRoZSBjb21taXQgZjBiZGRmNTA1ODZkCj4oInJpc2N2OiBlbnRy eTogQ29udmVydCB0byBnZW5lcmljIGVudHJ5IikgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgpBY2su IHdpbGwgZml4IGl0LgoKPgo+PiArYXNtbGlua2FnZSBfX3Zpc2libGUgX190cmFwX3NlY3Rpb24g dm9pZCBkb190cmFwX3NvZnR3YXJlX2NoZWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+PiArewo+ PiArICAgICAgIGlmICh1c2VyX21vZGUocmVncykpIHsKPj4gKyAgICAgICAgICAgICAgIC8qIG5v dCBhIGNmaSB2aW9sYXRpb24sIHRoZW4gbWVyZ2UgaW50byBmbG93IG9mIHVua25vd24gdHJhcCBo YW5kbGVyICovCj4+ICsgICAgICAgICAgICAgICBpZiAoIWhhbmRsZV91c2VyX2NmaV92aW9sYXRp b24ocmVncykpCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGRvX3RyYXBfdW5rbm93bihyZWdz KTsKPj4gKyAgICAgICB9IGVsc2Ugewo+PiArICAgICAgICAgICAgICAgLyogc3cgY2hlY2sgZXhj ZXB0aW9uIGNvbWluZyBmcm9tIGtlcm5lbCBpcyBhIGJ1ZyBpbiBrZXJuZWwgKi8KPj4gKyAgICAg ICAgICAgICAgIGRpZShyZWdzLCAiS2VybmVsIEJVRyIpOwo+PiArICAgICAgIH0KPj4gK30KPj4g Kwo+PiAgI2lmZGVmIENPTkZJR19NTVUKPj4gIGFzbWxpbmthZ2UgX192aXNpYmxlIG5vaW5zdHIg dm9pZCBkb19wYWdlX2ZhdWx0KHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+PiAgewo+PiAtLQo+PiAy LjQ1LjAKPj4KPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPj4gbGludXgtcmlzY3YgbWFpbGluZyBsaXN0Cj4+IGxpbnV4LXJpc2N2QGxpc3RzLmlu ZnJhZGVhZC5vcmcKPj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1yaXNjdgo+Cj5DaGVlcnMsCj5BbmR5CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlz Y3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==