[dm-devel] [PATCHES]: dm lock optimization

Mikulas Patocka mpatocka at redhat.com
Sat Apr 21 16:17:38 UTC 2012



On Thu, 19 Apr 2012, Jun'ichi Nomura wrote:

> Hello Mikulas,
> 
> On 04/19/12 12:03, Mikulas Patocka wrote:
> > http://people.redhat.com/mpatocka/patches/kernel/dm-lock-optimization/
> > 
> > The patches remove cache-line bouncing from device mapper when multiple 
> > processors submit requests simultaneously.
> 
> I think the idea of optimization is nice.
> 
> >From a quick look, however, I have some comments:
> 
> dm-optimize-no-irqsave-map-lock.patch:
>   - dm_get_live_table() is called from request_fn,
>     that can be called from in_interrupt context.
>     So the added BUG_ON will be triggered.
> 
> dm-optimize-percpu-io-lock.patch:
>   - The following existing mechanisms could be used:
>       * include/linux/rcupdate.h
>       * include/linux/lglock.h
>     (or extended if necessary).
> 
> dm-optimize-get_live_table_fast.patch:
>   - dm_lld_busy() can (theoretically, if dm-mpath is stacked)
>     be called from in_interrupt context and trigger the
>     BUG_ON.
> 
> -- 
> Jun'ichi Nomura, NEC Corporation

Hi

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

Mikulas





More information about the dm-devel mailing list