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 5C178D1951A for ; Mon, 26 Jan 2026 21:02:30 +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=Q0wuz9RUj7sm3aG9hUHRRbsMIvvvBTdXf0ghdQcb7R8=; b=Lr3nk3Oz3Ca38j 8IIjUUzO71/OcfZM2srvrkuH3SggbKk0XVgJOAUEe/ZAXiVzia0ms9u2HHPQK+/tiE2Yp9JA8yUBq SkHSrNyFEWvgLqzBMSfebrI4/KDcMucYEu1jHq6xTKiydbmW3IedZMIBS4F73axXsytxAyz824Ydt qzOTnxDHykMcOr353z+jKLJJEX/z+E7LFUJoThAdo2V0LT+kQleKNGNxrKihKeZ4IpsKCnsYsQgCL oOIAGjY5TAirH9u7YKU7DmdrtjImPxeSl4zxe1TZAIvhaiFWprnNGHupymJ43BY5B/ru1iw9RrJSS d7O/g6W5f74N+l2eIckQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vkTiz-0000000DEyA-49uG; Mon, 26 Jan 2026 21:02:18 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vkTix-0000000DExT-1IWi for linux-riscv@lists.infradead.org; Mon, 26 Jan 2026 21:02:16 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 83E7743C26; Mon, 26 Jan 2026 21:02:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EBE4AC116C6; Mon, 26 Jan 2026 21:02:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769461334; bh=8x6wyS08s6WfKoSIfXc3hX2kI5c4SIOdRV/egsvzezI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=beouqXbqqaaSYOiOO4C2eJud+5DY4aYi67w/HRJeIdAuIvSmqCrPjUJFnH+ozatp0 dkJjynhcSsTKoNNldvyCDDxBTzutcdmmr/wl3ERJcimd545zgnUdubtYKsMtcnlNLD WUbcimJ9tO+nbypOUzeBs9wnEd02igdIxaQHJEZjObZONszOMAeAYb1dfh0UTQPobf KM2IVcX2JUoufoXmUmbZ7Es60YsFLE1PV/mCgRxPYtgidMQaecEV2USAQJjrTDcvvE PXu1G2fL76nDSNkDRX/TgGnD/jHw7vtS1iYWVYY5Ko0uFO+Uw9EVHPZ3lwEivb/jtA jY/kQX7n9V7jw== Date: Mon, 26 Jan 2026 13:02:12 -0800 From: Drew Fustini To: yunhui cui Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Radim =?utf-8?B?S3LEjW3DocWZ?= , Samuel Holland , Adrien Ricciardi , Nicolas Pitre , Kornel =?utf-8?Q?Dul=C4=99ba?= , Atish Patra , Atish Kumar Patra , Vasudevan Srinivasan , Ved Shanbhogue , Chen Pei , Liu Zhiwei , Weiwei Li , guo.wenjia23@zte.com.cn, liu.qingtao2@zte.com.cn, Conor Dooley , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Tony Luck , Babu Moger , Peter Newman , Fenghua Yu , James Morse , Ben Horgan , Dave Martin , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, x86@kernel.org Subject: Re: [External] [PATCH RFC 08/19] RISC-V: QoS: add resctrl interface for CBQRI controllers Message-ID: References: <20260119-ssqosid-cbqri-v1-0-aa2a75153832@kernel.org> <20260119-ssqosid-cbqri-v1-8-aa2a75153832@kernel.org> 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-20260126_130215_409728_F992F618 X-CRM114-Status: GOOD ( 28.66 ) 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 T24gTW9uLCBKYW4gMjYsIDIwMjYgYXQgMDk6MDE6MzBQTSArMDgwMCwgeXVuaHVpIGN1aSB3cm90 ZToKPiBIaSBEcmV3LAo+IAo+IE9uIFR1ZSwgSmFuIDIwLCAyMDI2IGF0IDEyOjE14oCvUE0gRHJl dyBGdXN0aW5pIDxmdXN0aW5pQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4KPiA+IEFkZCBpbnRlcmZh Y2UgZm9yIENCUVJJIGNvbnRyb2xsZXIgZHJpdmVycyB0byBtYWtlIHVzZSBvZiB0aGUgcmVzY3Ry bAo+ID4gZmlsZXN5c3RlbS4KPiA+Cj4gPiBDby1kZXZlbG9wZWQtYnk6IEFkcmllbiBSaWNjaWFy ZGkgPGFyaWNjaWFyZGlAYmF5bGlicmUuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogQWRyaWVuIFJp Y2NpYXJkaSA8YXJpY2NpYXJkaUBiYXlsaWJyZS5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBEcmV3 IEZ1c3RpbmkgPGZ1c3RpbmlAa2VybmVsLm9yZz4KPiA+IC0tLQo+ID4gIGFyY2gvcmlzY3Yva2Vy bmVsL3Fvcy9xb3NfcmVzY3RybC5jIHwgMTE5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxMTkxIGluc2VydGlvbnMoKykKPiA+Cj4gPiBk aWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvcW9zL3Fvc19yZXNjdHJsLmMgYi9hcmNoL3Jp c2N2L2tlcm5lbC9xb3MvcW9zX3Jlc2N0cmwuYwo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ IGluZGV4IDAwMDAwMDAwMDAwMC4uNWUzYTY1MzQyZTliCj4gPiAtLS0gL2Rldi9udWxsCj4gPiAr KysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9xb3MvcW9zX3Jlc2N0cmwuYwpbLi5dCj4gPiArLyogU2V0 IGNhcGFjaXR5IGJsb2NrIG1hc2sgKGNjX2Jsb2NrX21hc2spICovCj4gPiArc3RhdGljIHZvaWQg Y2Jxcmlfc2V0X2NibShzdHJ1Y3QgY2JxcmlfY29udHJvbGxlciAqY3RybCwgdTY0IGNibSkKPiA+ ICt7Cj4gPiArICAgICAgICAgICAgICAgaW50IHJlZ19vZmZzZXQ7Cj4gPiArICAgICAgICAgICAg ICAgdTY0IHJlZzsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICByZWdfb2Zmc2V0ID0gQ0JRUklf Q0NfQkxPQ0tfTUFTS19PRkY7Cj4gPiArICAgICAgICAgICAgICAgcmVnID0gaW9yZWFkNjQoY3Ry bC0+YmFzZSArIHJlZ19vZmZzZXQpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgIHJlZyA9IGNi bTsKPiA+ICsgICAgICAgICAgICAgICBpb3dyaXRlNjQocmVnLCBjdHJsLT5iYXNlICsgcmVnX29m ZnNldCk7Cj4gPiArfQo+ID4gKwo+IAo+IHRvbyBtdWNoIGluZGVudGF0aW9uIO+8nwoKVGhhbmtz LCB3aWxsIGZpeCBpbmRlbnRhdGlvbiBmb3IgY2Jxcmlfc2V0X2NibSwgY2Jxcmlfc2V0X3Jid2Is IGFuZApjYnFyaV9nZXRfcmJ3Yi4KCj4gPiArc3RhdGljIGludCBjYnFyaV93YWl0X2J1c3lfZmxh ZyhzdHJ1Y3QgY2JxcmlfY29udHJvbGxlciAqY3RybCwgaW50IHJlZ19vZmZzZXQpCj4gPiArewo+ ID4gKyAgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBqaWZmaWVzICsgKEhaIC8gMTApOyAv KiBUaW1lb3V0IGFmdGVyIDEwMG1zICovCj4gCj4gaHVuZyB0YXNrID8KCkdvb2QgcG9pbnQsIHRo aXMgaXMgdG9vIGxvbmcuIEkgdHJpZWQgMTAwIHVzIHdoaWNoIHdhc24ndCBsb25nIGVub3VnaApm b3IgUWVtdSBvbiBteSBzeXN0ZW0gYnV0IDEsMDAwIHVzIHdvcmtlZCBva2F5LgoKSSB3aWxsIGNo YW5nZSB0byAxLDAwMCB1cy4KCiAgICAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gamlmZmll cyArIHVzZWNzX3RvX2ppZmZpZXMoMTAwMCk7Cgo+ID4gK3UzMiByZXNjdHJsX2FyY2hfZ2V0X2Nv bmZpZyhzdHJ1Y3QgcmR0X3Jlc291cmNlICpyLCBzdHJ1Y3QgcmR0X2N0cmxfZG9tYWluICpkLAo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBjbG9zaWQsIGVudW0gcmVzY3RybF9j b25mX3R5cGUgdHlwZSkKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVjdCBjYnFyaV9yZXNjdHJsX2Rv bSAqaHdfZG9tOwo+ID4gKyAgICAgICBzdHJ1Y3QgY2JxcmlfY29udHJvbGxlciAqY3RybDsKPiA+ ICsgICAgICAgaW50IHJlZ19vZmZzZXQ7Cj4gPiArICAgICAgIHUzMiBwZXJjZW50Owo+ID4gKyAg ICAgICB1MzIgcmJ3YjsKPiA+ICsgICAgICAgdTY0IHJlZzsKPiA+ICsgICAgICAgaW50IGVycjsK PiA+ICsKPiA+ICsgICAgICAgaHdfZG9tID0gY29udGFpbmVyX29mKGQsIHN0cnVjdCBjYnFyaV9y ZXNjdHJsX2RvbSwgcmVzY3RybF9jdHJsX2RvbSk7Cj4gPiArCj4gPiArICAgICAgIGN0cmwgPSBo d19kb20tPmh3X2N0cmw7Cj4gPiArCj4gPiArICAgICAgIGlmICghci0+YWxsb2NfY2FwYWJsZSkK PiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiAKPiB1MzIgPwoKR29vZCBwb2lu dC4gIEkgbG9va2VkIGF0IG1wYW1fcmVzY3RybC5jIGFuZCBpdCByZXR1cm5zIHRoZSBkZWZhdWx0 IHZhbHVlCm9uIGVycm9yOgpodHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwvMjAyNjAxMTIxNjU5 MTQuNDA4NjY5Mi0xOS1iZW4uaG9yZ2FuQGFybS5jb20vCgpJIHdpbGwgY2hhbmdlIHRvICdyZXR1 cm4gcmVzY3RybF9nZXRfZGVmYXVsdF9jdHJsKHIpJy4KCj4gPiArCj4gPiArICAgICAgIHN3aXRj aCAoci0+cmlkKSB7Cj4gPiArICAgICAgIGNhc2UgUkRUX1JFU09VUkNFX0wyOgo+ID4gKyAgICAg ICBjYXNlIFJEVF9SRVNPVVJDRV9MMzoKPiA+ICsgICAgICAgICAgICAgICAvKiBDbGVhciBjY19i bG9ja19tYXNrIGJlZm9yZSByZWFkIGxpbWl0IG9wZXJhdGlvbiAqLwo+ID4gKyAgICAgICAgICAg ICAgIGNicXJpX3NldF9jYm0oY3RybCwgMCk7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgLyog Q2FwYWNpdHkgcmVhZCBsaW1pdCBvcGVyYXRpb24gZm9yIFJDSUQgKGNsb3NpZCkgKi8KPiA+ICsg ICAgICAgICAgICAgICBlcnIgPSBjYnFyaV9jY19hbGxvY19vcChjdHJsLCBDQlFSSV9DQ19BTExP Q19DVExfT1BfUkVBRF9MSU1JVCwgdHlwZSwgY2xvc2lkKTsKPiA+ICsgICAgICAgICAgICAgICBp ZiAoZXJyIDwgMCkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcHJfZXJyKCIlcygpOiBv cGVyYXRpb24gZmFpbGVkOiBlcnIgPSAlZCIsIF9fZnVuY19fLCBlcnIpOwo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIC1FSU87Cj4gCj4gdTMyID8KClNhbWUgYXMgYWJvdmUuCgo+ ID4gKyAgICAgICAgICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgICAgICAgICAvKiBSZWFkIGNh cGFjaXR5IGJsb2NrIG1hc2sgZm9yIFJDSUQgKGNsb3NpZCkgKi8KPiA+ICsgICAgICAgICAgICAg ICByZWdfb2Zmc2V0ID0gQ0JRUklfQ0NfQkxPQ0tfTUFTS19PRkY7Cj4gPiArICAgICAgICAgICAg ICAgcmVnID0gaW9yZWFkNjQoY3RybC0+YmFzZSArIHJlZ19vZmZzZXQpOwo+ID4gKwo+ID4gKyAg ICAgICAgICAgICAgIC8qIFVwZGF0ZSB0aGUgY29uZmlnIHZhbHVlIGZvciB0aGUgY2xvc2lkIGlu IHRoaXMgZG9tYWluICovCj4gPiArICAgICAgICAgICAgICAgaHdfZG9tLT5jdHJsX3ZhbFtjbG9z aWRdID0gcmVnOwo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBod19kb20tPmN0cmxfdmFsW2Ns b3NpZF07Cj4gPiArCj4gPiArICAgICAgIGNhc2UgUkRUX1JFU09VUkNFX01CQToKPiA+ICsgICAg ICAgICAgICAgICAvKiBDYXBhY2l0eSByZWFkIGxpbWl0IG9wZXJhdGlvbiBmb3IgUkNJRCAoY2xv c2lkKSAqLwo+ID4gKyAgICAgICAgICAgICAgIGVyciA9IGNicXJpX2JjX2FsbG9jX29wKGN0cmws IENCUVJJX0NDX0FMTE9DX0NUTF9PUF9SRUFEX0xJTUlULCBjbG9zaWQpOwo+ID4gKyAgICAgICAg ICAgICAgIGlmIChlcnIgPCAwKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBwcl9lcnIo IiVzKCk6IG9wZXJhdGlvbiBmYWlsZWQ6IGVyciA9ICVkIiwgX19mdW5jX18sIGVycik7Cj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTzsKPiA+ICsgICAgICAgICAgICAgICB9 Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgaHdfZG9tLT5jdHJsX3ZhbFtjbG9zaWRdID0gY2Jx cmlfZ2V0X3Jid2IoY3RybCk7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgLyogQ29udmVydCBm cm9tIGJhbmR3aWR0aCBibG9ja3MgdG8gcGVyY2VudCAqLwo+ID4gKyAgICAgICAgICAgICAgIHJi d2IgPSBod19kb20tPmN0cmxfdmFsW2Nsb3NpZF07Cj4gPiArICAgICAgICAgICAgICAgcmJ3YiAq PSAxMDA7Cj4gPiArICAgICAgICAgICAgICAgcGVyY2VudCA9IHJid2IgLyBjdHJsLT5iYy5uYndi bGtzOwo+ID4gKyAgICAgICAgICAgICAgIGlmIChyYndiICUgY3RybC0+YmMubmJ3YmxrcykKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnQrKzsKPiAKPiBzZXQ6IDEwLCBnZXQgMTEg PwoKVGhlIGludGVudGlvbiB3YXMgdG8gaGFuZGxlIHJvdW5kaW5nIHVwIGJ1dCBJIGNhbiBkcm9w IHRoaXMgaW5jcmVtZW50LgoKWy4uXQo+ID4gK3N0YXRpYyBpbnQgY2JxcmlfcHJvYmVfY29udHJv bGxlcihzdHJ1Y3QgY2JxcmlfY29udHJvbGxlcl9pbmZvICpjdHJsX2luZm8sCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNicXJpX2NvbnRyb2xsZXIgKmN0cmwp Cj4gPiArewo+ID4gKyAgICAgICBpbnQgZXJyID0gMCwgc3RhdHVzOwo+ID4gKyAgICAgICB1NjQg cmVnOwo+ID4gKwo+ID4gKyAgICAgICBwcl9pbmZvKCJjb250cm9sbGVyIGluZm86IHR5cGU9JWQg YWRkcj0weCVseCBzaXplPSVsdSBtYXgtcmNpZD0ldSBtYXgtbWNpZD0ldSIsCj4gPiArICAgICAg ICAgICAgICAgY3RybF9pbmZvLT50eXBlLCBjdHJsX2luZm8tPmFkZHIsIGN0cmxfaW5mby0+c2l6 ZSwKPiA+ICsgICAgICAgICAgICAgICBjdHJsX2luZm8tPnJjaWRfY291bnQsIGN0cmxfaW5mby0+ bWNpZF9jb3VudCk7Cj4gPiArCj4gPiArICAgICAgIC8qIG1heF9ybWlkIGlzIHVzZWQgYnkgcmVz Y3RybF9hcmNoX3N5c3RlbV9udW1fcm1pZF9pZHgoKSAqLwo+ID4gKyAgICAgICBtYXhfcm1pZCA9 IGN0cmxfaW5mby0+bWNpZF9jb3VudDsKPiA+ICsKPiA+ICsgICAgICAgY3RybC0+Y3RybF9pbmZv ID0gY3RybF9pbmZvOwo+ID4gKwo+ID4gKyAgICAgICAvKiBUcnkgdG8gYWNjZXNzIHRoZSBtZW1v cnktbWFwcGVkIENCUVJJIHJlZ2lzdGVycyAqLwo+ID4gKyAgICAgICBpZiAoIXJlcXVlc3RfbWVt X3JlZ2lvbihjdHJsX2luZm8tPmFkZHIsIGN0cmxfaW5mby0+c2l6ZSwgImNicXJpX2NvbnRyb2xs ZXIiKSkgewo+ID4gKyAgICAgICAgICAgICAgIHByX3dhcm4oIiVzKCk6IHJldHVybiAlZCIsIF9f ZnVuY19fLCBlcnIpOwo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBlcnI7Cj4gCj4gZXJyID0g MD8KCkdvb2QgcG9pbnQsIEkgd2lsbCBjaGFuZ2UgaXQgdG8gcmV0dXJuIC1FQlVTWS4KClsuLl0K PiA+ICtpbnQgcW9zX3Jlc2N0cmxfc2V0dXAodm9pZCkKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVj dCByZHRfY3RybF9kb21haW4gKmRvbWFpbiwgKmRvbWFpbl90ZW1wOwo+ID4gKyAgICAgICBzdHJ1 Y3QgY2JxcmlfY29udHJvbGxlcl9pbmZvICpjdHJsX2luZm87Cj4gPiArICAgICAgIHN0cnVjdCBj YnFyaV9jb250cm9sbGVyICpjdHJsOwo+ID4gKyAgICAgICBzdHJ1Y3QgY2JxcmlfcmVzY3RybF9y ZXMgKnJlczsKPiA+ICsgICAgICAgc3RhdGljIGludCBmb3VuZF9jb250cm9sbGVyczsKPiA+ICsg ICAgICAgaW50IGVyciA9IDA7Cj4gPiArICAgICAgIGludCBpZCA9IDA7Cj4gPiArICAgICAgIGlu dCBpOwo+ID4gKwo+ID4gKyAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGN0cmxfaW5mbywgJmNi cXJpX2NvbnRyb2xsZXJzLCBsaXN0KSB7Cj4gPiArICAgICAgICAgICAgICAgZXJyID0gY2Jxcmlf cHJvYmVfY29udHJvbGxlcihjdHJsX2luZm8sICZjb250cm9sbGVyc1tmb3VuZF9jb250cm9sbGVy c10pOwo+ID4gKyAgICAgICAgICAgICAgIGlmIChlcnIpIHsKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIHByX3dhcm4oIiVzKCk6IGZhaWxlZCAoJWQpIiwgX19mdW5jX18sIGVycik7Cj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycl91bm1hcF9jb250cm9sbGVyczsKPiA+ICsg ICAgICAgICAgICAgICB9Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgZm91bmRfY29udHJvbGxl cnMrKzsKPiA+ICsgICAgICAgICAgICAgICBpZiAoZm91bmRfY29udHJvbGxlcnMgPiBNQVhfQ09O VFJPTExFUlMpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHByX3dhcm4oIiVzKCk6IGlu Y3JlYXNlIE1BWF9DT05UUk9MTEVSUyB2YWx1ZSIsIF9fZnVuY19fKTsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgICAgICAgICAgIH0KPiA+ICsgICAgICAgfQo+ ID4gKwo+ID4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgUkRUX05VTV9SRVNPVVJDRVM7IGkrKykg ewo+ID4gKyAgICAgICAgICAgICAgIHJlcyA9ICZjYnFyaV9yZXNjdHJsX3Jlc291cmNlc1tpXTsK PiA+ICsgICAgICAgICAgICAgICBJTklUX0xJU1RfSEVBRCgmcmVzLT5yZXNjdHJsX3Jlcy5jdHJs X2RvbWFpbnMpOwo+ID4gKyAgICAgICAgICAgICAgIElOSVRfTElTVF9IRUFEKCZyZXMtPnJlc2N0 cmxfcmVzLm1vbl9kb21haW5zKTsKPiA+ICsgICAgICAgICAgICAgICByZXMtPnJlc2N0cmxfcmVz LnJpZCA9IGk7Cj4gPiArICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgZm9yIChpID0gMDsgaSA8 IGZvdW5kX2NvbnRyb2xsZXJzOyBpKyspIHsKPiA+ICsgICAgICAgICAgICAgICBjdHJsID0gJmNv bnRyb2xsZXJzW2ldOwo+IAo+IGNvbnRyb2xsZXJzWzZdID8KClRoaXMgaXMgbGltaXRhdGlvbiBm cm9tIHRoZSBwcm9vZi1vZi1jb25jZXB0LiBJIG5lZWQgdG8gcmVmYWN0b3IgdGhpcyBzbwp0aGF0 IGl0IGlzIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIGNvbnRy b2xsZXJzCnByZXNlbnQgaW4gdGhlIHN5c3RlbQoKVGhhbmtzLApEcmV3CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxp c3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9A0DB2DC76E; Mon, 26 Jan 2026 21:02:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769461334; cv=none; b=lG/BO+DAXEifiVSe9nXSRkTl/wR0UN7fJWCiEob6fwgCVCSIGkGbgwxy2lkeNFNs8QwrvumXXx+s0/b9GjulrhdgUFocW4zfjNpIhVcK7tKWeq8ef3KnjJgcFEfL14pva5+r5LFQ05YJuHVeXXx1GgUhY8jtgVudVGboVeTnbUw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769461334; c=relaxed/simple; bh=8x6wyS08s6WfKoSIfXc3hX2kI5c4SIOdRV/egsvzezI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=jsyp0UwLtiw0RLpQ8SvW36cAFjW4gI3C0JZrI8H/1u/Yn/Op7iDu2jSRCYP8izLp0u2IioF4M7Bw8lRlD4zYwN4ffGkOXxI2M1fx1ltHASTCxj+8RxtiYB37O3PSgork0Cega/yRtJiLdzDCNIdzC1wd0VUkR4f/sR5A0TV399U= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=beouqXbq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="beouqXbq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EBE4AC116C6; Mon, 26 Jan 2026 21:02:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769461334; bh=8x6wyS08s6WfKoSIfXc3hX2kI5c4SIOdRV/egsvzezI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=beouqXbqqaaSYOiOO4C2eJud+5DY4aYi67w/HRJeIdAuIvSmqCrPjUJFnH+ozatp0 dkJjynhcSsTKoNNldvyCDDxBTzutcdmmr/wl3ERJcimd545zgnUdubtYKsMtcnlNLD WUbcimJ9tO+nbypOUzeBs9wnEd02igdIxaQHJEZjObZONszOMAeAYb1dfh0UTQPobf KM2IVcX2JUoufoXmUmbZ7Es60YsFLE1PV/mCgRxPYtgidMQaecEV2USAQJjrTDcvvE PXu1G2fL76nDSNkDRX/TgGnD/jHw7vtS1iYWVYY5Ko0uFO+Uw9EVHPZ3lwEivb/jtA jY/kQX7n9V7jw== Date: Mon, 26 Jan 2026 13:02:12 -0800 From: Drew Fustini To: yunhui cui Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Radim =?utf-8?B?S3LEjW3DocWZ?= , Samuel Holland , Adrien Ricciardi , Nicolas Pitre , Kornel =?utf-8?Q?Dul=C4=99ba?= , Atish Patra , Atish Kumar Patra , Vasudevan Srinivasan , Ved Shanbhogue , Chen Pei , Liu Zhiwei , Weiwei Li , guo.wenjia23@zte.com.cn, liu.qingtao2@zte.com.cn, Conor Dooley , Krzysztof Kozlowski , Rob Herring , Reinette Chatre , Tony Luck , Babu Moger , Peter Newman , Fenghua Yu , James Morse , Ben Horgan , Dave Martin , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, x86@kernel.org Subject: Re: [External] [PATCH RFC 08/19] RISC-V: QoS: add resctrl interface for CBQRI controllers Message-ID: References: <20260119-ssqosid-cbqri-v1-0-aa2a75153832@kernel.org> <20260119-ssqosid-cbqri-v1-8-aa2a75153832@kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Mon, Jan 26, 2026 at 09:01:30PM +0800, yunhui cui wrote: > Hi Drew, > > On Tue, Jan 20, 2026 at 12:15 PM Drew Fustini wrote: > > > > Add interface for CBQRI controller drivers to make use of the resctrl > > filesystem. > > > > Co-developed-by: Adrien Ricciardi > > Signed-off-by: Adrien Ricciardi > > Signed-off-by: Drew Fustini > > --- > > arch/riscv/kernel/qos/qos_resctrl.c | 1191 +++++++++++++++++++++++++++++++++++ > > 1 file changed, 1191 insertions(+) > > > > diff --git a/arch/riscv/kernel/qos/qos_resctrl.c b/arch/riscv/kernel/qos/qos_resctrl.c > > new file mode 100644 > > index 000000000000..5e3a65342e9b > > --- /dev/null > > +++ b/arch/riscv/kernel/qos/qos_resctrl.c [..] > > +/* Set capacity block mask (cc_block_mask) */ > > +static void cbqri_set_cbm(struct cbqri_controller *ctrl, u64 cbm) > > +{ > > + int reg_offset; > > + u64 reg; > > + > > + reg_offset = CBQRI_CC_BLOCK_MASK_OFF; > > + reg = ioread64(ctrl->base + reg_offset); > > + > > + reg = cbm; > > + iowrite64(reg, ctrl->base + reg_offset); > > +} > > + > > too much indentation ? Thanks, will fix indentation for cbqri_set_cbm, cbqri_set_rbwb, and cbqri_get_rbwb. > > +static int cbqri_wait_busy_flag(struct cbqri_controller *ctrl, int reg_offset) > > +{ > > + unsigned long timeout = jiffies + (HZ / 10); /* Timeout after 100ms */ > > hung task ? Good point, this is too long. I tried 100 us which wasn't long enough for Qemu on my system but 1,000 us worked okay. I will change to 1,000 us. unsigned long timeout = jiffies + usecs_to_jiffies(1000); > > +u32 resctrl_arch_get_config(struct rdt_resource *r, struct rdt_ctrl_domain *d, > > + u32 closid, enum resctrl_conf_type type) > > +{ > > + struct cbqri_resctrl_dom *hw_dom; > > + struct cbqri_controller *ctrl; > > + int reg_offset; > > + u32 percent; > > + u32 rbwb; > > + u64 reg; > > + int err; > > + > > + hw_dom = container_of(d, struct cbqri_resctrl_dom, resctrl_ctrl_dom); > > + > > + ctrl = hw_dom->hw_ctrl; > > + > > + if (!r->alloc_capable) > > + return -EINVAL; > > u32 ? Good point. I looked at mpam_resctrl.c and it returns the default value on error: https://lore.kernel.org/all/20260112165914.4086692-19-ben.horgan@arm.com/ I will change to 'return resctrl_get_default_ctrl(r)'. > > + > > + switch (r->rid) { > > + case RDT_RESOURCE_L2: > > + case RDT_RESOURCE_L3: > > + /* Clear cc_block_mask before read limit operation */ > > + cbqri_set_cbm(ctrl, 0); > > + > > + /* Capacity read limit operation for RCID (closid) */ > > + err = cbqri_cc_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, type, closid); > > + if (err < 0) { > > + pr_err("%s(): operation failed: err = %d", __func__, err); > > + return -EIO; > > u32 ? Same as above. > > + } > > + > > + /* Read capacity block mask for RCID (closid) */ > > + reg_offset = CBQRI_CC_BLOCK_MASK_OFF; > > + reg = ioread64(ctrl->base + reg_offset); > > + > > + /* Update the config value for the closid in this domain */ > > + hw_dom->ctrl_val[closid] = reg; > > + return hw_dom->ctrl_val[closid]; > > + > > + case RDT_RESOURCE_MBA: > > + /* Capacity read limit operation for RCID (closid) */ > > + err = cbqri_bc_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, closid); > > + if (err < 0) { > > + pr_err("%s(): operation failed: err = %d", __func__, err); > > + return -EIO; > > + } > > + > > + hw_dom->ctrl_val[closid] = cbqri_get_rbwb(ctrl); > > + > > + /* Convert from bandwidth blocks to percent */ > > + rbwb = hw_dom->ctrl_val[closid]; > > + rbwb *= 100; > > + percent = rbwb / ctrl->bc.nbwblks; > > + if (rbwb % ctrl->bc.nbwblks) > > + percent++; > > set: 10, get 11 ? The intention was to handle rounding up but I can drop this increment. [..] > > +static int cbqri_probe_controller(struct cbqri_controller_info *ctrl_info, > > + struct cbqri_controller *ctrl) > > +{ > > + int err = 0, status; > > + u64 reg; > > + > > + pr_info("controller info: type=%d addr=0x%lx size=%lu max-rcid=%u max-mcid=%u", > > + ctrl_info->type, ctrl_info->addr, ctrl_info->size, > > + ctrl_info->rcid_count, ctrl_info->mcid_count); > > + > > + /* max_rmid is used by resctrl_arch_system_num_rmid_idx() */ > > + max_rmid = ctrl_info->mcid_count; > > + > > + ctrl->ctrl_info = ctrl_info; > > + > > + /* Try to access the memory-mapped CBQRI registers */ > > + if (!request_mem_region(ctrl_info->addr, ctrl_info->size, "cbqri_controller")) { > > + pr_warn("%s(): return %d", __func__, err); > > + return err; > > err = 0? Good point, I will change it to return -EBUSY. [..] > > +int qos_resctrl_setup(void) > > +{ > > + struct rdt_ctrl_domain *domain, *domain_temp; > > + struct cbqri_controller_info *ctrl_info; > > + struct cbqri_controller *ctrl; > > + struct cbqri_resctrl_res *res; > > + static int found_controllers; > > + int err = 0; > > + int id = 0; > > + int i; > > + > > + list_for_each_entry(ctrl_info, &cbqri_controllers, list) { > > + err = cbqri_probe_controller(ctrl_info, &controllers[found_controllers]); > > + if (err) { > > + pr_warn("%s(): failed (%d)", __func__, err); > > + goto err_unmap_controllers; > > + } > > + > > + found_controllers++; > > + if (found_controllers > MAX_CONTROLLERS) { > > + pr_warn("%s(): increase MAX_CONTROLLERS value", __func__); > > + break; > > + } > > + } > > + > > + for (i = 0; i < RDT_NUM_RESOURCES; i++) { > > + res = &cbqri_resctrl_resources[i]; > > + INIT_LIST_HEAD(&res->resctrl_res.ctrl_domains); > > + INIT_LIST_HEAD(&res->resctrl_res.mon_domains); > > + res->resctrl_res.rid = i; > > + } > > + > > + for (i = 0; i < found_controllers; i++) { > > + ctrl = &controllers[i]; > > controllers[6] ? This is limitation from the proof-of-concept. I need to refactor this so that it is dynamically allocated based on the number of controllers present in the system Thanks, Drew