Re: Bounce buffer deadlock

2001-06-30 Thread Marcelo Tosatti
On Sat, 30 Jun 2001, Steve Lord wrote: > > > Yes. 2.4.6-pre8 fixes that (not sure if its up already). > > It is up. > > > > > > If the fix is to avoid page_launder in these cases then the number of > > > occurrences when an alloc_pages fails will go up. > > > > > I was attempting to come

Re: Bounce buffer deadlock

2001-06-30 Thread Steve Lord
> > On Sat, 30 Jun 2001, Steve Lord wrote: > > > > OK, sounds reasonable, time to go download and merge again I guess! > > For 2.4.7 or so, I'll make a backwards-compatibility define (ie make > GFP_BUFFER be the same as the new GFP_NOIO, which is the historical > behaviour and the anally safe va

Re: Bounce buffer deadlock

2001-06-30 Thread Steve Lord
> Yes. 2.4.6-pre8 fixes that (not sure if its up already). It is up. > > > If the fix is to avoid page_launder in these cases then the number of > > occurrences when an alloc_pages fails will go up. > > > I was attempting to come up with a way of making try_to_free_buffers > > fail on buffe

Re: Bounce buffer deadlock

2001-06-30 Thread Linus Torvalds
On Sat, 30 Jun 2001, Steve Lord wrote: > > OK, sounds reasonable, time to go download and merge again I guess! For 2.4.7 or so, I'll make a backwards-compatibility define (ie make GFP_BUFFER be the same as the new GFP_NOIO, which is the historical behaviour and the anally safe value, if not very

Re: Bounce buffer deadlock

2001-06-30 Thread Steve Lord
> > On Sat, 30 Jun 2001, Steve Lord wrote: > > > > It looks to me as if all memory allocations of type GFP_BUFFER which happen > > in generic_make_request downwards can hit the same type of deadlock, so > > bounce buffers, the request functions of the raid and lvm paths can all > > end up in try_

Re: Bounce buffer deadlock

2001-06-30 Thread Linus Torvalds
On Sat, 30 Jun 2001, Steve Lord wrote: > > It looks to me as if all memory allocations of type GFP_BUFFER which happen > in generic_make_request downwards can hit the same type of deadlock, so > bounce buffers, the request functions of the raid and lvm paths can all > end up in try_to_free_buffer

Re: Bounce buffer deadlock

2001-06-30 Thread Marcelo Tosatti
On Sat, 30 Jun 2001, Steve Lord wrote: > > > > > > On Fri, 29 Jun 2001, Steve Lord wrote: > > > > > > > > Has anyone else seen a hang like this: > > > > > > bdflush() > > > flush_dirty_buffers() > > > ll_rw_block() > > > submit_bh(buffer X) > > > generic_make_request() >

Re: Bounce buffer deadlock

2001-06-30 Thread Steve Lord
> > > On Fri, 29 Jun 2001, Steve Lord wrote: > > > > > Has anyone else seen a hang like this: > > > > bdflush() > > flush_dirty_buffers() > > ll_rw_block() > > submit_bh(buffer X) > > generic_make_request() > > __make_request() > > create_bounce() > >

Re: Bounce buffer deadlock

2001-06-30 Thread Linus Torvalds
On Fri, 29 Jun 2001, Steve Lord wrote: > > Has anyone else seen a hang like this: > > bdflush() > flush_dirty_buffers() > ll_rw_block() > submit_bh(buffer X) > generic_make_request() > __make_request() > create_bounce() > alloc_bou

Re: Bounce buffer deadlock

2001-06-30 Thread Marcelo Tosatti
On Sat, 30 Jun 2001, Marcelo Tosatti wrote: > > > On Fri, 29 Jun 2001, Steve Lord wrote: > > > > > Has anyone else seen a hang like this: > > > > bdflush() > > flush_dirty_buffers() > > ll_rw_block() > > submit_bh(buffer X) > > generic_make_request() > > __mak

Re: Bounce buffer deadlock

2001-06-30 Thread Marcelo Tosatti
On Fri, 29 Jun 2001, Steve Lord wrote: > > Has anyone else seen a hang like this: > > bdflush() > flush_dirty_buffers() > ll_rw_block() > submit_bh(buffer X) > generic_make_request() > __make_request() > create_bounce() > alloc

Re: Bounce buffer deadlock

2001-06-29 Thread Alan Cox
> Has anyone else seen a hang like this: > > bdflush() > flush_dirty_buffers() > ll_rw_block() > submit_bh(buffer X) > generic_make_request() > __make_request() > create_bounce() > alloc_bounce_page() > alloc_page

Bounce buffer deadlock

2001-06-29 Thread Steve Lord
Has anyone else seen a hang like this: bdflush() flush_dirty_buffers() ll_rw_block() submit_bh(buffer X) generic_make_request() __make_request() create_bounce() alloc_bounce_page() alloc_page()