Messages in this thread | | | Date | Wed, 15 Jul 2015 20:19:20 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH RFC 0/4] change sb_writers to use percpu_rw_semaphore |
| |
On 07/15, Jan Kara wrote: > > On Tue 14-07-15 14:41:13, Dave Hansen wrote: > > > > I looked at it again. I tested with this patch in addition to the ones > > modifying __sb_start/end_write(): > > > > https://lkml.org/lkml/2015/6/24/682 > > > > That is where the performance delta came from. Your patches (plus the > > fsnotify optimization) perform very similarly to my approach. > > > > Yours remove so much code that I think they are the preferable approach. > > > > They don't compile with lockdep on, btw. :) > > Great, thanks for hashing it out.
Yes, thanks Dave!
> So I'm also in favor of Oleg's approach > as well. We just have to wait until he fixes the outstanding issues with > his code.
Yes. I'll try to make the working version, hopefully this week.
But,
> Dave, just send your fsnotify patch separately to AKPM - he > usually merges fsnotify stuff.
Perhaps it makes to merge other 2 patches from Dave first? (those which change __sb_start/end_write to rely on RCU). Afaics these changes are straightforward and correct. Although I'd suggest to use preempt_disable() and synchronize_sched() instead. I will be happy to (try to) make this conversion on top of his changes.
Because I do not want to delay the performance improvements and I do not know when exactly I'll send the next version: I need to finish the previous discussion about rcu_sync first. And the necessary changes in fs/super.c depend on whether percpu_rw_semaphore will have rcu_sync or not (not too much, only destroy_super() depends, but still).
And of course, I am worried that I missed something and percpu_rw_semaphore can't work for some reason. The code in fs/super.c looks simple, but it seems that filesystems do the "strange" things with lockdep at least.
Oleg.
| |