On Tue, 29 Apr 2008, Jens Axboe wrote:unplug is called on any wait_on_buffer (and similar calls) __wait_on_buffer -> sync_buffer -> blk_run_address_space -> blk_run_backing_dev -> bdi->unplug_io_fn(bdi, page); (I'm not sure that this was the IBM's case, I'm just guessing - this is the most obvious example where unplug is called repeatedly) There is not any test that the queue is plugged and there shouldn't be. If you have this situation dm-linear(unplugged) -> physical-disk(plugged) then uplung should be called on dm-linear (that will call dm-unplug method dm_unplug_all and that will unplug the disk). If you add the test of plugged queue to the upper layer, you mess this situation with stacked drivers completely. The test for already plugged queue should be at the lowest physical device driver, not in upper layers. Mikulas --
| KOSAKI Motohiro | [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Faik Uygur | Re: Linux 2.6.21-rc1 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Trent Piepho | [PATCH] [POWERPC] Improve (in|out)_beXX() asm code |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Jens Axboe | Re: [BUG] New Kernel Bugs |
