[Question mpam mpam/snapshot+extras/v6.18-rc1] Question with Configuring iommu_group in 'task'
Qinxin Xia
xiaqinxin at huawei.com
Thu Apr 2 19:44:35 PDT 2026
On 2026/3/27 18:47:49, Ben Horgan <ben.horgan at arm.com> wrote:
> Hi Qinxin,
>
> On 3/27/26 10:21, Qinxin Xia wrote:
>>
>> Hello everyone!
>>
>> In earlier versions, mpam supports the configuration of iommu_groups.
>>
>> 823 static ssize_t rdtgroup_tasks_write(struct kernfs_open_file *of,
>> 824 char *buf, size_t nbytes,
>> loff_t off)
>> 825 {
>> 826 struct rdtgroup *rdtgrp;
>> 827 int iommu_group_id;
>> 828 bool is_iommu;
>> 829 char *pid_str;
>> 830 int ret = 0;
>> 831 pid_t pid;
>> 832
>> 833 rdtgrp = rdtgroup_kn_lock_live(of->kn);
>> 834 if (!rdtgrp) {
>> 835 rdtgroup_kn_unlock(of->kn);
>> 836 return -ENOENT;
>> 837 }
>> 838 rdt_last_cmd_clear();
>> 839
>> 840 if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED ||
>> 841 rdtgrp->mode == RDT_MODE_PSEUDO_LOCKSETUP) {
>> 842 ret = -EINVAL;
>> 843 rdt_last_cmd_puts("Pseudo-locking in progress\n");
>> 844 goto unlock;
>> 845 }
>> 846
>> 847 while (buf && buf[0] != '\0' && buf[0] != '\n') {
>> 848 pid_str = strim(strsep(&buf, ","));
>> 849
>> 850 is_iommu = string_is_iommu_group(pid_str, &iommu_group_id);
>>
>> What puzzles me is why we would put it under 'task'—this seems a little
>> strange to users.It seems they are not related.Why don't we add a new
>> interface like 'iommu'?
>
> I think it is likely that this interface would change if upstream support is added.
>
I have done some work in this direction before, and I will release an
RFC later for further discussion.:-)
>>
>> 851 if (is_iommu)
>> 852 ret = rdtgroup_move_iommu(iommu_group_id, rdtgrp, of);
>> 853 else if (kstrtoint(pid_str, 0, &pid)) {
>> 854 rdt_last_cmd_printf("Task list parsing error pid %s\n", pid_str);
>> 855 ret = -EINVAL;
>> 856 break;
>> 857 }
>> 858
>> 859 if (pid < 0) {
>> 860 rdt_last_cmd_printf("Invalid pid %d\n", pid);
>> 861 ret = -EINVAL;
>> 862 break;
>> 863 }
>> 864
>>
>> In future glue versions, will you re-enable support for iommu_group, and
>> if so, will the configuration scheme be changed?
>
> Please can you let us know about your usecase so that we can get more information to decide
> what the best interface would be?
>
> Thanks,
>
> Ben
>
>
>
We want to use the iommu mpam to implement stream control for different
PCIe devices. By limiting the access bandwidth of some PCIe devices, the
high-priority service devices can obtain more resources.
--
Thanks,
Qinxin
More information about the linux-arm-kernel
mailing list