Re: [PATCH] memory: tegra: add multi-socket support to the memory interconnect

From: Krzysztof Kozlowski

Date: Thu May 28 2026 - 08:23:59 EST


On 28/05/2026 13:56, Thierry Reding wrote:
>>>>>
>>>>> - mc->debugfs.root = debugfs_create_dir("mc", NULL);
>>>>> + if (!mc_debugfs_root)
>>>> That's a probe path and you created a singletone. Looks like preventing
>>>> async probing for no real reason.
>>>>
>>>> I am very against singletons and debugfs does not look like justified
>>>> exception.
>>>
>>> The singleton was added so multi-socket MC/EMC instances could
>>> share a "mc"/"emc" parent. I'll drop it in v2.
>>>
>>> On single-socket SoCs, the "mc"/"emc" names will be unchanged.
>>> On multi-socket SoCs, each instance will create a top-level debugfs
>>> dir named with dev_name(). Same pattern in tegra186-emc.c.
>>>
>>>   if (dev_to_node(mc->dev) == NUMA_NO_NODE)
>>>       mc->debugfs.root = debugfs_create_dir("mc", NULL);
>>>   else
>>>       mc->debugfs.root = debugfs_create_dir(dev_name(mc->dev), NULL);
>>
>> You assume this is fully synced, so you as well could do a look up and
>> then use what you found or create new dir. If you think that is racy, so
>> is this approach... How are other drivers handling per-device debugfs
>> directories? Do they also create such in the top-level? I think no.
>
> I think we want a top-level directory for a bit more structure in
> debugfs. But I also think we want to create that top-level directory in
> the module's init function rather than _probe.

I was thinking about this as well but that would mean your driver will
create it on every multi-arch kernel.

This should be then moved to some core bus (and there are examples of
that, e.g. USB), except there is no core-MC bus code to do that.

> Granted, that means we
> can't use any of those helper macros, but we don't use that for the MC
> driver anyway.
>
> Thierry


Best regards,
Krzysztof