All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: linux-mm@kvack.org, Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Pavel Machek <pavel@ucw.cz>, pm list <linux-pm@lists.osdl.org>,
	Johannes Berg <johannes@sipsolutions.net>,
	Christoph Lameter <clameter@engr.sgi.com>
Subject: Re: [RFC][PATCH 2/3] swsusp: Do not use page flags
Date: Tue, 13 Mar 2007 10:16:11 +0100	[thread overview]
Message-ID: <200703131016.12935.rjw@sisk.pl> (raw)
In-Reply-To: <45F62CD2.5030103@yahoo.com.au>

On Tuesday, 13 March 2007 05:47, Nick Piggin wrote:
> Rafael J. Wysocki wrote:
> 
> >  }
> >  
> >  /**
> > + *	This structure represents a range of page frames the contents of which
> > + *	should not be saved during the suspend.
> > + */
> > +
> > +struct nosave_region {
> > +	struct list_head list;
> > +	unsigned long start_pfn;
> > +	unsigned long end_pfn;
> > +};
> > +
> > +static LIST_HEAD(nosave_regions);
> > +
> > +/**
> > + *	register_nosave_region - register a range of page frames the contents
> > + *	of which should not be saved during the suspend (to be used in the early
> > + *	initializatoion code)
> > + */
> > +
> > +void __init
> > +register_nosave_region(unsigned long start_pfn, unsigned long end_pfn)
> > +{
> > +	struct nosave_region *region;
> > +
> > +	if (start_pfn >= end_pfn)
> > +		return;
> > +
> > +	if (!list_empty(&nosave_regions)) {
> > +		/* Try to extend the previous region (they should be sorted) */
> > +		region = list_entry(nosave_regions.prev,
> > +					struct nosave_region, list);
> > +		if (region->end_pfn == start_pfn) {
> > +			region->end_pfn = end_pfn;
> > +			goto Report;
> > +		}
> > +	}
> > +	/* This allocation cannot fail */
> > +	region = alloc_bootmem_low(sizeof(struct nosave_region));
> > +	region->start_pfn = start_pfn;
> > +	region->end_pfn = end_pfn;
> > +	list_add_tail(&region->list, &nosave_regions);
> > + Report:
> > +	printk("swsusp: Registered nosave memory region: %016lx - %016lx\n",
> > +		start_pfn << PAGE_SHIFT, end_pfn << PAGE_SHIFT);
> > +}
> 
> 
> I wonder why you reimplemented this and put it in snapshot.c, rather than
> use my version which was nicely in its own file, had appropriate locking,
> etc.?

Well, the locking is not necessary and we only need a list for that.  Also,
mark_nosave_pages() refers to a function that's invisible outside snapshot.c
and I didn't think it was a good idea to separate mark_nosave_pages()
from register_nosave_region().

Greetings,
Rafael

WARNING: multiple messages have this Message-ID (diff)
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Pavel Machek <pavel@ucw.cz>,
	Christoph Lameter <clameter@engr.sgi.com>,
	linux-mm@kvack.org, pm list <linux-pm@lists.osdl.org>,
	Johannes Berg <johannes@sipsolutions.net>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: [RFC][PATCH 2/3] swsusp: Do not use page flags
Date: Tue, 13 Mar 2007 10:16:11 +0100	[thread overview]
Message-ID: <200703131016.12935.rjw@sisk.pl> (raw)
In-Reply-To: <45F62CD2.5030103@yahoo.com.au>

