From: "Radim Krčmář" <rkrcmar@ventanamicro.com>
To: "Drew Fustini" <fustini@kernel.org>
Cc: qemu-devel@nongnu.org, "Palmer Dabbelt" <palmer@dabbelt.com>,
"Alistair Francis" <Alistair.Francis@wdc.com>,
"Weiwei Li" <liwei1518@gmail.com>,
"Daniel Henrique Barboza" <dbarboza@ventanamicro.com>,
"Liu Zhiwei" <zhiwei_liu@linux.alibaba.com>,
qemu-riscv@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
"Nicolas Pitre" <npitre@baylibre.com>,
"Kornel Dulęba" <mindal@semihalf.com>,
"Atish Kumar Patra" <atishp@rivosinc.com>,
"Atish Patra" <atish.patra@linux.dev>,
"Vasudevan Srinivasan" <vasu@rivosinc.com>,
"yunhui cui" <cuiyunhui@bytedance.com>,
"Chen Pei" <cp0613@linux.alibaba.com>,
guo.wenjia23@zte.com.cn, liu.qingtao2@zte.com.cn,
qemu-riscv-bounces+qemu-riscv=archiver.kernel.org@nongnu.org
Subject: Re: [PATCH 3/7] hw/riscv: implement CBQRI capacity controller
Date: Mon, 24 Nov 2025 18:02:37 +0100 [thread overview]
Message-ID: <DEH356RBYAIG.IS7SP4D5XLIQ@ventanamicro.com> (raw)
In-Reply-To: <aSDCmrvONUgvzqbV@x1>
2025-11-21T11:50:50-08:00, Drew Fustini <fustini@kernel.org>:
> On Thu, Nov 20, 2025 at 08:25:44PM +0100, Radim Krčmář wrote:
>> 2025-11-19T16:42:19-08:00, Drew Fustini <fustini@kernel.org>:
>> > +static void riscv_cbqri_cc_realize(DeviceState *dev, Error **errp)
>> > +{
>> > + RiscvCbqriCapacityState *cc = RISCV_CBQRI_CC(dev);
>> > +
>> > + if (!cc->mmio_base) {
>> > + error_setg(errp, "mmio_base property not set");
>> > + return;
>> > + }
>> > +
>> > + assert(cc->mon_counters == NULL);
>> > + cc->mon_counters = g_new0(MonitorCounter, cc->nb_mcids);
>> > +
>> > + assert(cc->alloc_blockmasks == NULL);
>> > + uint64_t *end = get_blockmask_location(cc, cc->nb_rcids, 0);
>> > + unsigned int blockmasks_size = end - cc->alloc_blockmasks;
>> > + cc->alloc_blockmasks = g_new0(uint64_t, blockmasks_size);
>> > +
>> > + memory_region_init_io(&cc->mmio, OBJECT(dev), &riscv_cbqri_cc_ops,
>> > + cc, TYPE_RISCV_CBQRI_CC".mmio", 4 * 1024);
>>
>> Shouldn't the region size take cc->ncblks into account?
>> (A bitmask for 2^16 ids is 8kB.)
>
> cc_block_mask field is BMW / 8. In the case of NCBLKS of 12 and NCBLKS
> of 16, both end up with a BMW of 64 which would be 8 bytes. I think the
> the only reason the allocation is 4KB is that is meant to be aligned to
> the page size. Otherwise, the capacity controller register layout is
> pretty small.
I understood NCBLKS as the amount of bits in the capacity bitmask, and
NCBLKS in encoded in a 16 bit field, which means up to 65536 bits.
Is there a lower limit?
Thanks.
next prev parent reply other threads:[~2025-11-24 17:04 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-20 0:42 [PATCH 0/7] riscv: implement Ssqosid extension and CBQRI controllers Drew Fustini
2025-11-20 0:42 ` [PATCH 1/7] riscv: implement Ssqosid extension and srmcfg CSR Drew Fustini
2025-11-20 11:30 ` Daniel Henrique Barboza
2025-11-20 21:34 ` Drew Fustini
2025-11-20 16:07 ` Radim Krčmář
2025-11-20 20:46 ` Drew Fustini
2025-11-24 16:54 ` Radim Krčmář
2025-11-20 0:42 ` [PATCH 2/7] hw/riscv: define capabilities of CBQRI controllers Drew Fustini
2025-11-20 11:59 ` Daniel Henrique Barboza
2025-11-20 0:42 ` [PATCH 3/7] hw/riscv: implement CBQRI capacity controller Drew Fustini
2025-11-20 11:47 ` Daniel Henrique Barboza
2025-11-21 18:57 ` Drew Fustini
2025-11-20 19:25 ` Radim Krčmář
2025-11-21 19:50 ` Drew Fustini
2025-11-24 17:02 ` Radim Krčmář [this message]
2025-11-24 18:37 ` Drew Fustini
2025-11-25 11:55 ` Radim Krčmář
2025-11-20 0:42 ` [PATCH 4/7] hw/riscv: implement CBQRI bandwidth controller Drew Fustini
2025-11-20 11:51 ` Daniel Henrique Barboza
2025-11-24 17:06 ` Radim Krčmář
2025-11-24 18:45 ` Drew Fustini
2025-11-20 0:42 ` [PATCH 5/7] hw/riscv: Kconfig: add CBQRI options Drew Fustini
2025-11-20 0:42 ` [PATCH 6/7] hw/riscv: meson: add CBQRI controllers to the build Drew Fustini
2025-11-20 12:01 ` Daniel Henrique Barboza
2025-11-20 20:56 ` Drew Fustini
2025-11-20 0:42 ` [PATCH 7/7] hw/riscv: add CBQRI controllers to virt machine Drew Fustini
2025-11-20 12:01 ` Daniel Henrique Barboza
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DEH356RBYAIG.IS7SP4D5XLIQ@ventanamicro.com \
--to=rkrcmar@ventanamicro.com \
--cc=Alistair.Francis@wdc.com \
--cc=atish.patra@linux.dev \
--cc=atishp@rivosinc.com \
--cc=cp0613@linux.alibaba.com \
--cc=cuiyunhui@bytedance.com \
--cc=dbarboza@ventanamicro.com \
--cc=fustini@kernel.org \
--cc=guo.wenjia23@zte.com.cn \
--cc=liu.qingtao2@zte.com.cn \
--cc=liwei1518@gmail.com \
--cc=mindal@semihalf.com \
--cc=npitre@baylibre.com \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-riscv-bounces+qemu-riscv=archiver.kernel.org@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=vasu@rivosinc.com \
--cc=zhiwei_liu@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.