All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] init: make rootdelay=N consistent with rootwait behaviour
Date: Mon, 23 Jun 2014 10:33:04 -0400	[thread overview]
Message-ID: <53A83AA0.2050203@windriver.com> (raw)
In-Reply-To: <20140617152020.f23032953c83b621ded3901e@linux-foundation.org>

On 14-06-17 06:20 PM, Andrew Morton wrote:
> On Wed, 4 Jun 2014 14:01:35 -0400 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
> 
>> Currently rootdelay=N and rootwait behave differently (aside
>> from the obvious unbounded wait duration) because they are
>> at different places in the init sequence.
>>
>> The difference manifests itself for md devices because the
>> call to md_run_setup() lives between rootdelay and rootwait,
>> so if you try to use rootdelay=20 to try and allow a slow
>> RAID0 array to assemble, you get this:
>>
>> [    4.526011] sd 6:0:0:0: [sdc] Attached SCSI removable disk
>> [   22.972079] md: Waiting for all devices to be available before autodetect
>>
>> i.e. you've achieved nothing other than delaying the probing
>> 20s, when what you wanted was a 20s delay _after_ the probing
>> for md devices was initiated.
>>
>> Here we move the rootdelay code to be right beside the rootwait
>> code, so that their behaviour is consistent.
>>
>> It should be noted that in doing so, the actions based on the
>> saved_root_name[0] and initrd_load() were previously put on
>> hold by rootdelay=N and now currently will not be delayed.
>> However, I think consistent behaviour is more important than
>> matching historical behaviour of delaying the above two operations.
> 
> hm.  There may be good reasons for inserting a delay between scsi init
> and MD init - give things time to settle down before MD starts playing
> with the disks?  And I think your patch takes away that option?

In theory, md should never need that, since as per the message above,
MD does a wait_for_device_probe().  I was trying to get a wait inserted
between md0 creation and mount of root, which failed as noted.

> 
> The kernel-parameters.txt documentation for these things is rather
> vague.  We have three distinct phases, I think?
> 
> a) scsi init
> b) [md init]
> c) root mount
> 
> It's not terribly clear where rootdelay and rootwait are operating and
> I expect there are gaps in the implementation anyway.
> 
> Do you think it's worth cleaning and clearing all this up in some fashion?

Sure. Not clear how though.  One option would be to deprecate rootwait
in favour of rootdelay=-1 (or rootdelay=0) as an indication that the
user wants infinite wait.  That still means only one delay point in
your a-b-c chain above though, but I'm hoping that is OK.  Other ideas?

> 
> The whole thing is a bit of an admission of failure anyway, isn't it? 
> Why should the kernel ever need to perform arbitrary dopey delays like
> this?  Are we working around unresolved underlying bugs?

Well to be fair, I'd agree with the above.  I was trying it as a last
ditch attempt to fix an unrelated issue (and imagine that, it failed to
fix anything) but in that attempt, I noted the glaring inconsistency
between rootdelay= and rootwait.

Paul.
--

> 

      reply	other threads:[~2014-06-23 14:32 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-04 18:01 [PATCH] init: make rootdelay=N consistent with rootwait behaviour Paul Gortmaker
2014-06-17 22:20 ` Andrew Morton
2014-06-23 14:33   ` Paul Gortmaker [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53A83AA0.2050203@windriver.com \
    --to=paul.gortmaker@windriver.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.