Re: [PATCH] mmc: block: Use the mmc host device index as the mmcblk device index

Ulf Hansson
2016-04-07T13:07:31Z

On 7 April 2016 at 14:07, Jaehoon Chung <jh80.chung@samsung.com> wrote:
> On 04/07/2016 04:57 PM, Ulf Hansson wrote:
>> Commit 520bd7a8b415 ("mmc: core: Optimize boot time by detecting cards
>> simultaneously") causes regressions for some platforms.
>>
>> These platforms relies on fixed mmcblk device indexes, instead of
>> deploying the defacto standard with UUID/PARTUUID. In other words their
>> rootfs needs to be available at hardcoded paths, like /dev/mmcblk0p2.
>>
>> Such guarantees have never been made by the kernel, but clearly the above
>> commit changes the behaviour. More precisely, because of that the order
>> changes of how cards becomes detected, so do their corresponding mmcblk
>> device indexes.
>>
>> As the above commit significantly improves boot time for some platforms
>> (magnitude of seconds), let's avoid reverting this change but instead
>> restore the behaviour of how mmcblk device indexes becomes picked.
>>
>> By using the same index for the mmcblk device as for the corresponding mmc
>> host device, the probe order of mmc host devices decides the index we get
>> for the mmcblk device.
>>
>> For those platforms that suffers from a regression, one could expect that
>> this updated behaviour should be sufficient to meet their expectations of
>> "fixed" mmcblk device indexes.
>>
>> Another side effect from this change, is that the same index is used for
>> the mmc host device, the mmcblk device and the mmc block queue. That
>> should clarify their relationship.
>
> I have tested with this patch..but there also are side-effects.
> Exynos4 series has the two host controller..one is sdhci, one is dwmmc for eMMC.
> In this case, dwmmc controller is probed after sdhci controller.
>
> Then eMMC is always assigned to mmcblk1.

Okay, let me follow up with some questions.

1)
What is the sdhci controller used for?

2)
Are you seeing regressions for Exynos for this? I was under the
assumption that your vendor trees contained patches to deal with fixed
mmcblk ids?

3)
You proposed [1] recently to use aliases in DT to support fixed mmcblk
ids. I do realize that as UUID/PARTUUID sometimes can be a bit
cumbersome to use for an embedded system. Using aliases via DT seems
like a very good option. To implement that on top of $subject patch
should be quite easy to fix (I am happy to help with it). Would that
address your concerns?

>
> I think it's not good that make another problem for solving something.
> It needs more discussion for this..

Thanks for testing and your comments!

Kind regards
Uffe

[1]