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 PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 5 Jul 2019 18:47:45 +0300 From: Amir Goldstein <amir73il@...il.com> To: paulmck@...ux.ibm.com Cc: Dmitry Vyukov <dvyukov@...gle.com>, "Theodore Ts'o" <tytso@....edu>, syzbot <syzbot+4bfbbf28a2e50ab07368@...kaller.appspotmail.com>, Andreas Dilger <adilger.kernel@...ger.ca>, David Miller <davem@...emloft.net>, eladr@...lanox.com, Ido Schimmel <idosch@...lanox.com>, Jiri Pirko <jiri@...lanox.com>, John Stultz <john.stultz@...aro.org>, Ext4 <linux-ext4@...r.kernel.org>, LKML <linux-kernel@...r.kernel.org>, netdev <netdev@...r.kernel.org>, syzkaller-bugs <syzkaller-bugs@...glegroups.com>, Thomas Gleixner <tglx@...utronix.de>, Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...nel.org> Subject: Re: INFO: rcu detected stall in ext4_write_checks > Does the (untested, probably does not even build) patch shown below help? > This patch assumes that the kernel was built with CONFIG_PREEMPT=n. > And that I found all the tight loops on the do_sendfile() code path. > I *think* you have. FWIW, it would have been nicer for sendfile(2) and copy_file_range(2) if the do_splice_direct() loop was also killable/interruptible. Users may want to back off from asking the kernel to copy/send a huge file. Thanks, Amir. > > If this is semi-intended, the only option I see is to disable > > something in syzkaller: sched_setattr entirely, or drop CAP_SYS_NICE, > > or ...? Any preference either way? > > Long-running tight loops in the kernel really should contain > cond_resched() or better. > > Thanx, Paul > > ------------------------------------------------------------------------ > > diff --git a/fs/splice.c b/fs/splice.c > index 25212dcca2df..50aa3286764a 100644 > --- a/fs/splice.c > +++ b/fs/splice.c > @@ -985,6 +985,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd, > sd->pos = prev_pos + ret; > goto out_release; > } > + cond_resched(); > } > > done: >
Powered by blists - more mailing lists