Re: [PATCH 0/3] Fixes for vfs-scale and vfs-automount

4 messages, 3 authors, 2011-02-24 · open the first message on its own page

Re: [PATCH 0/3] Fixes for vfs-scale and vfs-automount

From: Ian Kent <hidden>
Date: 2011-02-24 03:28:57

On Thu, 2011-02-24 at 03:14 +0000, Al Viro wrote:
On Thu, Feb 24, 2011 at 11:03:38AM +0800, Ian Kent wrote:
quoted
I also have a sick feeling that dentrys may become negative at any point
after __d_lookup_rcu() .....
Yes.  To get stability of ->d_inode (assuming the sucker isn't pinned down
in normal way by ->d_count) you need ->d_lock.
quoted
quoted
Ho-hum...  I can reach RHTS, but I'd rather do that at home boxen, if
possible...  Has it been reproduced on UP boxen with SMP kernels, BTW?
Nope, I'd need to build a kernel specifically for that. I'm not sure how
useful that would be though since the test is specifically meant to
expose problems with multiple concurrent processes accessing an
automount tree. I don't see any problem running the Connectathon tests
which is essentially one automount and one client process.
Heh...  No, it's just that the only SMP box I have locally right now
is dual ultrasparc.  Anyway, I can live with RHTS.
If you want to get hold of the test I'm using checkout autofs-RHEL-5,
"cd autofs-tests/submount-test", "make rpm" and use the resulting
rh-tests-autofs-submount-test-1.0-15.noarch.rpm. There are some
beaker/rhts rpm dependencies. Let me know if it gets painful and I'll
try and work out what you need. The test isn't very flash but it does
stress autofs.

Ha, I haven't even turned on my Ultrsparc 2 in months, it's only got an
old version of Solaris on it now anyway, ;)

Re: [PATCH 0/3] Fixes for vfs-scale and vfs-automount

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: 2011-02-24 03:58:37

On Thu, Feb 24, 2011 at 11:28:57AM +0800, Ian Kent wrote:
Ha, I haven't even turned on my Ultrsparc 2 in months, it's only got an
old version of Solaris on it now anyway, ;)
U60, with lenny (and mainline kernel) on it.  Probably ought to upgrade
to squeeze one of those days...  It works, all right, but it's only 2-way,
so reproducing would probably be harder.  Plus the fun of building the tests
themselves on somewhat different userland...

Anyway, I wonder why you care about __d_lookup_rcu() and ->d_inode stability;
d_mountpoint() _is_ stable at that point (we hold vfsmount_lock) and you
don't seem to look at ->d_inode at all in RCU case.  Note that ->d_automount()
is never called in RCU case at all; nor is ->lookup() and friends, so you
really only have ->d_manage() to cope with, what with autofs4 having no
->d_revalidate() anymore.

BTW, Nick has moved to kernel.dk; whether he's still reachable there is
a question, though - he seems to have disappeared since mid-January.

Re: [PATCH 0/3] Fixes for vfs-scale and vfs-automount

From: Al Viro <viro@ZenIV.linux.org.uk>
Date: 2011-02-24 05:47:20

On Thu, Feb 24, 2011 at 03:58:37AM +0000, Al Viro wrote:
On Thu, Feb 24, 2011 at 11:28:57AM +0800, Ian Kent wrote:
quoted
Ha, I haven't even turned on my Ultrsparc 2 in months, it's only got an
old version of Solaris on it now anyway, ;)
U60, with lenny (and mainline kernel) on it.  Probably ought to upgrade
to squeeze one of those days...  It works, all right, but it's only 2-way,
so reproducing would probably be harder.  Plus the fun of building the tests
themselves on somewhat different userland...

Anyway, I wonder why you care about __d_lookup_rcu() and ->d_inode stability;
d_mountpoint() _is_ stable at that point (we hold vfsmount_lock) and you
don't seem to look at ->d_inode at all in RCU case.  Note that ->d_automount()
is never called in RCU case at all; nor is ->lookup() and friends, so you
really only have ->d_manage() to cope with, what with autofs4 having no
->d_revalidate() anymore.
FWIW, can we _ever_ get to __do_follow_link() with link->mnt != nd->path.mnt?
It's probably not what's happening here, or we would've stepped on another
BUG_ON(), but still it might be worth checking...

AFAICS, if we ever get there that way, we are fscked, so the check before
mntget() ought to replaced with BUG_ON(link->mnt != nd->path.mnt)...

Re: [PATCH 0/3] Fixes for vfs-scale and vfs-automount

From: Ian Kent <raven@themaw.net>
Date: 2011-02-24 07:23:17

On Thu, 2011-02-24 at 05:47 +0000, Al Viro wrote:
On Thu, Feb 24, 2011 at 03:58:37AM +0000, Al Viro wrote:
quoted
On Thu, Feb 24, 2011 at 11:28:57AM +0800, Ian Kent wrote:
quoted
Ha, I haven't even turned on my Ultrsparc 2 in months, it's only got an
old version of Solaris on it now anyway, ;)
U60, with lenny (and mainline kernel) on it.  Probably ought to upgrade
to squeeze one of those days...  It works, all right, but it's only 2-way,
so reproducing would probably be harder.  Plus the fun of building the tests
themselves on somewhat different userland...

Anyway, I wonder why you care about __d_lookup_rcu() and ->d_inode stability;
d_mountpoint() _is_ stable at that point (we hold vfsmount_lock) and you
don't seem to look at ->d_inode at all in RCU case.  Note that ->d_automount()
is never called in RCU case at all; nor is ->lookup() and friends, so you
really only have ->d_manage() to cope with, what with autofs4 having no
->d_revalidate() anymore.
FWIW, can we _ever_ get to __do_follow_link() with link->mnt != nd->path.mnt?
It's probably not what's happening here, or we would've stepped on another
BUG_ON(), but still it might be worth checking...

AFAICS, if we ever get there that way, we are fscked, so the check before
mntget() ought to replaced with BUG_ON(link->mnt != nd->path.mnt)...
Yeah, don't think autofs can go their with no ->follow_link() defined.
I've largely ignored that code to date.

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help