On Tuesday, 13 March 2007 05:47, Nick Piggin wrote:
> Rafael J. Wysocki wrote:
> 
> >  }
> >  
> >  /**
> > + *	This structure represents a range of page frames the contents of which
> > + *	should not be saved during the suspend.
> > + */
> > +
> > +struct nosave_region {
> > +	struct list_head list;
> > +	unsigned long start_pfn;
> > +	unsigned long end_pfn;
> > +};
> > +
> > +static LIST_HEAD(nosave_regions);
> > +
> > +/**
> > + *	register_nosave_region - register a range of page frames the contents
> > + *	of which should not be saved during the suspend (to be used in the early
> > + *	initializatoion code)
> > + */
> > +
> > +void __init
> > +register_nosave_region(unsigned long start_pfn, unsigned long end_pfn)
> > +{
> > +	struct nosave_region *region;
> > +
> > +	if (start_pfn >= end_pfn)
> > +		return;
> > +
> > +	if (!list_empty(&nosave_regions)) {
> > +		/* Try to extend the previous region (they should be sorted) */
> > +		region = list_entry(nosave_regions.prev,
> > +					struct nosave_region, list);
> > +		if (region->end_pfn == start_pfn) {
> > +			region->end_pfn = end_pfn;
> > +			goto Report;
> > +		}
> > +	}
> > +	/* This allocation cannot fail */
> > +	region = alloc_bootmem_low(sizeof(struct nosave_region));
> > +	region->start_pfn = start_pfn;
> > +	region->end_pfn = end_pfn;
> > +	list_add_tail(&region->list, &nosave_regions);
> > + Report:
> > +	printk("swsusp: Registered nosave memory region: %016lx - %016lx\n",
> > +		start_pfn << PAGE_SHIFT, end_pfn << PAGE_SHIFT);
> > +}
> 
> 
> I wonder why you reimplemented this and put it in snapshot.c, rather than
> use my version which was nicely in its own file, had appropriate locking,
> etc.?

Well, the locking is not necessary and we only need a list for that.  Also,
mark_nosave_pages() refers to a function that's invisible outside snapshot.c
and I didn't think it was a good idea to separate mark_nosave_pages()
from register_nosave_region().

