Re: linux-next: runtime warning in next-20220125

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Jan 25, 2022, at 10:36 AM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> 
> On Tue, 25 Jan 2022 10:01:38 -0500
> Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> 
>> On Tue, 25 Jan 2022 16:21:46 +1100
>> Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>> 
>>> Hi all,
>>> 
>>> On Tue, 25 Jan 2022 16:05:05 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:  
>>>> 
>>>> My qemu boot test of a powerpc pseries_le_defconfig kernel produces the
>>>> following trace:
>>>> 
>>>> ------------[ cut here ]------------
>>>> WARNING: CPU: 0 PID: 0 at kernel/trace/trace_events.c:417 trace_event_raw_init+0x194/0x730
>>>> Modules linked in:
>>>> CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.17.0-rc1 #2
>>>> NIP:  c0000000002bdbb4 LR: c0000000002bdcb0 CTR: c0000000002bdb70
>>>> 
>>>> I have no idea what has caused this :-(  Maybe commit
>>>> 
>>>>  5544d5318802 ("SUNRPC: Same as SVC_RQST_ENDPOINT, but without the xid")    
>>> 
>>> Actually, reverting commits
>>> 
>>>  6ff851d98af8 ("SUNRPC: Improve sockaddr handling in the svc_xprt_create_error trace point")
>>>  5544d5318802 ("SUNRPC: Same as SVC_RQST_ENDPOINT, but without the xid")
>>>  e2d3613db12a ("SUNRPC: Record endpoint information in trace log")
>>> 
>>> makes the warning go away.
>>> 
>> 
>> We added a new way to save items on the ring buffer, but did not update the
>> safety checks to know about them. I'll fix this shortly.
>> 
> 
> This should fix it:
> 
> I'll make it a real patch and start running it through my tests.

Should this be squashed into the patch that adds __get_sockaddr() ?

I have an updated version of that patch that applies on kernels
that have __rel_dynamic_array.


> -- Steve
> 
> 
> diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
> index 3147614c1812..f527ae807e77 100644
> --- a/kernel/trace/trace_events.c
> +++ b/kernel/trace/trace_events.c
> @@ -384,6 +384,12 @@ static void test_event_printk(struct trace_event_call *call)
> 			if (!(dereference_flags & (1ULL << arg)))
> 				goto next_arg;
> 
> +			/* Check for __get_sockaddr */;
> +			if (str_has_prefix(fmt + i, "__get_sockaddr(")) {
> +				dereference_flags &= ~(1ULL << arg);
> +				goto next_arg;
> +			}
> +
> 			/* Find the REC-> in the argument */
> 			c = strchr(fmt + i, ',');
> 			r = strstr(fmt + i, "REC->");

--
Chuck Lever







[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux