linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: rjw@sisk.pl (Rafael J. Wysocki)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] PM: HIBERNATION: add resume_wait param to support MMC-like devices as resume file
Date: Wed, 5 Oct 2011 22:49:03 +0200	[thread overview]
Message-ID: <201110052249.03653.rjw@sisk.pl> (raw)
In-Reply-To: <CAGsJ_4zo6-bdcj4w-RuFhXTjQByp1BM_q5994=J3V5Oej6JRtg@mail.gmail.com>

On Wednesday, October 05, 2011, Barry Song wrote:
> ? 2011-10-5 ??6:30?"Rafael J. Wysocki" <rjw@sisk.pl>???
> >
> > On Thursday, September 29, 2011, Barry Song wrote:
> > > From: Barry Song <baohua.song@csr.com>
> > >
> > > Some devices like mmc are async detected very slow. For example,
> > > drivers/mmc/host/sdhci.c launchs a 200ms delayed work to detect
> > > mmc partitions then add disk.
> > >
> > > we do have wait_for_device_probe and scsi_complete_async_scans
> > > before calling swsusp_check, but it is not enough to wait mmc.
> > >
> > > This patch adds resumewait kernel param just like rootwait so
> > > that we have enough time to wait mmc ready. The differene is
> > > here we wait for resume partition but rootwait waits for rootfs
> > > partition.
> > >
> > > This patch will make swsusp support many embedded products
> > > without scsi devices but devices like mmc.
> > >
> > > This was tested on one ARM platform with Frank Hofmann's patch.
> > >
> > > Signed-off-by: Barry Song <Baohua.Song@csr.com>
> > > Reviewed-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
> >
> > Sorry, I couldn't find the patch previously.
> >
> > I only have one question.  Namely, are there any systems that would
> > use resumewait and wouldn't use rootwait?
> 
> I think yes. Some devices use nand
> as root and SD as resume swap.
> Still some devices use both SD as root and swap. But rootfs is mounted by
> ramfs without rootwait.

OK, fair enough.  I applied the patch to linux-pm/linux-next and will push
it for 3.2.

Thanks,
Rafael


> > > ---
> > >  -v2:
> > >  add document for the resumewait kernel parameter
> > >
> > >  Documentation/kernel-parameters.txt |    4 ++++
> > >  kernel/power/hibernate.c            |   16 ++++++++++++++++
> > >  2 files changed, 20 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/Documentation/kernel-parameters.txt
> b/Documentation/kernel-parameters.txt
> > > index 614d038..2aed0d2 100644
> > > --- a/Documentation/kernel-parameters.txt
> > > +++ b/Documentation/kernel-parameters.txt
> > > @@ -2237,6 +2237,10 @@ bytes respectively. Such letter suffixes can also
> be entirely omitted.
> > >                       in <PAGE_SIZE> units (needed only for swap files).
> > >                       See  Documentation/power/swsusp-and-swap-files.txt
> > >
> > > +     resumewait      [HIBERNATION] Wait (indefinitely) for resume
> device to show up.
> > > +                     Useful for devices that are detected
> asynchronously
> > > +                     (e.g. USB and MMC devices).
> > > +
> > >       hibernate=      [HIBERNATION]
> > >               noresume        Don't check if there's a hibernation image
> > >                               present during boot.
> > > diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
> > > index 8f7b1db..9f4b4f3 100644
> > > --- a/kernel/power/hibernate.c
> > > +++ b/kernel/power/hibernate.c
> > > @@ -14,6 +14,7 @@
> > >  #include <linux/reboot.h>
> > >  #include <linux/string.h>
> > >  #include <linux/device.h>
> > > +#include <linux/async.h>
> > >  #include <linux/kmod.h>
> > >  #include <linux/delay.h>
> > >  #include <linux/fs.h>
> > > @@ -31,6 +32,7 @@
> > >
> > >  static int nocompress = 0;
> > >  static int noresume = 0;
> > > +static int resume_wait = 0;
> > >  static char resume_file[256] = CONFIG_PM_STD_PARTITION;
> > >  dev_t swsusp_resume_device;
> > >  sector_t swsusp_resume_block;
> > > @@ -732,6 +734,13 @@ static int software_resume(void)
> > >                * to wait for this to finish.
> > >                */
> > >               wait_for_device_probe();
> > > +
> > > +             if (resume_wait) {
> > > +                     while ((swsusp_resume_device =
> name_to_dev_t(resume_file)) == 0)
> > > +                             msleep(10);
> > > +                     async_synchronize_full();
> > > +             }
> > > +
> > >               /*
> > >                * We can't depend on SCSI devices being available after
> loading
> > >                * one of their modules until scsi_complete_async_scans()
> is
> > > @@ -1060,7 +1069,14 @@ static int __init noresume_setup(char *str)
> > >       return 1;
> > >  }
> > >
> > > +static int __init resumewait_setup(char *str)
> > > +{
> > > +     resume_wait = 1;
> > > +     return 1;
> > > +}
> > > +
> > >  __setup("noresume", noresume_setup);
> > >  __setup("resume_offset=", resume_offset_setup);
> > >  __setup("resume=", resume_setup);
> > >  __setup("hibernate=", hibernate_setup);
> > > +__setup("resumewait", resumewait_setup);
> > >
> >
> 

      parent reply	other threads:[~2011-10-05 20:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-29 15:15 [PATCH v2] PM: HIBERNATION: add resume_wait param to support MMC-like devices as resume file Barry Song
2011-10-04 22:32 ` Rafael J. Wysocki
     [not found]   ` <CAGsJ_4zo6-bdcj4w-RuFhXTjQByp1BM_q5994=J3V5Oej6JRtg@mail.gmail.com>
2011-10-05 20:49     ` Rafael J. Wysocki [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=201110052249.03653.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).