Re: New dm-bufio with shrinker API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 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

--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel


[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux