Hi Mikulas, On 04/22/12 01:17, Mikulas Patocka wrote: > I created new patches that use rcu instead of map_lock, so they address > the issues you mentioned. Get the new patches here: > http://people.redhat.com/mpatocka/patches/kernel/dm-lock-optimization/ > > performance with new patches: > no patch: 69.3 > patch 1: 54.0 > patch 1,2: 44.2 > patch 1,2,3: 39.8 > patch 1,2,3,4: 32.7 Thank you. I have 2 comments for the new patches. synchronize_rcu could be put in dm_table_destroy() instead of __bind(). I think it's safer place to wait. io_lock could be converted to SRCU. I.e. something like: On reader-side: idx = srcu_read_lock(io_srcu); if (!DMF_BLOCK_IO_FOR_SUSPEND) split_and_process_bio(); srcu_read_unlock(io_srcu,idx); In dm_suspend: set_bit(DMF_BLOCK_IO_FOR_SUSPEND); mb(); synchronize_srcu(io_srcu); <from here, nobody will enter split_and_process_bio> That makes dm-optimize-percpu-io-lock.patch simpler. dm-optimize-take-io_lock-on-table-swap.patch may become simpler, too. -- Jun'ichi Nomura, NEC Corporation -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel