[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [dm-devel] New dm-bufio with shrinker API
- From: Mikulas Patocka <mpatocka redhat com>
- To: Joe Thornber <thornber redhat com>
- Cc: Christoph Hellwig <hch infradead org>, dm-devel redhat com
- Subject: Re: [dm-devel] New dm-bufio with shrinker API
- Date: Wed, 7 Sep 2011 14:39:38 -0400 (EDT)
> One other optimisation to think about: As you know, if a non-blocking
> lookup of the thinp mapping fails, the bio gets handed across to a
> worker thread to do the blocking lookup. Is there any way to you
> could make dm_bm_read_try_lock() pass a preload hint to bufio, since
> we know that block is going to be required in the near future?
>
> - Joe
No, you can't submit any IOs in the request handler (i.e. in dm's "map"
function). Such IOs are queued and delayed until the request handler
exits. If it I did it, there would be IO hanging which is not going to be
finished and a deadlock possibility.
For example:
* process 1 submits a bio in the request handler, bio submittion waits
until the request handler exits
* process 2 takes the dm-bufio mutex and waits for this bio to be finished
(thus, it waits for the request handler of process 1 to finish)
* process 1 tries to take the dm-bufio mutex again in the same request
handler, waiting for process 2, which waits for process 1 --- deadlock.
Mikulas
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]