Greetings,
Rafael

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2007-03-13  9:16 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-16 10:13 Remove page flags for software suspend Christoph Lameter
2007-02-16 10:56 ` Rafael J. Wysocki
2007-02-28 10:14   ` Pavel Machek
2007-02-28 15:25     ` Christoph Lameter
2007-02-28 17:13       ` Rafael J. Wysocki
2007-02-28 17:17         ` Christoph Lameter
2007-02-28 17:33           ` Rafael J. Wysocki
2007-02-28 17:35             ` Christoph Lameter
2007-02-28 17:51               ` Rafael J. Wysocki
2007-02-28 17:56                 ` Christoph Lameter
2007-02-28 21:11                   ` Pavel Machek
2007-03-01  2:35           ` Nick Piggin
2007-03-01 15:18         ` Nick Piggin
2007-03-01 15:33           ` Rafael J. Wysocki
2007-03-01 23:10             ` Rafael J. Wysocki
2007-03-04 13:50             ` [RFC][PATCH 0/3] swsusp: Do not use page flags (was: Re: Remove page flags for software suspend) Rafael J. Wysocki
2007-03-04 13:50               ` Rafael J. Wysocki
2007-03-04 14:07               ` [RFC][PATCH 1/3] swsusp: Do not use page flags directly Rafael J. Wysocki
2007-03-04 14:07                 ` Rafael J. Wysocki
2007-03-13  4:45                 ` Nick Piggin
2007-03-13  4:45                   ` Nick Piggin
2007-03-04 14:07               ` [RFC][PATCH 2/3] swsusp: Do not use page flags Rafael J. Wysocki
2007-03-04 14:07                 ` Rafael J. Wysocki
2007-03-13  4:47                 ` Nick Piggin
2007-03-13  4:47                   ` Nick Piggin
2007-03-13  9:16                   ` Rafael J. Wysocki [this message]
2007-03-13  9:16                     ` Rafael J. Wysocki
2007-03-13  9:23                     ` Nick Piggin
2007-03-13  9:23                       ` Nick Piggin
2007-03-13 10:17                       ` Rafael J. Wysocki
2007-03-13 10:17                         ` Rafael J. Wysocki
2007-03-13 10:31                         ` Nick Piggin
2007-03-13 10:31                           ` Nick Piggin
2007-03-13 21:20                           ` Rafael J. Wysocki
2007-03-13 21:20                             ` Rafael J. Wysocki
2007-03-14  3:17                             ` Nick Piggin
2007-03-14  3:17                               ` Nick Piggin
2007-03-14  8:30                               ` Rafael J. Wysocki
2007-03-14  8:30                                 ` Rafael J. Wysocki
2007-03-04 14:08               ` [RFC][PATCH 3/3] mm: Remove nosave and nosave_free " Rafael J. Wysocki
2007-03-04 14:08                 ` Rafael J. Wysocki
2007-03-08  1:00               ` [RFC][PATCH 0/3] swsusp: Do not use page flags (was: Re: Remove page flags for software suspend) Johannes Berg
2007-03-08  1:00                 ` Johannes Berg
2007-03-08 22:05                 ` Rafael J. Wysocki
2007-03-08 22:05                   ` Rafael J. Wysocki
2007-03-08 22:10                   ` Johannes Berg
2007-03-08 22:10                     ` Johannes Berg
2007-03-08 22:33                     ` Rafael J. Wysocki
2007-03-08 22:33                       ` Rafael J. Wysocki
2007-03-08 22:43                       ` Johannes Berg
2007-03-08 22:43                         ` Johannes Berg
2007-03-08 22:54                         ` Rafael J. Wysocki
2007-03-08 22:54                           ` Rafael J. Wysocki
2007-03-08 22:54                           ` Johannes Berg
2007-03-08 22:54                             ` Johannes Berg
2007-03-08 23:15                   ` Pavel Machek
2007-03-08 23:15                     ` Pavel Machek
2007-03-08 23:21                     ` Johannes Berg
2007-03-08 23:21                       ` Johannes Berg
2007-03-08 23:23                       ` Pavel Machek
2007-03-08 23:23                         ` Pavel Machek
2007-03-08 23:34                       ` Rafael J. Wysocki
2007-03-08 23:34                         ` Rafael J. Wysocki
2007-03-08 23:36                         ` Pavel Machek
2007-03-08 23:36                           ` Pavel Machek
2007-03-08 15:09               ` Johannes Berg
2007-03-08 15:09                 ` Johannes Berg
2007-03-08 22:10                 ` Rafael J. Wysocki
2007-03-08 22:10                   ` Rafael J. Wysocki
2007-03-08 22:12                   ` Johannes Berg
2007-03-08 22:12                     ` Johannes Berg
2007-03-08 15:53               ` Peter Zijlstra
2007-03-08 15:53                 ` Peter Zijlstra
2007-03-08 22:11                 ` Rafael J. Wysocki
2007-03-08 22:11                   ` Rafael J. Wysocki
2007-03-01 17:48           ` Remove page flags for software suspend Hugh Dickins
2007-03-13  3:36             ` Nick Piggin
2007-03-01 20:46           ` Rafael J. Wysocki
2007-03-02 10:17             ` Pavel Machek
2007-02-28 21:08       ` Pavel Machek
2007-02-28 21:16         ` Christoph Lameter
2007-02-28 21:22           ` Pavel Machek
2007-02-28 22:23             ` Rafael J. Wysocki
2007-03-01  2:31         ` Nick Piggin
2007-02-28 10:14   ` Pavel Machek
2007-03-11 10:17 [RFC][PATCH 0/3] swsusp: Stop using page flags Rafael J. Wysocki
2007-03-11 10:31 ` [RFC][PATCH 2/3] swsusp: Do not use " Rafael J. Wysocki
2007-03-12  9:03   ` Pavel Machek

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=200703131016.12935.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=a.p.zijlstra@chello.nl \
    --cc=clameter@engr.sgi.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-mm@kvack.org \
    --cc=linux-pm@lists.osdl.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=pavel@ucw.cz \
    /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.