[PATCH] drm/panic: depends on !VT_CONSOLE
Jocelyn Falempe
jfalempe at redhat.com
Mon Jun 17 09:20:46 UTC 2024
On 17/06/2024 10:25, Geert Uytterhoeven wrote:
> Hi Jocelyn,
>
> On Mon, Jun 17, 2024 at 10:16 AM Jocelyn Falempe <jfalempe at redhat.com> wrote:
>> On 16/06/2024 14:43, Javier Martinez Canillas wrote:
>>> Jocelyn Falempe <jfalempe at redhat.com> writes:
>>>> The race condition between fbcon and drm_panic can only occurs if
>>>> VT_CONSOLE is set. So update drm_panic dependency accordingly.
>>>> This will make it easier for Linux distributions to enable drm_panic
>>>> by disabling VT_CONSOLE, and keeping fbcon terminal.
>>>> The only drawback is that fbcon won't display the boot kmsg, so it
>>>> should rely on userspace to do that.
>>>> At least plymouth already handle this case with
>>>> https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/224
>>>>
>>>> Suggested-by: Daniel Vetter <daniel.vetter at ffwll.ch>
>>>> Signed-off-by: Jocelyn Falempe <jfalempe at redhat.com>
>>>> ---
>>>> drivers/gpu/drm/Kconfig | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
>>>> index a9df94291622..f5c989aed7e9 100644
>>>> --- a/drivers/gpu/drm/Kconfig
>>>> +++ b/drivers/gpu/drm/Kconfig
>>>> @@ -107,7 +107,7 @@ config DRM_KMS_HELPER
>>>>
>>>> config DRM_PANIC
>>>> bool "Display a user-friendly message when a kernel panic occurs"
>>>> - depends on DRM && !FRAMEBUFFER_CONSOLE
>>>> + depends on DRM && !(FRAMEBUFFER_CONSOLE && VT_CONSOLE)
>>>
>>> I thought the idea was to only make it depend on !VT_CONSOLE, so that
>>> distros could also enable fbcon / VT but prevent the race condition to
>>> happen due the VT not being a system console for the kernel to print
>>> messages ?
>>
>> Yes, but when writing the patch, I thought that if you have VT_CONSOLE=y
>> and FRAMEBUFFER_CONSOLE=n, then there won't be any race condition, and
>> drm_panic can be enabled safely.
>> I don't know if that really matters, and if VT_CONSOLE has any usage
>> apart from fbcon.
>
> It is used for any kind of virtual terminal, so also for vgacon.
Ah thanks, but I think vgacon is safe to use with drm_panic.
The problem with fbcon, is that it can also uses the fbdev emulation
from the drm driver, and in this case, drm_panic will write to the same
framebuffer as fbcon during a panic, leading to corrupted output.
This can't occur with other graphical console, so !(FRAMEBUFFER_CONSOLE
&& VT_CONSOLE) is probably good.
--
Jocelyn
>
> Gr{oetje,eeting}s,
>
> Geert
>
More information about the dri-devel
mailing list