lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <0000000000009ad11905e53fc99f@google.com>
Date:   Tue, 02 Aug 2022 03:43:31 -0700
From:   syzbot <syzbot+70c4a3a8fe7f7e1af947@...kaller.appspotmail.com>
To:     Hillf Danton <hdanton@...a.com>
Cc:     hdanton@...a.com, linux-kernel@...r.kernel.org,
        syzkaller-bugs@...glegroups.com
Subject: Re: [syzbot] INFO: rcu detected stall in gc_worker (2)

> On Thu, 09 Dec 2021 00:56:26 -0800
>> syzbot found the following issue on:
>> 
>> HEAD commit:    2a987e65025e Merge tag 'perf-tools-fixes-for-v5.16-2021-12..
>> git tree:       upstream
>> console output: https://syzkaller.appspot.com/x/log.txt?x=114fe575b00000
>> kernel config:  https://syzkaller.appspot.com/x/.config?x=7d5e878e3399b6cc
>> dashboard link: https://syzkaller.appspot.com/bug?extid=70c4a3a8fe7f7e1af947
>> compiler:       Debian clang version 11.0.1-2, GNU ld (GNU Binutils for Debian) 2.35.2
>> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=128048b9b00000
>> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=10ceddadb00000
>
> Print the hrtimer hog.
>
> #syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git  master

This bug is already marked as invalid. No point in testing.

>
> diff -pur a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
> --- a/kernel/time/hrtimer.c	2022-08-02 18:24:33.200242000 +0800
> +++ b/kernel/time/hrtimer.c	2022-08-02 18:40:52.895892600 +0800
> @@ -1647,6 +1647,7 @@ static void __run_hrtimer(struct hrtimer
>  	enum hrtimer_restart (*fn)(struct hrtimer *);
>  	bool expires_in_hardirq;
>  	int restart;
> +	unsigned long ts;
>  
>  	lockdep_assert_held(&cpu_base->lock);
>  
> @@ -1682,8 +1683,13 @@ static void __run_hrtimer(struct hrtimer
>  	trace_hrtimer_expire_entry(timer, now);
>  	expires_in_hardirq = lockdep_hrtimer_enter(timer);
>  
> +	ts = jiffies + 500;
> +
>  	restart = fn(timer);
>  
> +	WARN_ONCE(time_after(jiffies, ts),
> +		"CPU%u hrtimer %ps took more than 500 ticks\n", cpu_base->cpu, fn);
> +
>  	lockdep_hrtimer_exit(expires_in_hardirq);
>  	trace_hrtimer_expire_exit(timer);
>  	raw_spin_lock_irq(&cpu_base->lock);
> --

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