public inbox for linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox