Re: [patch] set kiobuf io_count once, instead of increment

2001-03-02 Thread Stephen C. Tweedie
Hi, On Wed, Feb 28, 2001 at 09:18:59AM -0800, Robert Read wrote: > On Tue, Feb 27, 2001 at 10:50:54PM -0300, Marcelo Tosatti wrote: > This is true, but it looks like the brw_kiovec allocation failure > handling is broken already; it's calling __put_unused_buffer_head on > bhs without waiting

Re: [patch] set kiobuf io_count once, instead of increment

2001-03-02 Thread Stephen C. Tweedie
On Tue, Feb 27, 2001 at 04:22:22PM -0800, Robert Read wrote: > Currently in brw_kiovec, iobuf->io_count is being incremented as each > bh is submitted, and decremented in the bh->b_end_io(). This means > io_count can go to zero before all the bhs have been submitted, > especially during a large

Re: [patch] set kiobuf io_count once, instead of increment

2001-03-02 Thread Stephen C. Tweedie
On Tue, Feb 27, 2001 at 04:22:22PM -0800, Robert Read wrote: Currently in brw_kiovec, iobuf-io_count is being incremented as each bh is submitted, and decremented in the bh-b_end_io(). This means io_count can go to zero before all the bhs have been submitted, especially during a large

Re: [patch] set kiobuf io_count once, instead of increment

2001-03-02 Thread Stephen C. Tweedie
Hi, On Wed, Feb 28, 2001 at 09:18:59AM -0800, Robert Read wrote: On Tue, Feb 27, 2001 at 10:50:54PM -0300, Marcelo Tosatti wrote: This is true, but it looks like the brw_kiovec allocation failure handling is broken already; it's calling __put_unused_buffer_head on bhs without waiting for

Re: [patch] set kiobuf io_count once, instead of increment

2001-02-28 Thread Robert Read
On Tue, Feb 27, 2001 at 10:50:54PM -0300, Marcelo Tosatti wrote: > > > It seems your patch breaks bh allocation failure handling. If > get_unused_buffer_head() fails, iobuf->io_count never reaches 0, so > processes waiting on kiobuf_wait_for_io() will block forever. > This is true, but it

Re: [patch] set kiobuf io_count once, instead of increment

2001-02-28 Thread Robert Read
On Tue, Feb 27, 2001 at 10:50:54PM -0300, Marcelo Tosatti wrote: It seems your patch breaks bh allocation failure handling. If get_unused_buffer_head() fails, iobuf-io_count never reaches 0, so processes waiting on kiobuf_wait_for_io() will block forever. This is true, but it looks like

Re: [patch] set kiobuf io_count once, instead of increment

2001-02-27 Thread Marcelo Tosatti
On Tue, 27 Feb 2001, Robert Read wrote: > Currently in brw_kiovec, iobuf->io_count is being incremented as each > bh is submitted, and decremented in the bh->b_end_io(). This means > io_count can go to zero before all the bhs have been submitted, > especially during a large request. This

[patch] set kiobuf io_count once, instead of increment

2001-02-27 Thread Robert Read
Currently in brw_kiovec, iobuf->io_count is being incremented as each bh is submitted, and decremented in the bh->b_end_io(). This means io_count can go to zero before all the bhs have been submitted, especially during a large request. This causes the end_kio_request() to be called before all of

[patch] set kiobuf io_count once, instead of increment

2001-02-27 Thread Robert Read
Currently in brw_kiovec, iobuf-io_count is being incremented as each bh is submitted, and decremented in the bh-b_end_io(). This means io_count can go to zero before all the bhs have been submitted, especially during a large request. This causes the end_kio_request() to be called before all of

Re: [patch] set kiobuf io_count once, instead of increment

2001-02-27 Thread Marcelo Tosatti
On Tue, 27 Feb 2001, Robert Read wrote: Currently in brw_kiovec, iobuf-io_count is being incremented as each bh is submitted, and decremented in the bh-b_end_io(). This means io_count can go to zero before all the bhs have been submitted, especially during a large request. This causes the