Re: [Question mpam mpam/snapshot+extras/v6.18-rc1] Question with Configuring iommu_group in 'task'

From: Ben Horgan

Date: Fri Mar 27 2026 - 06:50:57 EST


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.

>
>  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