Re: [patch 00/35] my inode scaling series for review

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Nick Piggin
Date: Tuesday, October 19, 2010 - 8:05 pm

On Tue, Oct 19, 2010 at 12:22:07PM -0400, Christoph Hellwig wrote:

I pointed it out earlier (not that you replied).


How can you say it is more regular and simpler locking? _Acquiring_
locks is not the difficult part of a locking rewrite. Verifying that
no unhandled concurrency is introduced is.

At first glance there are parts of my code that is more complex, that
is because it is actually more regular locking model that is easier to
verify when you lift inode_lock away.

Like I said to Dave when he first looked at my series: he's welcome to
submit a small incremental change to reduce i_lock coverage or put
the lock order another way and we can see what the impact looks like.

Locking changes should start simpler and more conservative.

 

I picked up most of it. I missed the per-cpu one from Andrew because
I was waiting for Eric's new API.

I did pick up feedback from you or Dave, and where I didn't, I replied
with my reasons.



I see, yes, I missed that point.



It doesn't belong there.



Yeah Dave's fix got omitted from my series for some reason. I
agreed it is needed and I just had it commented out for some
reason. Thanks.

 

No, I didn't ignore that. It is quite definitely already buggy upstream
if there is concurrent list modification there. I noticed that Al was
thinking about it and I was going to wait until he replied with
something definitive.



Well, like I said, I disagree. I don't like how the icache state
of the inode is not locked (as it is with inode_lock) when the
inode is being manipulated.

I see any such step in that direction as an incremental patch,
and shouldn't be lumped in with lock breaking work. That's just
not how to structure a series that adds fine grained locking.
As I said, I am willing to review and comment on such an incremental
patch with an open mind. But I would have to see a good justification
and a reason why RCU or another technique would not work.

You also missed my feedback that he didn't add required RCU, didn't
structure the series properly for a serious scalability rework,
didn't break out the rest of the global locks, and hadn't had it
tested with the rest of the vfs stack.

But your review so far has been very helpful, thanks.

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 00/35] my inode scaling series for review, npiggin, (Mon Oct 18, 8:42 pm)
Re: [patch 27/35] fs: icache split IO and LRU lists, Miklos Szeredi, (Tue Oct 19, 9:12 am)
Re: [patch 00/35] my inode scaling series for review, Christoph Hellwig, (Tue Oct 19, 9:22 am)
Re: [patch 27/35] fs: icache split IO and LRU lists, Nick Piggin, (Tue Oct 19, 7:41 pm)
Re: [patch 00/35] my inode scaling series for review, Nick Piggin, (Tue Oct 19, 8:05 pm)