From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (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 443EA2FDC29 for ; Tue, 2 Dec 2025 07:43:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764661394; cv=none; b=OQ6X2MHfNZhx3LxxCqt2SaDqJSQlWiu3BfIZtwvFiKAne5EBcGndKcPlg4XQPcsxU5ZevRUvv4yi2bdc4yPVzbdlCpe1/8IRNtiotPo1qhggGaf/S18NO9iPf0nBSgKb4VtL1dnm9HoiFe/0cAz6TxkSaFrJ0wOQMb/e+08Btr0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764661394; c=relaxed/simple; bh=a3t94ceOoJuB33sy08ef4W2g4TxLtW5T77DaKE/hyHE=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=Q0q27BLna66PP33L/YFfEPOtoLrRxtzrtJXV5DN27BlnH+Im7dH8hrn9eFHcNUHgLc1a8qOk4ozjpMtZSSeuTmaPsT9FHAEtXfOPPyNSGwmjofG5AYDB5xyQpRsoKqUHLqvg/DghqT5MQprFvlJT1Z6NwuxXFc6NCqnn2HG4RFU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XtNpQOs7; arc=none smtp.client-ip=209.85.216.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XtNpQOs7" Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-3436a97f092so6543171a91.3 for ; Mon, 01 Dec 2025 23:43:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764661392; x=1765266192; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=d8G9pjf5bogZRMXI454p/BxPruKC8VaqfMjWG47FH+4=; b=XtNpQOs7ev9HBtLsXaPN8p2D8qtsC/o8y4bJiKd477fdA8LZEK+9dwr+wxjlxp9fEC r0bBZSsCX1kG2mZQBc7XlK61q5W/Nn4fkTPzs+XpvD+LD5X3xgjv5awXLj0OlTvqJXPJ kW4vSnajVi2EMgaNuOkLBYanLYg5dEXdJfM55Bw5YOjdQmi3kfIPVerzW+Kbf1YlUxEL jbeb7IHLStjUDOB6/oiurE/HQaxMv4MQLZnp91w7gZDWyWscdH0Ytu8bprl43z5z37dq oo4noFRV5fQbBn7zejQpyBxcLjYtc8SO68zCjNnkF/7Q8vfod3fT7dwXq60Irp1FOxG7 voWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764661392; x=1765266192; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=d8G9pjf5bogZRMXI454p/BxPruKC8VaqfMjWG47FH+4=; b=SLdDaQQ+snZNLvA55TX8dY9OnivXTZw4+M7eHyiWNJFxzSy8rNx9YImpvydzOkCRxM vKBLj5kOwShZ0gxaMh9Rck928wAdd6P++zWhHiYM2HZ7VGZrhsKLbwwbSL2T5KyssHhA kUeHwF7wnmUdZNLX5Jl/lFdqWhzEJIgXrBjY44rOSYxtumBFVDVnWvxESjN9Bo4NfQNX ER57HoqbYVXpRhdGWnTMivttBzI+uGYgz2O0bf6tFIOJEgQo1VBL8SjV+KuV1Epkhk1y PvrHBCUPlr6Ebhd6AWYM8PoTyCdFfsZXftd0nn7IXgdrb7T8m7qM9ia4ydlV9vvLeISZ 4vYw== X-Forwarded-Encrypted: i=1; AJvYcCVqujWmjqTY8msU7vUIo0hz/y8C2h38/OzerchqhSeODnZTYojHsAS/UbSXj7tYixJr8Elj972Ku1+m+ds=@vger.kernel.org X-Gm-Message-State: AOJu0YzBgTF5dcV8ztZjI4D6rru9tdw9NQNWXy5q0yvWQflfy0YjYn5S MD3KjBWoiG+3jMjtG1AGDkP2kC9ffW0N8ftQ0svTwIcifbxMl5nalcFg X-Gm-Gg: ASbGncv2MtkwuezaMc5O2GcwkTpQ33lqX1fnPDEvymkBNy+tc0a4wCvLoJ4owZaYZfN KRhwToSMYBA8BKEAjEf9TPq7dPENI7ZRHFoiT2H9kOI+Ga+z4Bso1W4pBhvdps1w/SCLCY/FxhW VZtQ5aUjyPjkDlmHcP5nXk1Wt5G1S8cMic/3OyNNdhWJCqsd4geIAF/X3zb38dMTqxVHxYlj0zY VUuQD3rmVdZqCDmWDKp5j6s7Sa2OLbYu4GD/FCoRqOGCiWkqxFwnpaYYQQ4JTYj/ITAf85qv5zJ 9lG5vqcFLa5fITeOSx4v+33y54CQv3QJCT9yTFt6ytOf2mhiZ5xGFGaIJyJhFsMB5P7Bte6Bl0L OPfS29BKSwTqXQG5EKkCHywM+7iNLii3kl5364l8G3Vy7iCx61KOl13N+7ZjXiQn5Sl6cGb+D3N 5j0yR5LsEmuo7FdbpujB21BiC++RtbkJ3OSQ== X-Google-Smtp-Source: AGHT+IHy0IHWMNMcVVl7RYL1kWw8HNO3RGsrxL5xXTCokFcTdZ1HWh/lY16u/9TtGnVUj+ogZnplhA== X-Received: by 2002:a17:90b:4d8c:b0:340:f422:fc76 with SMTP id 98e67ed59e1d1-3475eacec4cmr27470696a91.0.1764661392408; Mon, 01 Dec 2025 23:43:12 -0800 (PST) Received: from mao-OptiPlex-3050.hz.ali.com ([47.246.101.226]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3476a7c2ce5sm18970545a91.14.2025.12.01.23.43.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Dec 2025 23:43:11 -0800 (PST) From: maohan4761@gmail.com To: pjw@kernel.org, palmer@dabbelt.com Cc: guoren@kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Mao Han Subject: [PATCH 0/1] riscv: Optimize signal handling with sum enabled accesses Date: Tue, 2 Dec 2025 15:43:02 +0800 Message-Id: <20251202074303.81485-1-maohan4761@gmail.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Mao Han Currently, the signal function frequently toggles the SUM bit to control user-space access within __get_user/__put_user. void __user *sc_ext_ptr = &sc->sc_extdesc.hdr; ffffffff80005904: 44898a13 addi s4,s3,1096 err |= __get_user(magic, &head->magic); ffffffff80005908: 8752 mv a4,s4 ffffffff8000590a: 00000013 nop ffffffff8000590e: 1004a073 csrs sstatus,s1 ffffffff80005912: 4781 li a5,0 ffffffff80005914: 4310 lw a2,0(a4) ffffffff80005916: 2601 sext.w a2,a2 ffffffff80005918: 1004b073 csrc sstatus,s1 err |= __get_user(size, &head->size); ffffffff8000591c: 004a0693 addi a3,s4,4 ffffffff80005920: 00000013 nop ffffffff80005924: 1004a073 csrs sstatus,s1 ffffffff80005928: 4701 li a4,0 ffffffff8000592a: 428c lw a1,0(a3) ffffffff8000592c: 86ae mv a3,a1 ffffffff8000592e: 2581 sext.w a1,a1 ffffffff80005930: 1004b073 csrc sstatus,s1 ffffffff80005934: 8fd9 or a5,a5,a4 On modern out-of-order processors, frequent CSR (Control and Status Register) operations introduce pipeline stalls, significantly degrading performance. This patch attempts to enable the SUM bit only once at the beginning of rt_sigreturn and setup_rt_frame, keep it enabled throughout frame handling, and directly access user-space memory without repeatedly toggling the SUM bit. This reduces the overhead caused by frequent CSR state changes. Lmbench signal-related benchmarks show approximately a 20% performance improvement. Mao Han (1): riscv: Optimize signal handling with sum enabled accesses arch/riscv/include/asm/uaccess.h | 75 ++++++++++++++++++++++++++++++++ arch/riscv/kernel/signal.c | 74 +++++++++++++++++++------------ 2 files changed, 121 insertions(+), 28 deletions(-) -- 2.25.1