All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org>
To: Vicente Bergas <vicencb-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: "Heiko Stübner" <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>,
	Jeffy <jeffy.chen-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
	"Sandy Huang" <hjc-TNX95d0MmH7DzftRWevZcw@public.gmane.org>,
	"Tomasz Figa" <tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	"open list:ARM/Rockchip SoC..."
	<linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"Klaus Goger"
	<klaus.goger-SN7IsUiht6C/RdPyistoZJqQE7yCjDx5@public.gmane.org>,
	"Sean Paul" <seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	"Robin Murphy" <robin.murphy-5wv7dgnIgG8@public.gmane.org>,
	"Jakob Unterwurzacher"
	<jakob.unterwurzacher-SN7IsUiht6C/RdPyistoZJqQE7yCjDx5@public.gmane.org>
Subject: Re: [regression] HDMI breakage just before poweroff
Date: Wed, 13 Jun 2018 11:26:57 +0100	[thread overview]
Message-ID: <cc147c40-dbad-b714-3fe6-858854a56004@arm.com> (raw)
In-Reply-To: <CAAMcf8AmuMStdSUHGEQhii7BUtTRHOSyLhop43rf_nX0GROnnw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On 13/06/18 08:15, Vicente Bergas wrote:
> On Tue, Jun 12, 2018 at 1:02 PM, Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org> wrote:
>> On Tue, 12 Jun 2018 11:30:49 +0100,
>> Tomasz Figa <tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> wrote:
>>>
>>> On Tue, Jun 12, 2018 at 7:27 PM JeffyChen <jeffy.chen-TNX95d0MmH7DzftRWevZcw@public.gmane.org> wrote:
>>>>
>>>> Hi Marc,
>>>>
>>>> On 06/12/2018 04:54 PM, Marc Zyngier wrote:
>>>>> On 12/06/18 04:52, JeffyChen wrote:
>>>>>> Hi Vicente,
>>>>>>
>>>>>> On 06/12/2018 06:04 AM, Vicente Bergas wrote:
>>>>>>> On Thu, May 3, 2018 at 2:14 PM, Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org> wrote:
>>>>>>>> On 03/05/18 04:51, JeffyChen wrote:
>>>>>>>>> On 05/03/2018 03:36 AM, Vicente Bergas wrote:
>>>>>>> [snip]
>>>>>>>>>> With 4.17.0-rc3, when reaching the halted state, the HDMI console
>>>>>>>>>> shows colorful static noise.
>>>>>>>>>>
>>>>>>>>> we've added a shutdown() to the iommu driver:
>>>>>>>>> https://patchwork.kernel.org/patch/10230817/
>>>>>>>>>
>>>>>>>>> any chance related?
>>>>>>>>
>>>>>>>> For sure - the IOMMU shutdown disables paging, so if the VOP is still
>>>>>>>> scanning out then that will result in whatever IOVAs it was using now going
>>>>>>>> straight out onto the bus as physical addresses. Between the RK3399 memory
>>>>>>>> map and the way the IOVA allocator works, that probably means it's reading
>>>>>>>> from all over the peripherals region, which, er, isn't ideal.
>>>>>>>
>>>>>>> Hi,
>>>>>>> just wondering if there has been any progress on that front?
>>>>>>>
>>>>>>
>>>>>> maybe we can add .shutdown() to rockchip_drm_drv too? (maybe just call
>>>>>> drm_atomic_helper_shutdown())
>>>>>>
>>>>>> could you help to try this hack:
>>>>>>
>>>>>> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
>>>>>> @@ -451,6 +451,7 @@ MODULE_DEVICE_TABLE(of, rockchip_drm_dt_ids);
>>>>>>    static struct platform_driver rockchip_drm_platform_driver = {
>>>>>>           .probe = rockchip_drm_platform_probe,
>>>>>>           .remove = rockchip_drm_platform_remove,
>>>>>> +       .shutdown = rockchip_drm_platform_remove,
>>>>>>
>>>>>
>>>>> Is there any mechanism guaranteeing the ordering of shutdown between VOP
>>>>> and IOMMU?
>>>>
>>>> it seems like the device_shutdown() will walk the devices_kset->list
>>>> backward.
>>>>
>>>> and the devices_kset->list's order is based on the probe
>>>> order(drivers/base/dd.c -> really_probe() -> devices_kset_move_last())
>>>>
>>>> and we are using of_iommu for rockchip-iommu, which would make sure
>>>> iommu probed before iommu master, so the vop iommu would be
>>>> shutdown after vop
>>>
>>> Rather than shutting down the IOMMU, shouldn't we shut down all the
>>> respective master? The latter would automatically imply shutting down
>>> the IOMMUs, so we could remove the shutdown callback from the IOMMU
>>> driver.
>>
>> As long as you can definitely ensure that you cannot have a active
>> IOMMU by the time you hit reboot/halt/kexec, that should work. But
>> experience seems to indicate that this is not a universal truth.
>>
>> I'd be more confident if we had some form of fallback that would work
>> in the kexec/kdump use case.
>>
>> Thanks,
>>
>>         M.
>>
>> --
>> Jazz is not dead, it just smell funny.
> 
> Hi,
> just tested it.
> There was an issue because of 'incompatible pointer type',
> see the proper patch at the bottom.
> 
> It seems to do what it is expected to do, that is, it shuts down the display.
> I am not sure that this is what is wanted.
> When the system is in the halted state, should not it show the last messages?
> For this, the display needs to be operational.

Well, we can't have everything, unfortunately. We definitely need to
stop the IOMMU in order to kexec safely, which is an important use-case.

A possibility would be to switch to a directly mapped buffer on
shutdown, but I'm not sure how we can enforce that at this stage.

> 
> Regards,
>   Vicente.
> 
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> @@ -451,6 +451,7 @@
>  static struct platform_driver rockchip_drm_platform_driver = {
>      .probe = rockchip_drm_platform_probe,
>      .remove = rockchip_drm_platform_remove,
> +    .shutdown = (void (*)(struct platform_device
> *))rockchip_drm_platform_remove,

No, please... :-( Provide a wrapper that returns void instead.

>      .driver = {
>          .name = "rockchip-drm",
>          .of_match_table = rockchip_drm_dt_ids,
> 

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

  parent reply	other threads:[~2018-06-13 10:26 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-02 19:36 [regression] HDMI breakage just before poweroff Vicente Bergas
     [not found] ` <CAAMcf8D86ssM+YeFAXaYDm9QwwAQLdaOgWyC2F8yQ-_-UNyY+A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-05-03  3:51   ` JeffyChen
     [not found]     ` <5AEA873A.7080701-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2018-05-03 12:14       ` Robin Murphy
     [not found]         ` <0284fa4f-abd6-26f6-31e2-1a6d24777733-5wv7dgnIgG8@public.gmane.org>
2018-05-03 15:10           ` JeffyChen
     [not found]             ` <5AEB2670.9090305-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2018-05-03 20:33               ` Vicente Bergas
2018-05-03 21:15           ` Vicente Bergas
2018-06-11 22:04           ` Vicente Bergas
     [not found]             ` <CAAMcf8BJ1skbmR7AazyTPkkdyMoyuA0ihj=Gbnhb9nKWf3FSGg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-12  3:52               ` JeffyChen
     [not found]                 ` <5B1F4375.7000000-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2018-06-12  8:54                   ` Marc Zyngier
     [not found]                     ` <77e4c6e1-015f-5fac-66b6-c942bb2dc9d8-5wv7dgnIgG8@public.gmane.org>
2018-06-12 10:27                       ` JeffyChen
     [not found]                         ` <5B1F9FF7.5070203-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2018-06-12 10:30                           ` Tomasz Figa
     [not found]                             ` <CAAFQd5D__ArEYSVoWL5A40X6vbYxJ-vOYpsXxiLujC-XK9u2+A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-12 11:02                               ` Marc Zyngier
     [not found]                                 ` <86efhc8dyg.wl-marc.zyngier-5wv7dgnIgG8@public.gmane.org>
2018-06-13  7:15                                   ` Vicente Bergas
     [not found]                                     ` <CAAMcf8AmuMStdSUHGEQhii7BUtTRHOSyLhop43rf_nX0GROnnw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-13 10:26                                       ` Marc Zyngier [this message]
     [not found]                                         ` <cc147c40-dbad-b714-3fe6-858854a56004-5wv7dgnIgG8@public.gmane.org>
2018-06-13 10:46                                           ` JeffyChen
     [not found]                                             ` <5B20F5F0.9090101-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2018-06-15 16:39                                               ` Vicente Bergas
     [not found]                                                 ` <CAAMcf8D1-7YvOeOMd+rJOWX7XNQwKeAYjfmyAHOR8TC6vc=G1w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-15 16:51                                                   ` Marc Zyngier
     [not found]                                                     ` <7ce78e65-51b6-9204-5bb4-e515e36576d4-5wv7dgnIgG8@public.gmane.org>
2018-06-15 18:46                                                       ` Vicente Bergas
     [not found]                                                         ` <CAAMcf8C3fS1SdZVKrsu9zRMn69BcAtFL44QvWMJ8zn4CySnfcw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-16 10:35                                                           ` Marc Zyngier
2018-08-05 14:09                                               ` [PATCH] drm/rockchip: shutdown drm subsystem on shutdown Vicente Bergas
     [not found]                                                 ` <20180805140911.19205-1-vicencb-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-08-05 16:50                                                   ` Marc Zyngier
     [not found]                                                     ` <20180805175038.1d3a0c5e-Fmn/x+r+pSA9//JtdbceeD8Kkb2uy4ct@public.gmane.org>
2018-08-05 17:38                                                       ` Vicente Bergas
     [not found]                                                         ` <CAAMcf8CyUri0LigtJWvahLK62ihPUYa_UvA+2q_EA8m+TL2cqw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-05 18:23                                                           ` Marc Zyngier
2018-08-07 12:44                                                   ` Heiko Stuebner
2018-08-07 16:05                                                     ` Vicente Bergas
     [not found]                                                       ` <CAAMcf8D8Vwgi-Amqt8ou9LbDrsRTePjCvwDXWo1JUTGTxLyn_w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-07 16:07                                                         ` Heiko Stuebner
2018-08-07 16:20                                                           ` Vicente Bergas
     [not found]                                                             ` <CAAMcf8DJhBk8rG65SmQR4vwtj1zfm7jfKJJ4nAx6OsAeu52T2A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-09-09 13:43                                                               ` Marc Zyngier
     [not found]                                                                 ` <20180909144300.3908a11b-Fmn/x+r+pSA9//JtdbceeD8Kkb2uy4ct@public.gmane.org>
2018-09-10  9:08                                                                   ` Heiko Stuebner
2018-09-10  9:57                                                                     ` Marc Zyngier

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=cc147c40-dbad-b714-3fe6-858854a56004@arm.com \
    --to=marc.zyngier-5wv7dgnigg8@public.gmane.org \
    --cc=heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org \
    --cc=hjc-TNX95d0MmH7DzftRWevZcw@public.gmane.org \
    --cc=jakob.unterwurzacher-SN7IsUiht6C/RdPyistoZJqQE7yCjDx5@public.gmane.org \
    --cc=jeffy.chen-TNX95d0MmH7DzftRWevZcw@public.gmane.org \
    --cc=klaus.goger-SN7IsUiht6C/RdPyistoZJqQE7yCjDx5@public.gmane.org \
    --cc=linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=robin.murphy-5wv7dgnIgG8@public.gmane.org \
    --cc=seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=tfiga-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=vicencb-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.