Re: [PATCH v6 10/10] arm_mpam: detect and enable MPAM-Fb PCC support
From: Andre Przywara
Date: Fri Jul 31 2026 - 06:18:57 EST
Hi Lee,
On 7/31/26 00:28, Lee Trager wrote:
On 7/30/26 8:25 AM, Andre Przywara wrote:
+static struct mpam_pcc_chan *mpam_pcc_chan_get(struct device *dev,I think this may need a unit conversion. ACPI 6.6 describes PCC nominal latency in microseconds, and the PCC mailbox driver appears to copy that value directly into pcc_chan->latency. However mbox_client::tx_tout is documented in milliseconds.
+ int subspace_id)
+{
+ struct mpam_pcc_chan *cur;
+
+ guard(mutex)(&pcc_chan_list_lock);
+
+ list_for_each_entry(cur, &pcc_chan_list, pcc_chans) {
+ if (cur->subspace_id == subspace_id) {
+ kref_get(&cur->refcount);
+
+ return cur;
+ }
+ }
+
+ cur = kzalloc_obj(*cur);
+ if (!cur)
+ return ERR_PTR(-ENOMEM);
+
+ cur->pcc_cl.dev = dev;
+ cur->pcc_cl.tx_block = true;
+
+ cur->pcc_chan = pcc_mbox_request_channel(&cur->pcc_cl, subspace_id);
+ if (IS_ERR(cur->pcc_chan)) {
+ long err = PTR_ERR(cur->pcc_chan);
+
+ kfree(cur);
+ return ERR_PTR(err);
+ }
+
+ /* Timeout based on the "nominal latency" from the PCC ACPI table. */
+ cur->pcc_cl.tx_tout = cur->pcc_chan->latency * 5;
Ah, good point, they are indeed using different units.
Will fix that.
Thanks,
Andre
If I'm reading that correctly, assigning latency * 5 would make the timeout 1000 times longer than intended. Would something like this be better?
cur->pcc_cl.tx_tout = DIV_ROUND_UP_ULL((u64)cur->pcc_chan->latency * 5, USEC_PER_MSEC);