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 7D086C77B72 for ; Mon, 17 Apr 2023 20:00:52 +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-Transfer-Encoding:Content-Type: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=ExCaEp0ePFLkOUROuzYw6RUKlS4vfHcTxE9TdTBvdek=; b=g/FqSJcPf6avjp jX3nzHbWDMmKQ5pVSL6S2kAdayVbMdxF/E3dfr1k9NwQk4VlTf8XC76GwHBLs2XOt8xe43JI57K4j DPAYZzaZqI9BTDFPuqv7VVYeEh8HR//s4uwb/Q04Sv3GEAZR3eIlYSeBYvQnZRg1efF5jhcLd1jhu yLR3dacEy1+T5VGYikKube2AxaewxPTa0GHmZOZ8bABrJYVUfB6wBzP6oAlUlPojyx+paWQbMWMY7 V8wje68b3j+L4P9IkQlojJQ9a+9WPsqk7Aa02+MkJFXa7LsLi05n3Wvz1WKEU1adfX9xpPoDT9vLU hy4hFuwzk28IimsopCDg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1poV1n-00HTqy-0F; Mon, 17 Apr 2023 20:00:43 +0000 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1poV1i-00HTpS-0y for linux-riscv@lists.infradead.org; Mon, 17 Apr 2023 20:00:41 +0000 Received: by mail-pj1-x1033.google.com with SMTP id v9so32296857pjk.0 for ; Mon, 17 Apr 2023 13:00:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681761635; x=1684353635; 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=WxaNTv+G45R6AGfd4FQ/tQ0s93uY3PGqLlYvVLo3WBA=; b=5fA9inL6WwOrSojtYS4LJaO0732iVo+lr4Xmd3CqVuRbbEnrOFBJTzb4ZJtAzEeEg9 PKW4CVDorREYU3FhrrnYFIumQy/wkTiGY7BQ4bLCSy6YlYac1nIezMUhfVs7cdXxAYaI DZHMD7a0cXc3r0NXJcMStwYc/x4tLLtsLDzMv+0iVpiXhnYww435S80etzHK/jYM21M+ q74F7qeGLEcXAaxIB3r7kUTgMwZezh+Tv1jGy/1XNb2jS3Y5cUUs5jxkV6bCvxhNqMP+ OmKuUXT3gjGPOGAnqq3FtgVBTQsUfeGodZRZy76X5eM3JqG5m7WH2ohpw/Dg7FjsNlxV 93Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681761635; x=1684353635; 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=WxaNTv+G45R6AGfd4FQ/tQ0s93uY3PGqLlYvVLo3WBA=; b=Q/d5tQyyZ5QGMWQQMwMC/hoUNpITeTAwfOnJSlNnqi/JPiyrgXhF+uJar66NNdMEZ5 e5QR+P5Kc6g3S7jCAxQJADwvRgAvsRR6nW1sY3PaVQY0YxeEFlt/6wstgR6TZ2k3uH29 KkjKfqPzqsm+ChiL9Dtpy0B1S4Z+j+3RvIIThAfCvBWCtaAORrCrTKsLf4Z+NZXaQtNL atUlkq7OWoSq2BCfEL+Wamy6lt12ovjQmpUpsli3ZLDg4xxEEpbAHduWCFr8XFrXyAK8 GpU4564U+u5/F/Im25PTza61kzUB1SGC9qa3C2nKAHw+UozjeOGSKpqGALVZCWkxJY7+ GiYg== X-Gm-Message-State: AAQBX9dVieXeOeDznjbtxCHPcRFlVQbx+0TzFiVQTiF3AiklggyPdQWs gHVrdImfolbEj8ggUnYBj37myw== X-Google-Smtp-Source: AKy350YSEpd+CB+RkSnnzxQ1QIpKvO2z7awmJ3Gud0PHw4ibgRYlQKUXur6RflH0L3ocMoEuOky//w== X-Received: by 2002:a17:903:1ce:b0:1a0:50bd:31bf with SMTP id e14-20020a17090301ce00b001a050bd31bfmr116558plh.32.1681761635097; Mon, 17 Apr 2023 13:00:35 -0700 (PDT) Received: from x1 ([2607:fb90:33a8:2783:544f:e61d:6278:b35f]) by smtp.gmail.com with ESMTPSA id e12-20020a170902d38c00b001a1d4a985eesm8081487pld.228.2023.04.17.13.00.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Apr 2023 13:00:34 -0700 (PDT) Date: Mon, 17 Apr 2023 13:04:11 -0700 From: Drew Fustini To: Conor Dooley Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Atish Patra , =?iso-8859-1?Q?Bj=F6rn_T=F6pel?= , James Morse , Kornel =?utf-8?Q?Dul=C4=99ba?= , Adrien Ricciardi Subject: Re: [RFC PATCH 2/2] RISC-V: Add support for sqoscfg CSR Message-ID: References: <20230410043646.3138446-1-dfustini@baylibre.com> <20230410043646.3138446-3-dfustini@baylibre.com> <20230417-culinary-capillary-4f1efd496691@spud> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230417-culinary-capillary-4f1efd496691@spud> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230417_130038_557637_683C0BB6 X-CRM114-Status: GOOD ( 50.90 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gTW9uLCBBcHIgMTcsIDIwMjMgYXQgMDg6MTA6MjBQTSArMDEwMCwgQ29ub3IgRG9vbGV5IHdy b3RlOgo+IEhleSBEcmV3LAo+IAo+IChEb24ndCBnZXQgeW91ciBob3BlcyB1cCwgSSBkb24ndCBo YXZlIGFueXRoaW5nIHJlYWxseSBtZWFuaW5nZnVsIHRvCj4gY29udHJpYnV0ZSwgc29ycnkuKQoK SGksIHRoYW5rcyBmb3IgdGhlIGZlZWRiYWNrLi4uCgo+IAo+IE9uIFN1biwgQXByIDA5LCAyMDIz IGF0IDA5OjM2OjQ2UE0gLTA3MDAsIERyZXcgRnVzdGluaSB3cm90ZToKPiA+IEFkZCBzdXBwb3J0 IGZvciB0aGUgc3Fvc2NmZyBDU1IgZGVmaW5lZCBpbiB0aGUgU3Nxb3NpZCBJU0EgZXh0ZW5zaW9u Cj4gPiAoU3VwZXJ2aXNvci1tb2RlIFF1YWxpdHkgb2YgU2VydmljZSBJRCkuIFRoZSBDU1IgY29u dGFpbnMgdHdvIGZpZWxkczoKPiA+IAo+ID4gICAtIFJlc291cmNlIENvbnRyb2wgSUQgKFJDSUQp IHVzZWQgZGV0ZXJtaW5lIHJlc291cmNlIGFsbG9jYXRpb24KPiA+ICAgLSBNb25pdG9yaW5nIENv dW50ZXIgSUQgKE1DSUQpIHVzZWQgdG8gdHJhY2sgcmVzb3VyY2UgdXNhZ2UKPiA+IAo+ID4gUmVx dWVzdHMgZnJvbSBhIGhhcnQgdG8gc2hhcmVkIHJlc291cmNlcyBsaWtlIGNhY2hlIHdpbGwgYmUg dGFnZ2VkIHdpdGgKPiA+IHRoZXNlIElEcy4gVGhpcyBhbGxvd3MgdGhlIHVzYWdlIG9mIHNoYXJl ZCByZXNvdXJjZXMgdG8gYmUgYXNzb2NpYXRlZAo+ID4gd2l0aCB0aGUgdGFzayBjdXJyZW50bHkg cnVubmluZyBvbiB0aGUgaGFydC4KPiA+IAo+ID4gQSBzcW9zY2ZnIGZpZWxkIGlzIGFkZGVkIHRv IHRocmVhZF9zdHJ1Y3QgYW5kIGhhcyB0aGUgc2FtZSBmb3JtYXQgYXMgdGhlCj4gPiBzcW9zY2Zn IENTUi4gVGhpcyBhbGxvd3MgdGhlIHNjaGVkdWxlciB0byBzZXQgdGhlIGhhcnQncyBzcW9zY2Zn IENTUiB0bwo+ID4gY29udGFpbiB0aGUgUkNJRCBhbmQgTUNJRCBmb3IgdGhlIHRhc2sgdGhhdCBp cyBiZWluZyBzY2hlZHVsZWQgaW4uIFRoZQo+ID4gc3Fvc2NmZyBDU1IgaXMgb25seSB3cml0dGVu IHRvIGlmIHRoZSB0aHJlYWRfc3RydWN0LnNxb3NjZmcgaXMgZGlmZmVyZW50Cj4gPiBmcm9tIHRo ZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBDU1IuCj4gPiAKPiA+IEEgcGVyLWNwdSB2YXJpYWJsZSBj cHVfc3Fvc2NmZyBpcyB1c2VkIHRvIG1pcnJvciB0aGF0IHN0YXRlIG9mIHRoZSBDU1IuCj4gPiBU aGlzIGlzIGJlY2F1c2UgYWNjZXNzIHRvIEwxRCBob3QgbWVtb3J5IHNob3VsZCBiZSBzZXZlcmFs IHRpbWVzIGZhc3Rlcgo+ID4gdGhhbiBhIENTUiByZWFkLiBBbHNvLCBpbiB0aGUgY2FzZSBvZiB2 aXJ0dWFsaXphdGlvbiwgYWNjZXNzZXMgdG8gdGhpcwo+ID4gQ1NSIGFyZSB0cmFwcGVkIGluIHRo ZSBoeXBlcnZpc29yLgo+ID4gCj4gPiBMaW5rOiBodHRwczovL2dpdGh1Yi5jb20vcmlzY3Ytbm9u LWlzYS9yaXNjdi1jbXFyaS9ibG9iL21haW4vcmlzY3YtY2JxcmkucGRmCj4gPiBDby1kZXZlbG9w ZWQtYnk6IEtvcm5lbCBEdWzEmWJhIDxtaW5kYWxAc2VtaWhhbGYuY29tPgo+ID4gU2lnbmVkLW9m Zi1ieTogS29ybmVsIER1bMSZYmEgPG1pbmRhbEBzZW1paGFsZi5jb20+Cj4gPiBTaWduZWQtb2Zm LWJ5OiBEcmV3IEZ1c3RpbmkgPGRmdXN0aW5pQGJheWxpYnJlLmNvbT4KPiA+IC0tLQo+ID4gTm90 ZTogdGhlIFNzcW9zaWQgZXh0ZW5zaW9uIGFuZCBDQlFSSSBzcGVjIGFyZSBzdGlsbCBpbiBhIGRy YWZ0IHN0YXRlLgo+ID4gVGhlIENTUiBhZGRyZXNzIG9mIHNxb3NjZmcgaXMgbm90IGZpbmFsLgo+ ID4gCj4gPiBDaGFuZ2VzIGZyb20gdGhlIG9yaWdpbmFsIHBhdGNoIFsxXToKPiA+IC0gUmViYXNl IGZyb20gNi4wIHRvIDYuMwo+ID4gLSBTaW1wbGlmeSBwZXItY3B1IHZhcmlhYmxlIGZyb20gc3Ry dWN0IHRvIHUzMiB3aXRoIGp1c3Qgc3Fvc2NmZwo+ID4gLSBNb3ZlIHFvc2NmZyB0byB0aHJlYWRf c3RydWN0IGluIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKPiA+ICAgVGhpcyBh dm9pZHMgY2hhbmdpbmcgdGFza19zdHJ1Y3QgaW4gL2luY2x1ZGUvbGludXgvc2NoZWQuaAo+ID4g LSBSZXdvcmQgY29tbWl0IGRlc2NyaXB0aW9uCj4gPiAtIFJld29yZCBLY29uZmlnIGRlc2NyaXB0 aW9uCj4gPiAKPiA+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vcml2b3NpbmMvbGludXgvY29tbWl0 Lzg0NTRiNzkzYTYyYmUyMWQzOWU1ODI2ZWY1MjQxZGZhMDYxOThiYTkKPiA+IAo+ID4gIGFyY2gv cmlzY3YvS2NvbmZpZyAgICAgICAgICAgICAgICAgfCAxOSArKysrKysrKysrKysrKwo+ID4gIGFy Y2gvcmlzY3YvaW5jbHVkZS9hc20vY3NyLmggICAgICAgfCAgOCArKysrKysKPiA+ICBhcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIHwgIDMgKysrCj4gPiAgYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS9xb3MuaCAgICAgICB8IDQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ ID4gIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmggfCAgMiArKwo+ID4gIDUgZmls ZXMgY2hhbmdlZCwgNzIgaW5zZXJ0aW9ucygrKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL3Fvcy5oCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2 L0tjb25maWcgYi9hcmNoL3Jpc2N2L0tjb25maWcKPiA+IGluZGV4IGNjMDJlYjllZWUxZi4uMDNm MjJiN2ZlMzRiIDEwMDY0NAo+ID4gLS0tIGEvYXJjaC9yaXNjdi9LY29uZmlnCj4gPiArKysgYi9h cmNoL3Jpc2N2L0tjb25maWcKPiA+IEBAIC00MTgsNiArNDE4LDI1IEBAIGNvbmZpZyBSSVNDVl9J U0FfU1ZOQVBPVAo+ID4gIAo+ID4gIAkgIElmIHlvdSBkb24ndCBrbm93IHdoYXQgdG8gZG8gaGVy ZSwgc2F5IFkuCj4gPiAgCj4gPiArY29uZmlnIFJJU0NWX0lTQV9TU1FPU0lECj4gPiArCWJvb2wg IlNzcW9zaWQgZXh0ZW5zaW9uIHN1cHBvcnQiCj4gPiArCWRlZmF1bHQgeQo+ID4gKwloZWxwCj4g PiArCSAgQWRkcyBzdXBwb3J0IGZvciB0aGUgU3Nxb3NpZCBJU0EgZXh0ZW5zaW9uIChTdXBlcnZp c29yLW1vZGUKPiA+ICsJICBRdWFsaXR5IG9mIFNlcnZpY2UgSUQpLgo+IAo+IENvdWxkIHlvdSBh ZGQgImxvbmcgZm9ybSIgdGV4dCBpbiBicmFja2V0cyBoZXJlIHRvIHRoZSBib29sIGxpbmUsIGEg bGE6Cj4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L2xpbnV4LXJpc2N2L3Bh dGNoLzIwMjMwNDA1LXB1Y2tlci1jb2d3aGVlbC0zYTk5OWE5NGEyZjJAd2VuZHkvCgpUaGFua3Ms IHRoYXQgaXMgYSBnb29kIGlkZWEuIEl0IHdvdWxkIG1ha2UgaXQgZWFzaWVyIGZvciB0aGUgcGVy c29uCnVzaW5nIG1lbnVjb25maWcgYXMgdGhleSB3b24ndCBoYXZlIHRvIGFjY2VzcyB0aGUgaGVs cCBzY3JlZW4ganVzdCB0bwpzZWUgd2hhdCB0aGUgYWNyb255bSBzdGFuZHMgZm9yLgoKPiA+ICsK PiA+ICsJICBTc3Fvc2lkIGRlZmluZXMgdGhlIHNxb3NjZmcgQ1NSIHdoaWNoIGFsbG93cyB0aGUg c3lzdGVtIHRvIHRhZwo+ID4gKwkgIHRoZSBydW5uaW5nIHByb2Nlc3Mgd2l0aCBSQ0lEIChSZXNv dXJjZSBDb250cm9sIElEKSBhbmQgTUNJRAo+ID4gKwkgIChNb25pdG9yaW5nIENvdW50ZXIgSUQp LiBUaGUgUkNJRCBpcyB1c2VkIGRldGVybWluZSByZXNvdXJjZQo+ID4gKwkgIGFsbG9jYXRpb24u IFRoZSBNQ0lEIGlzIHVzZWQgdG8gdHJhY2sgcmVzb3VyY2UgdXNhZ2UgaW4gZXZlbnQKPiA+ICsJ ICBjb3VudGVycy4KPiA+ICsKPiA+ICsJICBGb3IgZXhhbXBsZSwgYSBjYWNoZSBjb250cm9sbGVy IG1heSB1c2UgdGhlIFJDSUQgdG8gYXBwbHkgYQo+ID4gKwkgIGNhY2hlIHBhcnRpdGlvbmluZyBz Y2hlbWUgYW5kIHVzZSB0aGUgTUNJRCB0byB0cmFjayBob3cgbXVjaAo+ID4gKwkgIGNhY2hlIGEg cHJvY2Vzcywgb3IgYSBncm91cCBvZiBwcm9jZXNzZXMsIGlzIHVzaW5nLgo+ID4gKwo+ID4gKwkg IElmIHlvdSBkb24ndCBrbm93IHdoYXQgdG8gZG8gaGVyZSwgc2F5IFkuCj4gPiArCj4gPiAgY29u ZmlnIFJJU0NWX0lTQV9TVlBCTVQKPiA+ICAJYm9vbCAiU1ZQQk1UIGV4dGVuc2lvbiBzdXBwb3J0 Igo+ID4gIAlkZXBlbmRzIG9uIDY0QklUICYmIE1NVQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcmlz Y3YvaW5jbHVkZS9hc20vY3NyLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Nzci5oCj4gPiBp bmRleCA3YzJiOGNkYjdiNzcuLjE3ZDA0YTBjYWNkNiAxMDA2NDQKPiA+IC0tLSBhL2FyY2gvcmlz Y3YvaW5jbHVkZS9hc20vY3NyLmgKPiA+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vY3Ny LmgKPiA+IEBAIC01OSw2ICs1OSwxMyBAQAo+ID4gICNkZWZpbmUgU0FUUF9BU0lEX01BU0sJX0FD KDB4RkZGRiwgVUwpCj4gPiAgI2VuZGlmCj4gPiAgCj4gPiArLyogU1FPU0NGRyBmaWVsZHMgKi8K PiA+ICsjZGVmaW5lIFNRT1NDRkdfUkNJRF9NQVNLCV9BQygweDAwMDAwRkZGLCBVTCkKPiA+ICsj ZGVmaW5lIFNRT1NDRkdfTUNJRF9NQVNLCVNRT1NDRkdfUkNJRF9NQVNLCj4gPiArI2RlZmluZSBT UU9TQ0ZHX01DSURfU0hJRlQJMTYKPiA+ICsjZGVmaW5lIFNRT1NDRkdfTUFTSwkJKChTUU9TQ0ZH X01DSURfTUFTSyA8PCBTUU9TQ0ZHX01DSURfU0hJRlQpIHwgXAo+ID4gKwkJCQkgIFNRT1NDRkdf UkNJRF9NQVNLKQo+ID4gKwo+ID4gIC8qIEV4Y2VwdGlvbiBjYXVzZSBoaWdoIGJpdCAtIGlzIGFu IGludGVycnVwdCBpZiBzZXQgKi8KPiA+ICAjZGVmaW5lIENBVVNFX0lSUV9GTEFHCQkoX0FDKDEs IFVMKSA8PCAoX19yaXNjdl94bGVuIC0gMSkpCj4gPiAgCj4gPiBAQCAtMjQ1LDYgKzI1Miw3IEBA Cj4gPiAgI2RlZmluZSBDU1JfU1RWQUwJCTB4MTQzCj4gPiAgI2RlZmluZSBDU1JfU0lQCQkJMHgx NDQKPiA+ICAjZGVmaW5lIENTUl9TQVRQCQkweDE4MAo+ID4gKyNkZWZpbmUgQ1NSX1NRT1NDRkcJ CTB4MTgxCj4gPiAgCj4gPiAgI2RlZmluZSBDU1JfU1RJTUVDTVAJCTB4MTRECj4gPiAgI2RlZmlu ZSBDU1JfU1RJTUVDTVBICQkweDE1RAo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVk ZS9hc20vcHJvY2Vzc29yLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCj4g PiBpbmRleCA5NGEwNTkwYzY5NzEuLjcyNGIyYWEyNzMyZCAxMDA2NDQKPiA+IC0tLSBhL2FyY2gv cmlzY3YvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKPiA+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVk ZS9hc20vcHJvY2Vzc29yLmgKPiA+IEBAIC0zOSw2ICszOSw5IEBAIHN0cnVjdCB0aHJlYWRfc3Ry dWN0IHsKPiA+ICAJdW5zaWduZWQgbG9uZyBzWzEyXTsJLyogc1swXTogZnJhbWUgcG9pbnRlciAq Lwo+ID4gIAlzdHJ1Y3QgX19yaXNjdl9kX2V4dF9zdGF0ZSBmc3RhdGU7Cj4gPiAgCXVuc2lnbmVk IGxvbmcgYmFkX2NhdXNlOwo+ID4gKyNpZmRlZiBDT05GSUdfUklTQ1ZfSVNBX1NTUU9TSUQKPiA+ ICsJdTMyIHNxb3NjZmc7Cj4gPiArI2VuZGlmCj4gPiAgfTsKPiA+ICAKPiA+ICAvKiBXaGl0ZWxp c3QgdGhlIGZzdGF0ZSBmcm9tIHRoZSB0YXNrX3N0cnVjdCBmb3IgaGFyZGVuZWQgdXNlcmNvcHkg Ki8KPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Fvcy5oIGIvYXJjaC9y aXNjdi9pbmNsdWRlL2FzbS9xb3MuaAo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4 IDAwMDAwMDAwMDAwMC4uMjk3ZTdmYjY0ZDgwCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Fvcy5oCj4gPiBAQCAtMCwwICsxLDQwIEBACj4gPiArLyog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KPiA+ICsjaWZuZGVmIF9BU01fUklT Q1ZfUU9TX0gKPiA+ICsjZGVmaW5lIF9BU01fUklTQ1ZfUU9TX0gKPiA+ICsKPiA+ICsjaWZkZWYg Q09ORklHX1JJU0NWX0lTQV9TU1FPU0lECj4gPiArCj4gPiArI2luY2x1ZGUgPGxpbnV4L3NjaGVk Lmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L2p1bXBfbGFiZWwuaD4KPiA+ICsKPiA+ICsjaW5jbHVk ZSA8YXNtL2JhcnJpZXIuaD4KPiA+ICsjaW5jbHVkZSA8YXNtL2Nzci5oPgo+ID4gKyNpbmNsdWRl IDxhc20vaHdjYXAuaD4KPiA+ICsKPiA+ICsvKiBjYWNoZWQgdmFsdWUgb2Ygc3Fvc2NmZyBjc3Ig Zm9yIGVhY2ggY3B1ICovCj4gPiArc3RhdGljIERFRklORV9QRVJfQ1BVKHUzMiwgY3B1X3Nxb3Nj ZmcpOwo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIF9fcW9zX3NjaGVkX2luKHN0cnVjdCB0YXNrX3N0 cnVjdCAqdGFzaykKPiA+ICt7Cj4gPiArCXUzMiAqY3B1X3Nxb3NjZmdfcHRyID0gdGhpc19jcHVf cHRyKCZjcHVfc3Fvc2NmZyk7Cj4gPiArCXUzMiB0aHJlYWRfc3Fvc2NmZzsKPiA+ICsKPiA+ICsJ dGhyZWFkX3Nxb3NjZmcgPSBSRUFEX09OQ0UodGFzay0+dGhyZWFkLnNxb3NjZmcpOwo+ID4gKwo+ ID4gKwlpZiAodGhyZWFkX3Nxb3NjZmcgIT0gKmNwdV9zcW9zY2ZnX3B0cikgewo+ID4gKwkJKmNw dV9zcW9zY2ZnX3B0ciA9IHRocmVhZF9zcW9zY2ZnOwo+ID4gKwkJY3NyX3dyaXRlKENTUl9TUU9T Q0ZHLCB0aHJlYWRfc3Fvc2NmZyk7Cj4gPiArCX0KPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGlu bGluZSB2b2lkIHFvc19zY2hlZF9pbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCj4gCj4gInFv cyIgaXMgYSBwcmV0dHkgZ2VuZXJpYyBwcmVmaXgsIG5vPyBEbyB5b3UgdGhpbmsgd2UnZCBiZSBi ZXR0ZXIgb2ZmCj4gcHJlZml4aW5nIHRoaXMgKGFuZCBldmVyeSBvdGhlciBleHRlbnNpb24gcmVs YXRlZCB0aGluZykgd2l0aCBgcmlzY3ZfYD8KClRoYXQncyBhIGZhaXIgcG9pbnQuIE5vIGhhcm0g aW4gYWRkaW5nIHRoZSAncmlzY3ZfJyB0byBtYWtlIHRoZSBjb250ZXh0CmNsZWFyZXIuCgo+IAo+ ID4gK3sKPiA+ICsJaWYgKHJpc2N2X2hhc19leHRlbnNpb25fbGlrZWx5KFJJU0NWX0lTQV9FWFRf U1NRT1NJRCkpCj4gPiArCQlfX3Fvc19zY2hlZF9pbih0YXNrKTsKPiA+ICt9Cj4gPiArI2Vsc2UK PiA+ICsKPiA+ICtzdGF0aWMgaW5saW5lIHZvaWQgcW9zX3NjaGVkX2luKHN0cnVjdCB0YXNrX3N0 cnVjdCAqdGFzaykge30KPiA+ICsKPiA+ICsjZW5kaWYgLyogQ09ORklHX1JJU0NWX0lTQV9TU1FP U0lEICovCj4gPiArI2VuZGlmIC8qIF9BU01fUklTQ1ZfUU9TX0ggKi8KPiA+IGRpZmYgLS1naXQg YS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3N3aXRjaF90by5oIGIvYXJjaC9yaXNjdi9pbmNsdWRl L2FzbS9zd2l0Y2hfdG8uaAo+ID4gaW5kZXggNjBmOGNhMDFkMzZlLi43NWQ5YmZkNzY2YWYgMTAw NjQ0Cj4gPiAtLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3N3aXRjaF90by5oCj4gPiArKysg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3N3aXRjaF90by5oCj4gPiBAQCAtMTIsNiArMTIsNyBA QAo+ID4gICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Cj4gPiAgI2luY2x1ZGUgPGFzbS9wdHJh Y2UuaD4KPiA+ICAjaW5jbHVkZSA8YXNtL2Nzci5oPgo+ID4gKyNpbmNsdWRlIDxhc20vcW9zLmg+ Cj4gPiAgCj4gPiAgI2lmZGVmIENPTkZJR19GUFUKPiA+ICBleHRlcm4gdm9pZCBfX2ZzdGF0ZV9z YXZlKHN0cnVjdCB0YXNrX3N0cnVjdCAqc2F2ZV90byk7Cj4gPiBAQCAtNzksNiArODAsNyBAQCBk byB7CQkJCQkJCVwKPiA+ICAJaWYgKGhhc19mcHUoKSkJCQkJCVwKPiA+ICAJCV9fc3dpdGNoX3Rv X2F1eChfX3ByZXYsIF9fbmV4dCk7CVwKPiA+ICAJKChsYXN0KSA9IF9fc3dpdGNoX3RvKF9fcHJl diwgX19uZXh0KSk7CQlcCj4gPiArCXFvc19zY2hlZF9pbihfX25leHQpOwkJCQlcCj4gCj4gQm90 aCBGUFUgYW5kIHZlY3RvciBkbzoKPiB8CWlmIChoYXNfZnB1KCkpCQkJCQlcCj4gfAkJX19zd2l0 Y2hfdG9fZnB1KF9fcHJldiwgX19uZXh0KTsJXAo+IHwJaWYgKGhhc192ZWN0b3IoKSkJCQkJXAo+ IHwJCV9fc3dpdGNoX3RvX3ZlY3RvcihfX3ByZXYsIF9fbmV4dCk7CVwKPiAKPiBJcyBpdCBqdXN0 IG15IE9DRCB0aGF0IHdhbnRzIHNzcW9zaWQgdG8gYmUgdGhlIHNhbWU/CgpUaGFua3MsIEkgaGFk IG5vdCBub3RpY2VkIHRob3NlIGNoYW5nZXMgZnJvbSB0aGUgdmVjdG9yIHBhdGNoIHNlcmllcyBb MV0KdW50aWwgeW91IHBvaW50ZWQgaXQgb3V0LiBUaGUgaGFuZGxpbmcgb2Ygc3Fvc2NmZyBjb3Vs ZCBiZSBjb252ZXJ0ZWQgdG8KdGhhdCBwYXR0ZXJuIHRvby4KCj4gSXQnZCBhbHNvIGRvIGF3YXkg d2l0aCB0aGF0IHNlZW1zIGEgYml0IHdlaXJkIHRvIG1lOiBoYXZpbmcKPiBxb3Nfc2NoZWRfaW4o KSBhbmQgX19xb3Nfc2NoZWRfaW4oKS4KPiBFdmVuIGlmIHlvdSBkb24ndCBtYWtlIHRoZW0gc2lt aWxhciwgd2hhdCdzIHRoZSByYXRpb25hbGUgYmVoaW5kIG5vdAo+IGludmVydGluZyB0aGUgZXh0 ZW5zaW9uIGNoZWNrICYgcmV0dXJuaW5nIGVhcmx5IGZyb20gYSBzaW5nbGUgZnVuY3Rpb24uCgpU aGUgZ29hbCB3YXMgc28gdGhlIGlubGluZSBxb3Nfc2NoZWRfaW4oKSB3b3VsZCB0dXJuIGludG8g YSBub3Agd2hlbgpTc3Fvc2lkIGV4dGVuc2lvbnMgbm90IHByZXNlbnQuIElmIFNzcW9zaWQgd2Fz IHByZXNlbnQsIHRoZW4gdGhlICJyZWFsIgpmdW5jdGlvbiBfX3Fvc19zY2hlZF9pbigpIHdvdWxk IGJlIGNhbGxlZC4KCkhvd2V2ZXIsIGhhdmluZyBsb29rZWQgYXQgdGhlIGhhbmRsaW5nIG9mIGZw dSBhbmQgdmVjdG9yIGluIHRoZSB2ZWN0b3IKc2VyaWVzLCBJIHRoaW5rIHdpbGwgcmVkbyB0aGUg c3Fvc2NmZyBoYW5kbGluZyB0byBmb2xsb3cgdGhhdCBwYXR0ZXJuLgoKdGhhbmtzLApkcmV3Cgpb MV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtcmlzY3YvMjAyMzA0MTQxNTU4NDMuMTI5 NjMtMS1hbmR5LmNoaXVAc2lmaXZlLmNvbS8KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtcmlzY3YK 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 68814C77B76 for ; Mon, 17 Apr 2023 20:00:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230317AbjDQUAl (ORCPT ); Mon, 17 Apr 2023 16:00:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38674 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229985AbjDQUAi (ORCPT ); Mon, 17 Apr 2023 16:00:38 -0400 Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B11D7C9 for ; Mon, 17 Apr 2023 13:00:35 -0700 (PDT) Received: by mail-pj1-x1033.google.com with SMTP id s23-20020a17090aba1700b00247a8f0dd50so3131516pjr.1 for ; Mon, 17 Apr 2023 13:00:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681761635; x=1684353635; 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=WxaNTv+G45R6AGfd4FQ/tQ0s93uY3PGqLlYvVLo3WBA=; b=5fA9inL6WwOrSojtYS4LJaO0732iVo+lr4Xmd3CqVuRbbEnrOFBJTzb4ZJtAzEeEg9 PKW4CVDorREYU3FhrrnYFIumQy/wkTiGY7BQ4bLCSy6YlYac1nIezMUhfVs7cdXxAYaI DZHMD7a0cXc3r0NXJcMStwYc/x4tLLtsLDzMv+0iVpiXhnYww435S80etzHK/jYM21M+ q74F7qeGLEcXAaxIB3r7kUTgMwZezh+Tv1jGy/1XNb2jS3Y5cUUs5jxkV6bCvxhNqMP+ OmKuUXT3gjGPOGAnqq3FtgVBTQsUfeGodZRZy76X5eM3JqG5m7WH2ohpw/Dg7FjsNlxV 93Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681761635; x=1684353635; 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=WxaNTv+G45R6AGfd4FQ/tQ0s93uY3PGqLlYvVLo3WBA=; b=AZ4V1mFSZIVshflI0g6XQi92x7WOgdCmznDjPXQFPEGAfGAxG3jorhpf+45I1ZuGjR 2wjgTGZKv0FwXBzlcjA16Orciibfw9lZqCjxGR2BzBm+61MGbPONVx86aYjR7UrFyj6R w3/w4HbixHp2HritbMYE/Th+Dg0e1N5GQDciKt8z3MUMn0yK5I4USLIDbSDfXt/nXjMG 0/S+ULLvps+2PNC3aS98/uItIE7Gzj7qLWO+DdhZF8aphlyRct7D+4bCQaqC7IGByMc1 QbK9wIOyOQ6pbMHCkNi57PYB5PhD+a3NSSyCriICxPGghB+peuKZZnmLL8bxMDevMuGF w63w== X-Gm-Message-State: AAQBX9fWzDRAZlNy78TOS6eqcHjWfklq29HSoGT5MocMFa6fy9BAavry RZIN7dKjVk6Wa8CUsYA/MFd8hA== X-Google-Smtp-Source: AKy350YSEpd+CB+RkSnnzxQ1QIpKvO2z7awmJ3Gud0PHw4ibgRYlQKUXur6RflH0L3ocMoEuOky//w== X-Received: by 2002:a17:903:1ce:b0:1a0:50bd:31bf with SMTP id e14-20020a17090301ce00b001a050bd31bfmr116558plh.32.1681761635097; Mon, 17 Apr 2023 13:00:35 -0700 (PDT) Received: from x1 ([2607:fb90:33a8:2783:544f:e61d:6278:b35f]) by smtp.gmail.com with ESMTPSA id e12-20020a170902d38c00b001a1d4a985eesm8081487pld.228.2023.04.17.13.00.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Apr 2023 13:00:34 -0700 (PDT) Date: Mon, 17 Apr 2023 13:04:11 -0700 From: Drew Fustini To: Conor Dooley Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Atish Patra , =?iso-8859-1?Q?Bj=F6rn_T=F6pel?= , James Morse , Kornel =?utf-8?Q?Dul=C4=99ba?= , Adrien Ricciardi Subject: Re: [RFC PATCH 2/2] RISC-V: Add support for sqoscfg CSR Message-ID: References: <20230410043646.3138446-1-dfustini@baylibre.com> <20230410043646.3138446-3-dfustini@baylibre.com> <20230417-culinary-capillary-4f1efd496691@spud> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20230417-culinary-capillary-4f1efd496691@spud> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Apr 17, 2023 at 08:10:20PM +0100, Conor Dooley wrote: > Hey Drew, > > (Don't get your hopes up, I don't have anything really meaningful to > contribute, sorry.) Hi, thanks for the feedback... > > On Sun, Apr 09, 2023 at 09:36:46PM -0700, Drew Fustini wrote: > > Add support for the sqoscfg CSR defined in the Ssqosid ISA extension > > (Supervisor-mode Quality of Service ID). The CSR contains two fields: > > > > - Resource Control ID (RCID) used determine resource allocation > > - Monitoring Counter ID (MCID) used to track resource usage > > > > Requests from a hart to shared resources like cache will be tagged with > > these IDs. This allows the usage of shared resources to be associated > > with the task currently running on the hart. > > > > A sqoscfg field is added to thread_struct and has the same format as the > > sqoscfg CSR. This allows the scheduler to set the hart's sqoscfg CSR to > > contain the RCID and MCID for the task that is being scheduled in. The > > sqoscfg CSR is only written to if the thread_struct.sqoscfg is different > > from the current value of the CSR. > > > > A per-cpu variable cpu_sqoscfg is used to mirror that state of the CSR. > > This is because access to L1D hot memory should be several times faster > > than a CSR read. Also, in the case of virtualization, accesses to this > > CSR are trapped in the hypervisor. > > > > Link: https://github.com/riscv-non-isa/riscv-cmqri/blob/main/riscv-cbqri.pdf > > Co-developed-by: Kornel Dulęba > > Signed-off-by: Kornel Dulęba > > Signed-off-by: Drew Fustini > > --- > > Note: the Ssqosid extension and CBQRI spec are still in a draft state. > > The CSR address of sqoscfg is not final. > > > > Changes from the original patch [1]: > > - Rebase from 6.0 to 6.3 > > - Simplify per-cpu variable from struct to u32 with just sqoscfg > > - Move qoscfg to thread_struct in arch/riscv/include/asm/processor.h > > This avoids changing task_struct in /include/linux/sched.h > > - Reword commit description > > - Reword Kconfig description > > > > [1] https://github.com/rivosinc/linux/commit/8454b793a62be21d39e5826ef5241dfa06198ba9 > > > > arch/riscv/Kconfig | 19 ++++++++++++++ > > arch/riscv/include/asm/csr.h | 8 ++++++ > > arch/riscv/include/asm/processor.h | 3 +++ > > arch/riscv/include/asm/qos.h | 40 ++++++++++++++++++++++++++++++ > > arch/riscv/include/asm/switch_to.h | 2 ++ > > 5 files changed, 72 insertions(+) > > create mode 100644 arch/riscv/include/asm/qos.h > > > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > > index cc02eb9eee1f..03f22b7fe34b 100644 > > --- a/arch/riscv/Kconfig > > +++ b/arch/riscv/Kconfig > > @@ -418,6 +418,25 @@ config RISCV_ISA_SVNAPOT > > > > If you don't know what to do here, say Y. > > > > +config RISCV_ISA_SSQOSID > > + bool "Ssqosid extension support" > > + default y > > + help > > + Adds support for the Ssqosid ISA extension (Supervisor-mode > > + Quality of Service ID). > > Could you add "long form" text in brackets here to the bool line, a la: > https://patchwork.kernel.org/project/linux-riscv/patch/20230405-pucker-cogwheel-3a999a94a2f2@wendy/ Thanks, that is a good idea. It would make it easier for the person using menuconfig as they won't have to access the help screen just to see what the acronym stands for. > > + > > + Ssqosid defines the sqoscfg CSR which allows the system to tag > > + the running process with RCID (Resource Control ID) and MCID > > + (Monitoring Counter ID). The RCID is used determine resource > > + allocation. The MCID is used to track resource usage in event > > + counters. > > + > > + For example, a cache controller may use the RCID to apply a > > + cache partitioning scheme and use the MCID to track how much > > + cache a process, or a group of processes, is using. > > + > > + If you don't know what to do here, say Y. > > + > > config RISCV_ISA_SVPBMT > > bool "SVPBMT extension support" > > depends on 64BIT && MMU > > diff --git a/arch/riscv/include/asm/csr.h b/arch/riscv/include/asm/csr.h > > index 7c2b8cdb7b77..17d04a0cacd6 100644 > > --- a/arch/riscv/include/asm/csr.h > > +++ b/arch/riscv/include/asm/csr.h > > @@ -59,6 +59,13 @@ > > #define SATP_ASID_MASK _AC(0xFFFF, UL) > > #endif > > > > +/* SQOSCFG fields */ > > +#define SQOSCFG_RCID_MASK _AC(0x00000FFF, UL) > > +#define SQOSCFG_MCID_MASK SQOSCFG_RCID_MASK > > +#define SQOSCFG_MCID_SHIFT 16 > > +#define SQOSCFG_MASK ((SQOSCFG_MCID_MASK << SQOSCFG_MCID_SHIFT) | \ > > + SQOSCFG_RCID_MASK) > > + > > /* Exception cause high bit - is an interrupt if set */ > > #define CAUSE_IRQ_FLAG (_AC(1, UL) << (__riscv_xlen - 1)) > > > > @@ -245,6 +252,7 @@ > > #define CSR_STVAL 0x143 > > #define CSR_SIP 0x144 > > #define CSR_SATP 0x180 > > +#define CSR_SQOSCFG 0x181 > > > > #define CSR_STIMECMP 0x14D > > #define CSR_STIMECMPH 0x15D > > diff --git a/arch/riscv/include/asm/processor.h b/arch/riscv/include/asm/processor.h > > index 94a0590c6971..724b2aa2732d 100644 > > --- a/arch/riscv/include/asm/processor.h > > +++ b/arch/riscv/include/asm/processor.h > > @@ -39,6 +39,9 @@ struct thread_struct { > > unsigned long s[12]; /* s[0]: frame pointer */ > > struct __riscv_d_ext_state fstate; > > unsigned long bad_cause; > > +#ifdef CONFIG_RISCV_ISA_SSQOSID > > + u32 sqoscfg; > > +#endif > > }; > > > > /* Whitelist the fstate from the task_struct for hardened usercopy */ > > diff --git a/arch/riscv/include/asm/qos.h b/arch/riscv/include/asm/qos.h > > new file mode 100644 > > index 000000000000..297e7fb64d80 > > --- /dev/null > > +++ b/arch/riscv/include/asm/qos.h > > @@ -0,0 +1,40 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +#ifndef _ASM_RISCV_QOS_H > > +#define _ASM_RISCV_QOS_H > > + > > +#ifdef CONFIG_RISCV_ISA_SSQOSID > > + > > +#include > > +#include > > + > > +#include > > +#include > > +#include > > + > > +/* cached value of sqoscfg csr for each cpu */ > > +static DEFINE_PER_CPU(u32, cpu_sqoscfg); > > + > > +static void __qos_sched_in(struct task_struct *task) > > +{ > > + u32 *cpu_sqoscfg_ptr = this_cpu_ptr(&cpu_sqoscfg); > > + u32 thread_sqoscfg; > > + > > + thread_sqoscfg = READ_ONCE(task->thread.sqoscfg); > > + > > + if (thread_sqoscfg != *cpu_sqoscfg_ptr) { > > + *cpu_sqoscfg_ptr = thread_sqoscfg; > > + csr_write(CSR_SQOSCFG, thread_sqoscfg); > > + } > > +} > > + > > +static inline void qos_sched_in(struct task_struct *task) > > "qos" is a pretty generic prefix, no? Do you think we'd be better off > prefixing this (and every other extension related thing) with `riscv_`? That's a fair point. No harm in adding the 'riscv_' to make the context clearer. > > > +{ > > + if (riscv_has_extension_likely(RISCV_ISA_EXT_SSQOSID)) > > + __qos_sched_in(task); > > +} > > +#else > > + > > +static inline void qos_sched_in(struct task_struct *task) {} > > + > > +#endif /* CONFIG_RISCV_ISA_SSQOSID */ > > +#endif /* _ASM_RISCV_QOS_H */ > > diff --git a/arch/riscv/include/asm/switch_to.h b/arch/riscv/include/asm/switch_to.h > > index 60f8ca01d36e..75d9bfd766af 100644 > > --- a/arch/riscv/include/asm/switch_to.h > > +++ b/arch/riscv/include/asm/switch_to.h > > @@ -12,6 +12,7 @@ > > #include > > #include > > #include > > +#include > > > > #ifdef CONFIG_FPU > > extern void __fstate_save(struct task_struct *save_to); > > @@ -79,6 +80,7 @@ do { \ > > if (has_fpu()) \ > > __switch_to_aux(__prev, __next); \ > > ((last) = __switch_to(__prev, __next)); \ > > + qos_sched_in(__next); \ > > Both FPU and vector do: > | if (has_fpu()) \ > | __switch_to_fpu(__prev, __next); \ > | if (has_vector()) \ > | __switch_to_vector(__prev, __next); \ > > Is it just my OCD that wants ssqosid to be the same? Thanks, I had not noticed those changes from the vector patch series [1] until you pointed it out. The handling of sqoscfg could be converted to that pattern too. > It'd also do away with that seems a bit weird to me: having > qos_sched_in() and __qos_sched_in(). > Even if you don't make them similar, what's the rationale behind not > inverting the extension check & returning early from a single function. The goal was so the inline qos_sched_in() would turn into a nop when Ssqosid extensions not present. If Ssqosid was present, then the "real" function __qos_sched_in() would be called. However, having looked at the handling of fpu and vector in the vector series, I think will redo the sqoscfg handling to follow that pattern. thanks, drew [1] https://lore.kernel.org/linux-riscv/20230414155843.12963-1-andy.chiu@sifive.com/