From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jun'ichi Nomura" Subject: Re: [PATCHES]: dm lock optimization Date: Mon, 23 Apr 2012 19:56:52 +0900 Message-ID: <4F953574.3000702@ce.jp.nec.com> References: <4F8F9FDA.1000103@ce.jp.nec.com> Reply-To: device-mapper development Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: Mikulas Patocka Cc: device-mapper development , "Alasdair G. Kergon" List-Id: dm-devel.ids 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); 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