On Sat, 2012-01-07 at 01:32 +0200, Sasha Levin wrote: > On Fri, 2012-01-06 at 13:26 -0500, Trond Myklebust wrote: > > On Fri, 2012-01-06 at 19:32 +0200, Sasha Levin wrote: > > > Hi all, > > > > > > I've noticed a boot regression caused by commit 6829a048 ("NFS: Retry > > > mounting NFSROOT") which has increased boot time by 95 seconds. > > > > > > The scenario is as follows: > > > - A virtual guest running under the KVM tool. > > > - Guest is using kernel automatic IP DHCP configuration ("ip=dhcp"). > > > - Guest is booting from a 9p device (which is not detected as block, > > > and gets mounted after NFS tries to do its mounts). > > > - No NFS server at all, no NFS parameters passed to the guest kernel. > > > > > > Under this scenario, theres an additional 95 second delay before NFS > > > fails and tries to boot using 9p: > > > > > > [...] > > > [ 6.505269] md: autorun ... > > > [ 6.506954] md: ... autorun DONE. > > > [ 101.522716] VFS: Unable to mount root fs via NFS, trying floppy. > > > [ 101.534499] VFS: Mounted root (9p filesystem) on device 0:18. > > > [...] > > > > Can't you avoid the whole NFS root mount attempt by setting "root=2:0" > > directly instead of relying on 'mount_root' to do it for you? > > I am specifying root and root parameters fully: > > "root=/dev/root rw rootflags=rw,trans=virtio,version=9p2000.L > rootfstype=9p" > > Actually, I'm not sure why NFS comes to play at all in this case. It's because mount_root() tests MAJOR(ROOT_DEV) only when probing for nfsroot. Since ROOT_DEV is initialised to 0, and root=/dev/root matches nothing in name_to_dev_t(), then you end up matching the nfsroot test. A simple fix would be either: A) skip the root=/dev/root. B) change mount_root to also test MINOR(ROOT_DEV), which should equal 255 if ROOT_DEV==Root_NFS -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@xxxxxxxxxx www.netapp.com -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html