[PATCH 3/3] drm/panic: Add a kmsg dump screen

Jocelyn Falempe jfalempe at redhat.com
Fri May 31 09:53:33 UTC 2024



On 31/05/2024 11:32, Javier Martinez Canillas wrote:
> Jocelyn Falempe <jfalempe at redhat.com> writes:
> 
>> Add a kmsg dump option, which will display the last lines of kmsg,
>> and should be similar to fbcon.
>> Add a Kconfig choice for the panic screen, so that the user can
>> choose between this new kmsg dump, or the userfriendly option.
>>
>> Signed-off-by: Jocelyn Falempe <jfalempe at redhat.com>
>> ---
>>   drivers/gpu/drm/Kconfig     |  21 +++++
>>   drivers/gpu/drm/drm_panic.c | 151 +++++++++++++++++++++++++++---------
>>   2 files changed, 136 insertions(+), 36 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
>> index 9703429de6b9..78d401b55102 100644
>> --- a/drivers/gpu/drm/Kconfig
>> +++ b/drivers/gpu/drm/Kconfig
>> @@ -137,6 +137,27 @@ config DRM_PANIC_DEBUG
>>   	  This is unsafe and should not be enabled on a production build.
>>   	  If in doubt, say "N".
>>   
>> +choice
>> +	prompt "Panic screen formater"
>> +	default DRM_PANIC_SCREEN_USERFRIENDLY
>> +	depends on DRM_PANIC
>> +	help
>> +	  This option enable to choose what will be displayed when a kernel
>> +	  panic occurs.
>> +
>> +	config DRM_PANIC_SCREEN_USERFRIENDLY
>> +		bool "Default user friendly message"
>> +		help
>> +		  Only a short message telling the user to reboot the system.
>> +
>> +	config DRM_PANIC_SCREEN_KMSG
>> +		bool "Display the last lines of kmsg"
>> +		help
>> +		  Display kmsg last lines on panic.
>> +		  Enable if you are a kernel developer, and want to debug a
>> +		  kernel panic.
>> +endchoice
> 
> Why having it as a compile time option and not a runtime option ? AFAICT
> this could be a drm.panic_format= kernel command line parameter instead.

Yes, I didn't think about it. That would allow to get more debug 
information from a user without rebuilding the kernel.

I'll prepare a v2 with that.

I prefer to use a drm.panic_screen=, as "format" might be confusing with 
the color format ?

> 
> [...]
>    
>> -/*
>> - * Draw the panic message at the center of the screen
>> - */
>> +#if defined(CONFIG_DRM_PANIC_SCREEN_USERFRIENDLY)
>> +
> 
> And that could avoid ifdefery in the C file.
> 
> [...]
> 
>> +#elif defined(CONFIG_DRM_PANIC_SCREEN_KMSG)
>> +
>> +#include <linux/kmsg_dump.h>
>> +#include <linux/printk.h>
>> +
> 
> I would add these even if guarded by DRM_PANIC_SCREEN_KMSG, to the
> start of the C file where are the other headers include directives.
> 
> The patch looks good to me though, so if you prefer to keep it as a
> build time option:
> 
> Reviewed-by: Javier Martinez Canillas <javierm at redhat.com>
> 



More information about the dri-devel mailing list