Re: splice: infinite busy loop lockup bug

2020-09-01 Thread Qian Cai
On Tue, Sep 01, 2020 at 09:10:05AM +0800, Ming Lei wrote: > On Tue, Sep 1, 2020 at 8:53 AM Qian Cai wrote: > > > > On Fri, Aug 07, 2020 at 09:34:08PM +0900, Tetsuo Handa wrote: > > > On 2020/08/07 21:27, Al Viro wrote: > > > > On Fri, Aug 07, 2020 at 07:35:08PM +0900, Tetsuo Handa wrote: > > > >>

Re: splice: infinite busy loop lockup bug

2020-08-31 Thread Al Viro
On Mon, Aug 31, 2020 at 11:32:28PM -0400, Qian Cai wrote: > I used a new debug patch but not sure how to capture without > printk_ratelimited() because the call sites are large, if (!strcmp(current->comm, "bugger")) printk(KERN_ERR and call the binary you are running

Re: splice: infinite busy loop lockup bug

2020-08-31 Thread Qian Cai
On Tue, Sep 01, 2020 at 02:09:28AM +0100, Al Viro wrote: > On Mon, Aug 31, 2020 at 08:51:32PM -0400, Qian Cai wrote: > > On Fri, Aug 07, 2020 at 09:34:08PM +0900, Tetsuo Handa wrote: > > > On 2020/08/07 21:27, Al Viro wrote: > > > > On Fri, Aug 07, 2020 at 07:35:08PM +0900, Tetsuo Handa wrote: > >

Re: splice: infinite busy loop lockup bug

2020-08-31 Thread Qian Cai
On Tue, Sep 01, 2020 at 02:09:28AM +0100, Al Viro wrote: > On Mon, Aug 31, 2020 at 08:51:32PM -0400, Qian Cai wrote: > > On Fri, Aug 07, 2020 at 09:34:08PM +0900, Tetsuo Handa wrote: > > > On 2020/08/07 21:27, Al Viro wrote: > > > > On Fri, Aug 07, 2020 at 07:35:08PM +0900, Tetsuo Handa wrote: > >

Re: splice: infinite busy loop lockup bug

2020-08-31 Thread Ming Lei
On Tue, Sep 1, 2020 at 8:53 AM Qian Cai wrote: > > On Fri, Aug 07, 2020 at 09:34:08PM +0900, Tetsuo Handa wrote: > > On 2020/08/07 21:27, Al Viro wrote: > > > On Fri, Aug 07, 2020 at 07:35:08PM +0900, Tetsuo Handa wrote: > > >> syzbot is reporting hung task at pipe_release() [1], for

Re: splice: infinite busy loop lockup bug

2020-08-31 Thread Al Viro
On Mon, Aug 31, 2020 at 08:51:32PM -0400, Qian Cai wrote: > On Fri, Aug 07, 2020 at 09:34:08PM +0900, Tetsuo Handa wrote: > > On 2020/08/07 21:27, Al Viro wrote: > > > On Fri, Aug 07, 2020 at 07:35:08PM +0900, Tetsuo Handa wrote: > > >> syzbot is reporting hung task at pipe_release() [1], for

Re: splice: infinite busy loop lockup bug

2020-08-31 Thread Qian Cai
On Fri, Aug 07, 2020 at 09:34:08PM +0900, Tetsuo Handa wrote: > On 2020/08/07 21:27, Al Viro wrote: > > On Fri, Aug 07, 2020 at 07:35:08PM +0900, Tetsuo Handa wrote: > >> syzbot is reporting hung task at pipe_release() [1], for for_each_bvec() > >> from > >> iterate_bvec() from

Re: splice: infinite busy loop lockup bug

2020-08-08 Thread Ming Lei
On Sun, Aug 09, 2020 at 10:31:23AM +0800, Ming Lei wrote: > On Fri, Aug 07, 2020 at 03:11:48PM +0100, Matthew Wilcox wrote: > > On Fri, Aug 07, 2020 at 09:41:14PM +0800, Ming Lei wrote: > > > On Fri, Aug 07, 2020 at 01:38:54PM +0100, Al Viro wrote: > > > > FWIW, my preference would be to have

Re: splice: infinite busy loop lockup bug

2020-08-08 Thread Ming Lei
On Fri, Aug 07, 2020 at 03:11:48PM +0100, Matthew Wilcox wrote: > On Fri, Aug 07, 2020 at 09:41:14PM +0800, Ming Lei wrote: > > On Fri, Aug 07, 2020 at 01:38:54PM +0100, Al Viro wrote: > > > FWIW, my preference would be to have for_each_bvec() advance past > > > zero-length > > > segments; I'll

Re: splice: infinite busy loop lockup bug

2020-08-07 Thread Tetsuo Handa
On 2020/08/07 23:11, Matthew Wilcox wrote: > (I find the whole bvec handling a mess of confusing macros and would > welcome more of it being inline functions, in general). Indeed. Inlined functions will be more useful than macros when syzbot calculates the location of the source code from address

Re: splice: infinite busy loop lockup bug

2020-08-07 Thread Tetsuo Handa
On 2020/08/07 22:41, Ming Lei wrote: >> FWIW, my preference would be to have for_each_bvec() advance past zero-length >> segments; I'll need to go through its uses elsewhere in the tree first, >> though >> (after I grab some sleep), > > Usually block layer doesn't allow/support zero bvec,

Re: splice: infinite busy loop lockup bug

2020-08-07 Thread Matthew Wilcox
On Fri, Aug 07, 2020 at 09:41:14PM +0800, Ming Lei wrote: > On Fri, Aug 07, 2020 at 01:38:54PM +0100, Al Viro wrote: > > FWIW, my preference would be to have for_each_bvec() advance past > > zero-length > > segments; I'll need to go through its uses elsewhere in the tree first, > > though > >

Re: splice: infinite busy loop lockup bug

2020-08-07 Thread Ming Lei
On Fri, Aug 07, 2020 at 01:38:54PM +0100, Al Viro wrote: > On Fri, Aug 07, 2020 at 01:27:27PM +0100, Al Viro wrote: > > On Fri, Aug 07, 2020 at 07:35:08PM +0900, Tetsuo Handa wrote: > > > syzbot is reporting hung task at pipe_release() [1], for for_each_bvec() > > > from > > > iterate_bvec() from

Re: splice: infinite busy loop lockup bug

2020-08-07 Thread Al Viro
On Fri, Aug 07, 2020 at 01:27:27PM +0100, Al Viro wrote: > On Fri, Aug 07, 2020 at 07:35:08PM +0900, Tetsuo Handa wrote: > > syzbot is reporting hung task at pipe_release() [1], for for_each_bvec() > > from > > iterate_bvec() from iterate_all_kinds() from iov_iter_alignment() from > >

Re: splice: infinite busy loop lockup bug

2020-08-07 Thread Tetsuo Handa
On 2020/08/07 21:27, Al Viro wrote: > On Fri, Aug 07, 2020 at 07:35:08PM +0900, Tetsuo Handa wrote: >> syzbot is reporting hung task at pipe_release() [1], for for_each_bvec() from >> iterate_bvec() from iterate_all_kinds() from iov_iter_alignment() from >> ext4_unaligned_io() from

Re: splice: infinite busy loop lockup bug

2020-08-07 Thread Al Viro
On Fri, Aug 07, 2020 at 07:35:08PM +0900, Tetsuo Handa wrote: > syzbot is reporting hung task at pipe_release() [1], for for_each_bvec() from > iterate_bvec() from iterate_all_kinds() from iov_iter_alignment() from > ext4_unaligned_io() from ext4_dio_write_iter() from ext4_file_write_iter() >

splice: infinite busy loop lockup bug

2020-08-07 Thread Tetsuo Handa
syzbot is reporting hung task at pipe_release() [1], for for_each_bvec() from iterate_bvec() from iterate_all_kinds() from iov_iter_alignment() from ext4_unaligned_io() from ext4_dio_write_iter() from ext4_file_write_iter() from call_write_iter() from do_iter_readv_writev() from do_iter_write()