Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
From: Jeffrey Hugo <jhugo@codeaurora.org>
To: Loic Poulain <loic.poulain@linaro.org>
Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
	Hemant Kumar <hemantk@codeaurora.org>,
	linux-arm-msm <linux-arm-msm@vger.kernel.org>
Subject: Re: [PATCH] bus: mhi: core: Indexed MHI controller name
Date: Wed, 25 Nov 2020 09:26:58 -0700	[thread overview]
Message-ID: <f153e356-8750-cd18-3a4c-904e41136e7d@codeaurora.org> (raw)
In-Reply-To: <CAMZdPi-XNbfQuXJnGmodqTUH+Oh23RHZWy8_CMcFEu9Ga70MpQ@mail.gmail.com>

On 11/25/2020 9:23 AM, Loic Poulain wrote:
> On Wed, 25 Nov 2020 at 16:49, Jeffrey Hugo <jhugo@codeaurora.org> wrote:
>>
>> On 11/25/2020 8:42 AM, Jeffrey Hugo wrote:
>>> On 11/25/2020 8:43 AM, Loic Poulain wrote:
>>>> Today the MHI controller name is simply cloned from the underlying
>>>> bus device (its parent), that gives the following device structure
>>>> for e.g. a MHI/PCI controller:
>>>> devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:02:00.0
>>>> devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:02:00.0/0000:02:00.0_IPCR
>>>>
>>>> ...
>>>>
>>>> That's quite misleading/confusing and can cause device registering
>>>> issues because of duplicate dev name (e.g. if a PCI device register
>>>> two different MHI instances).
>>>>
>>>> This patch changes MHI core to create indexed mhi controller names
>>>> (mhi0, mhi1...) in the same way as other busses (i2c0, usb0...).
>>>>
>>>> The previous example becomes:
>>>> devices/pci0000:00/0000:00:01.2/0000:02:00.0/mhi0
>>>> devices/pci0000:00/0000:00:01.2/0000:02:00.0/mhi0/mhi0_IPCR
>>>> ...
>>>>
>>>> Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
>>>
>>>
>>> How does this change /sys/bus/mhi/devices/ ?
>>>
>>> The point of having the bus name in the mhi device name is to give an
>>> easy way to correlate those devices back to the "root" device (I have a
>>> lot of users which do that).
>>>
>>> Also, do we actually have some device that actually exposes multiple MHI
>>> interfaces?
>>>
>>>
>>
>> Looking at the code change itself, looks like the controller index is
>> essentially random, and not persistent.  Is that expected?
>>
>> I'm thinking it might be confusing if you have say 12 MHI controllers
>> from 12 different devices, and some of those devices crash at roughly
>> the same time.  The controllers get removed, and re-initialized, which
>> means that you have essentially a race condition where the controller
>> for the same device now has a different index.
> 
> There is no race since ID is atomically allocated, but yes your
> controller can get a different index on unregister/register, like e.g
> network interfaces index, usb devices ID, video devices, etc... can be
> enumerated in various order. Not sure why the user should take care of
> the MHI controller index.

You said there is no race, but then literally described a race.

It appears we agree, the enumeration first time around may not be the 
same enumeration order later on.

The point is not that the user cares that they always talk to mhi0.  The 
point is that the user was talking to mhi0, that crashed, re-enumerated, 
and is now mhi3.

-- 
Jeffrey Hugo
Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.

  reply	other threads:[~2020-11-25 16:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-25 15:43 [PATCH] bus: mhi: core: Indexed MHI controller name Loic Poulain
2020-11-25 15:42 ` Jeffrey Hugo
2020-11-25 15:49   ` Jeffrey Hugo
2020-11-25 16:23     ` Loic Poulain
2020-11-25 16:26       ` Jeffrey Hugo [this message]
2020-11-25 16:15   ` Loic Poulain
2020-11-25 16:24     ` Jeffrey Hugo
2020-11-25 17:14 ` Jeffrey Hugo

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=f153e356-8750-cd18-3a4c-904e41136e7d@codeaurora.org \
    --to=jhugo@codeaurora.org \
    --cc=hemantk@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=loic.poulain@linaro.org \
    --cc=manivannan.sadhasivam@linaro.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox