All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nigel Cunningham <nigel@nigel.suspend2.net>
To: Pavel Machek <pavel@ucw.cz>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
	Bill Davidsen <davidsen@tmr.com>,
	Linux Kernel M/L <linux-kernel@vger.kernel.org>
Subject: Re: [2.6.21.1] resume doesn't run suspended kernel?
Date: Mon, 04 Jun 2007 21:05:57 +1000	[thread overview]
Message-ID: <1180955157.4356.2.camel@nigel.suspend2.net> (raw)
In-Reply-To: <20070604110209.GJ4363@elf.ucw.cz>

[-- Attachment #1: Type: text/plain, Size: 1626 bytes --]

Hi.

On Mon, 2007-06-04 at 13:02 +0200, Pavel Machek wrote:
> Hi!
> 
> > > > They are already.
> > > 
> > > ...but will that place still be safe when we use other version of
> > > kernel?
> > 
> > They'll be in the image too, won't they? Failing that, the information
> > could be stored in the image header.
> > 
> > > Anyway, pagedirs are on the safe place, right? That means that we
> > > swsusp should no longer clash with page allocation debugging... 
> > 
> > You mean DEBUG_PAGEALLOC? That can be overcome easily - I have code in
> > current Suspend2 that works with DEBUG_PAGEALLOC. I handle the page
> > fault, mapping the page and setting a flag in the fault handler to tell
> > the atomic copy code to unmap the page again once it has been copied.
> 
> I meant debug_pagealloc, but no, I do not think we want to make page
> fault handler more complex. Switching to 1:1 mapping tables should be
> enough.
> 								Pavel

@@ -311,6 +315,20 @@ fastcall void __kprobes do_page_fault(struct pt_regs *regs,
 
 	si_code = SEGV_MAPERR;
 
+	/* During a Suspend2 atomic copy, with DEBUG_SLAB, we will
+	 * get page faults where slab has been unmapped. Map them
+	 * temporarily and set the variable that tells Suspend2 to
+	 * unmap afterwards.
+	 */
+
+	if (unlikely(suspend2_running && !suspend2_faulted)) {
+		struct page *page = NULL;
+		suspend2_faulted = 1;
+		page = virt_to_page(address);
+		kernel_map_pages(page, 1, 1);
+		return;
+	}
+
 	/*
 	 * We fault-in kernel-space virtual memory on-demand. The
 	 * 'reference' page table is init_mm.pgd.

Regards,

Nigel

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2007-06-04 11:06 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-26 22:42 [2.6.21.1] resume doesn't run suspended kernel? Bill Davidsen
2007-05-27  8:41 ` David Greaves
2007-05-27 13:10   ` Bill Davidsen
2007-05-27 15:26     ` David Greaves
2007-05-27 21:20     ` Pavel Machek
2007-05-27 21:17   ` Pavel Machek
2007-05-27 21:14 ` Pavel Machek
2007-05-28  3:15   ` Bill Davidsen
2007-05-28 13:21     ` Bill Davidsen
2007-05-28 13:26       ` Pavel Machek
2007-05-28 17:57         ` Rafael J. Wysocki
2007-05-28 22:48           ` Nigel Cunningham
2007-05-29 11:29             ` Pavel Machek
2007-05-29 12:03               ` Rafael J. Wysocki
2007-05-29 12:23                 ` Nigel Cunningham
2007-05-29 12:40                 ` Pavel Machek
2007-05-29 13:13                   ` Nigel Cunningham
2007-05-29 21:51                     ` Rafael J. Wysocki
2007-06-04 11:02                     ` Pavel Machek
2007-06-04 11:05                       ` Nigel Cunningham [this message]
2007-06-05  7:23 ` Stefan Seyfried
2007-06-05 14:08   ` Bill Davidsen
     [not found] <fa.rXcMBo+RSE/6L84EBqFCeyFql/k@ifi.uio.no>
2007-05-27  2:44 ` Robert Hancock

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=1180955157.4356.2.camel@nigel.suspend2.net \
    --to=nigel@nigel.suspend2.net \
    --cc=davidsen@tmr.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=rjw@sisk.pl \
    /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.