On Sun, Feb 14, 2021 at 10:42 AM Ramsay Jones <ramsay@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > > I looked around but didn't find any hints how to fix this. Any pointers > > I missed (added the sparse list to cc:)? > > This is a limitation of sparse; when using the 'stringize' pre-processor > operator #, the maximum size of the resulting string is about 8k (if I > remember correctly). Well, yes and no. The C89 standard actually says that a string literal can be at most 509 characters to be portable. C99 increased it to 4095 characters. Sparse makes the limit higher, and the limit could easily be expanded way past 8kB - but the point is that large string literals are actually not guaranteed to be valid C. So honestly, it really sounds like that TRACE_EVENT() thing is doing something it shouldn't be doing. I don't think there's any fundamental limit why sparse does 8kB as a limit (just a few random buffers). Making sparse accept larger ones should be as simple as just increasing MAX_STRING, but I really don't think the kernel should encourage that kind of excessive string sizes. I wouldn't be surprised if tracing buffers etc make such strings useless anyway. Linus