From: John Harrison <John@Hendrik.org.uk>
To: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Intel-Xe@lists.freedesktop.org, Matthew Brost <matthew.brost@intel.com>
Subject: Re: [PATCH v7 03/10] drm/xe/devcoredump: Add ASCII85 dump helper function
Date: Fri, 6 Sep 2024 19:06:06 -0700 [thread overview]
Message-ID: <b2002802-50d5-42bd-abb3-ffdf8ed33e69@Hendrik.org.uk> (raw)
In-Reply-To: <avsxdhqepybtshgp3zfhdtv2beqaub7mg3nvkj7yws7utc5e5p@44uqzzgz6h3m>
On 9/5/2024 20:04, Lucas De Marchi wrote:
> On Thu, Sep 05, 2024 at 07:01:33PM GMT, John Harrison wrote:
>> On 9/5/2024 18:54, Lucas De Marchi wrote:
>>> On Thu, Sep 05, 2024 at 01:50:58PM GMT, John.C.Harrison@Intel.com
>>> wrote:
>>>> From: John Harrison <John.C.Harrison@Intel.com>
>>>>
>>>> There is a need to include the GuC log and other large binary objects
>>>> in core dumps and via dmesg. So add a helper for dumping to a printer
>>>> function via conversion to ASCII85 encoding.
>>>
>>> why are we not dumping the binary data directly to devcoredump?
>> As per earlier comments, there is a WiFi driver or some such that
>> does exactly that. But all they are dumping is a binary blob.
>
> In your v5 I see you mentioned
> drivers/net/wireless/ath/ath10k/coredump.c, but that is a precedence for
> including it as is from the device rather converting it to ASCII85 or
> something else. It seems odd to do that type of conversion in kernel
> space when it could be perfectly done in userspace.
It really can't. An end user could maybe be expected to zip or tar a
coredump file before attaching it to a bug report but they are certainly
not going to try to ASCII85 encode random bits of it. Whereas, putting
that in the kernel means it is just there. It is done. And it is pretty
trivial - just call a helper function and it does everything for you.
Also, I very much doubt you can spew raw binary data via dmesg. Even if
the kernel would print it for you (which I doubt), the user tools like
syslogd and dmesg itself are going to filter it to make it ASCII safe.
The i915 error dumps have been ASCII85 encoded using the kernel's
ASCII85 encoding helper function since forever. This patch is just a
wrapper around the kernel's existing implementation in order to make it
more compatible with printing to dmesg. This is not creating a new
precedent. It already exists.
>
> $ git grep ascii85.h
> drivers/gpu/drm/i915/i915_gpu_error.c:#include <linux/ascii85.h>
> drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:#include <linux/ascii85.h>
> drivers/gpu/drm/msm/adreno/adreno_gpu.c:#include <linux/ascii85.h>
> drivers/gpu/drm/xe/xe_lrc.c:#include <linux/ascii85.h>
> drivers/gpu/drm/xe/xe_vm.c:#include <linux/ascii85.h>
And the list of drivers which dump raw binary data in a coredump file
is... ath10k. ASCII85 wins 3 to 1.
>
>>
>> We want the devcoredump file to still be human readable. That won't
>> be the case if you stuff binary data in the middle of it. Most
>> obvious problem - the zeros in the data will terminate your text file
>> at that point. Potentially bigger problem for end users - random fake
>> ANSI codes will destroy your terminal window if you try to cat the
>> file to read it.
>
> Users don't get a coredump and cat it to the terminal.
> =(lk%A8`T7AKYH#FD,6++EqOABHUhsG%5H2ARoq#E$/V$Bl7Q+@<5pmBe<q;Bk;0mCj@.3DIal2FD5Q-+E_RBART+X@VfTuGA2/4Dfp.E@3BN0DfB9.+E1b0F(KAV+:8
>
>
> Lucas De Marchi
They might. Either intentionally or accidentally. I've certainly done it
myself. And people will certainly want to look at it in any random
choice of text editor, pager, etc. 'cos you know, it is meant to be read
by humans. If it is full of binary data then that becomes even more
difficult than simply being full of ASCII gibberish. No matter what you
are doing, the ASCII version is safer and easier to look at the rest of
the file around it.
I don't understand why you are so desperate to have raw binary data in
the middle of a text file. The disadvantages are multiple but the only
advantage is a slightly smaller file. And the true route to smaller
files is to add compression like we have in i915.
John.
next prev parent reply other threads:[~2024-09-09 12:37 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-05 20:50 [PATCH v7 00/10] drm/xe/guc: Improve GuC log dumping and add to devcoredump John.C.Harrison
2024-09-05 20:50 ` [PATCH v7 01/10] drm/xe/guc: Remove spurious line feed in debug print John.C.Harrison
2024-09-10 19:32 ` Julia Filipchuk
2024-09-05 20:50 ` [PATCH v7 02/10] drm/xe/devcoredump: Add a section heading for the submission backend John.C.Harrison
2024-09-10 19:33 ` Julia Filipchuk
2024-09-05 20:50 ` [PATCH v7 03/10] drm/xe/devcoredump: Add ASCII85 dump helper function John.C.Harrison
2024-09-06 1:54 ` Lucas De Marchi
2024-09-06 2:01 ` John Harrison
2024-09-06 3:04 ` Lucas De Marchi
2024-09-07 2:06 ` John Harrison [this message]
2024-09-10 1:31 ` John Harrison
2024-09-10 19:43 ` Lucas De Marchi
2024-09-10 20:17 ` John Harrison
2024-09-11 19:12 ` Lucas De Marchi
2024-09-11 19:30 ` Souza, Jose
2024-09-11 19:35 ` John Harrison
2024-09-11 19:54 ` Souza, Jose
2024-09-11 19:59 ` John Harrison
2024-09-12 13:57 ` Rodrigo Vivi
2024-09-12 18:06 ` John Harrison
2024-09-16 15:32 ` Rodrigo Vivi
2024-09-16 17:46 ` John Harrison
2024-09-11 19:31 ` John Harrison
2024-09-10 19:33 ` Julia Filipchuk
2024-09-11 1:27 ` John Harrison
2024-09-05 20:50 ` [PATCH v7 04/10] drm/xe/guc: Copy GuC log prior to dumping John.C.Harrison
2024-09-11 0:48 ` Julia Filipchuk
2024-09-05 20:51 ` [PATCH v7 05/10] drm/xe/guc: Use a two stage dump for GuC logs and add more info John.C.Harrison
2024-09-11 0:48 ` Julia Filipchuk
2024-09-11 1:14 ` John Harrison
2024-09-05 20:51 ` [PATCH v7 06/10] drm/print: Introduce drm_line_printer John.C.Harrison
2024-09-05 20:51 ` [PATCH v7 07/10] drm/xe/guc: Dead CT helper John.C.Harrison
2024-09-11 0:09 ` John Harrison
2024-09-11 19:55 ` Julia Filipchuk
2024-09-11 20:13 ` John Harrison
2024-09-11 20:57 ` Julia Filipchuk
2024-09-05 20:51 ` [PATCH v7 08/10] drm/xe/guc: Dump entire CTB on errors John.C.Harrison
2024-09-11 20:12 ` Julia Filipchuk
2024-09-05 20:51 ` [PATCH v7 09/10] drm/xe/guc: Add GuC log to devcoredump captures John.C.Harrison
2024-09-11 20:25 ` Julia Filipchuk
2024-09-05 20:51 ` [PATCH v7 10/10] drm/xe/guc: Add a helper function for dumping GuC log to dmesg John.C.Harrison
2024-09-11 20:36 ` Julia Filipchuk
2024-09-11 20:41 ` John Harrison
2024-09-05 20:57 ` ✓ CI.Patch_applied: success for drm/xe/guc: Improve GuC log dumping and add to devcoredump (rev2) Patchwork
2024-09-05 20:57 ` ✗ CI.checkpatch: warning " Patchwork
2024-09-05 20:58 ` ✓ CI.KUnit: success " Patchwork
2024-09-05 21:10 ` ✓ CI.Build: " Patchwork
2024-09-05 21:13 ` ✓ CI.Hooks: " Patchwork
2024-09-05 21:14 ` ✗ CI.checksparse: warning " Patchwork
2024-09-05 22:06 ` ✗ CI.BAT: failure " Patchwork
2024-09-08 0:02 ` ✗ CI.FULL: " Patchwork
2024-09-12 9:16 ` [PATCH v7 00/10] drm/xe/guc: Improve GuC log dumping and add to devcoredump Jani Nikula
2024-09-12 18:50 ` John Harrison
2024-09-13 7:26 ` Jani Nikula
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=b2002802-50d5-42bd-abb3-ffdf8ed33e69@Hendrik.org.uk \
--to=john@hendrik.org.uk \
--cc=Intel-Xe@lists.freedesktop.org \
--cc=lucas.demarchi@intel.com \
--cc=matthew.brost@intel.com \
/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