From patchwork Fri Aug 30 15:49:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Holland X-Patchwork-Id: 1979099 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=1iG3ne4R; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=sifive.com header.i=@sifive.com header.a=rsa-sha256 header.s=google header.b=LgLc7/Rj; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WwMzH0M5cz1yfX for ; Sat, 31 Aug 2024 01:49:47 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=C7EwfSE5TpTpAQlnDQ0crEo68SPfGPYhKB3YAQ6WOyw=; b=1iG3ne4RTxmAmh nl9nOSP3GrFdAe05qlsB1WN402N2S02/6MOCnofhudtzjYlWj3WzEV7xdc9ozGZnqyzDTRs6x9GT3 AQrfmxX4Jod8tmRbyuXeSrgSZ1GjKj/2vdMJXt6XfKn8LKWHeg/ApSkQGE9GFzZo56j2JNiJil5MY r2MiTBdjSJneLyvuyz1/UnCyz6YEagbb4lerTZvSMiLFqtO47yI11UXz5XebcxeDcVO2JsIegUitE +HEpfPtr1gT7tMj3wcWAlauuKZvMldnlL5YKw226SnCWr8c4WXdavWteilZ+tF3SSyYlyU1HkErpN fahLPepQTKNBcq7EcaPQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sk3sa-00000006sX9-1etx; Fri, 30 Aug 2024 15:49:40 +0000 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sk3sY-00000006sW0-179p for opensbi@lists.infradead.org; Fri, 30 Aug 2024 15:49:39 +0000 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-7142448aaf9so1411734b3a.1 for ; Fri, 30 Aug 2024 08:49:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1725032977; x=1725637777; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2WIU+DJc6uB+TzgywiqDGtdXdFMer9BqnSJkmlxVj9g=; b=LgLc7/RjXF3cqCPRh932q1TXqFsO7SwRGZC9fPHwYsXsCPrC8ZlD5Ix6k0Oz2UJVpg +NF8+6bb3mhme8kWtAhl46PfuFBReq7TsBCN37zE/3klQ179NwQYpQfkPDo9O/pxIBYB 9ot+sJgZt/w4J+H4nUUVP6I6y7cJLVWxYc8DNbVXZpUHM7Swvw15GRZDA3cQRdikGcy0 59BtPeZuHxwCkxSfbdaDcxTgsUOowQJF5Rg/9NbIztfNDRD5KyfclH1Yf62hoOjOU/7e Dv2KBq0rFGcJA7shHDe5OmoJH9wE5q5KPc/24rrjavZdw5sCy/T5n9gV/k7HTV4zGVq4 7egQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725032977; x=1725637777; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2WIU+DJc6uB+TzgywiqDGtdXdFMer9BqnSJkmlxVj9g=; b=mUHWLU724IVhNbp5nAwK6wyLogMC75rrG+ujygBiGoc+XaPzIyuFhByT7wB6dsaDEQ IDOYR7XIWs12GhB2RnoFolVNJvWuG+GPrUngE+1g5l6dVk2qDmLk6+LYKKW8eN2TkPnZ jE43f4g5mBzFAv+t/NDjQd9YTQvAJDk+WYpLmSKkQDBCAxP/+02ovRELXAhr0pL+nW7t 9eO4SvY6U9lfoUJ1nOL+BZp1j93/dLbUrICm6JGzB5JhuKqKIeSpVEEVwjgSbkW+ujU3 VsgEUP9C/762ra9DuIM1xUKw+olcB+d7DGbxCfpcDtFOS/KfnEE1K1Wdw6jIR+V4SGI9 pQvg== X-Gm-Message-State: AOJu0Yxb6O4G/VLTDyVstnRK/epNnIB3hOU4PjOUu+qQOOaZaUAWvILT odSRH9y0DmevXcvCjUH+N+0CwAPpl28a8hfkr9C4XdM/f4yOJGSzBTETvjOYheHZYLfCJCgjbig urEUE7MBNu8AWd3DfUYE/afXeNAs87SxH91HKWAJ/cPnDIV2ogS7y70lZrnEz1tEq7cOXqFsJVe qUUPXFS32T3g5UoipFdSv+qkdiaSi4QHovDGknQX2OF1rOuN7WWto= X-Google-Smtp-Source: AGHT+IHNUNT/iLfWREHMu8UR8GuusrgMCbiSgCOET7h9mWZ8caIY6z6stpQ4SxyfyJpjm2EX9eS9ig== X-Received: by 2002:a05:6a00:85a5:b0:714:2336:fa91 with SMTP id d2e1a72fcca58-715e1046500mr10282381b3a.14.1725032976954; Fri, 30 Aug 2024 08:49:36 -0700 (PDT) Received: from sw06.internal.sifive.com ([4.53.31.132]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-715e569e793sm2920817b3a.131.2024.08.30.08.49.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Aug 2024 08:49:36 -0700 (PDT) From: Samuel Holland To: opensbi@lists.infradead.org Subject: [PATCH 04/12] lib: sbi_sse: Cache the event's target hart index Date: Fri, 30 Aug 2024 08:49:08 -0700 Message-ID: <20240830154929.3971790-5-samuel.holland@sifive.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240830154929.3971790-1-samuel.holland@sifive.com> References: <20240830154929.3971790-1-samuel.holland@sifive.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240830_084938_325549_2D2D7FCF X-CRM114-Status: GOOD ( 11.60 ) X-Spam-Score: -2.1 (--) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: This avoids needing to map the target hartid to a hart index when enabling or disabling an event, and provides a net code size reduction. Signed-off-by: Samuel Holland --- Content analysis details: (-2.1 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:433 listed in] [list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 T_SCC_BODY_TEXT_LINE No description available. X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org This avoids needing to map the target hartid to a hart index when enabling or disabling an event, and provides a net code size reduction. Signed-off-by: Samuel Holland --- lib/sbi/sbi_sse.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/sbi/sbi_sse.c b/lib/sbi/sbi_sse.c index 52172fcd..365a878f 100644 --- a/lib/sbi/sbi_sse.c +++ b/lib/sbi/sbi_sse.c @@ -108,6 +108,7 @@ assert_field_offset(interrupted.a7, SBI_SSE_ATTR_INTERRUPTED_A7); struct sbi_sse_event { struct sbi_sse_event_attrs attrs; uint32_t event_id; + u32 hartindex; const struct sbi_sse_cb_ops *cb_ops; struct sbi_dlist node; }; @@ -197,7 +198,7 @@ static bool sse_event_is_local(struct sbi_sse_event *e) */ static struct sse_hart_state *sse_get_hart_state(struct sbi_sse_event *e) { - struct sbi_scratch *s = sbi_hartid_to_scratch(e->attrs.hartid); + struct sbi_scratch *s = sbi_hartindex_to_scratch(e->hartindex); return sse_get_hart_state_ptr(s); } @@ -392,6 +393,7 @@ static void sse_event_set_attr(struct sbi_sse_event *e, uint32_t attr_id, break; case SBI_SSE_ATTR_PREFERRED_HART: e->attrs.hartid = val; + e->hartindex = sbi_hartid_to_hartindex(val); sse_event_invoke_cb(e, set_hartid_cb, val); break; @@ -1017,6 +1019,7 @@ int sbi_sse_unregister(uint32_t event_id) static void sse_event_init(struct sbi_sse_event *e, uint32_t event_id) { e->event_id = event_id; + e->hartindex = current_hartindex(); e->attrs.hartid = current_hartid(); /* Declare all events as injectable */ e->attrs.status |= BIT(SBI_SSE_ATTR_STATUS_INJECT_OFFSET);