From: Wu Fengguang <fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: "Rafael J. Wysocki" <rjw-KKrjLPT3xs0@public.gmane.org>
Cc: David Rientjes <rientjes-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Andrew Morton
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
"linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org"
<linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
"pavel-+ZI9xUNit7I@public.gmane.org"
<pavel-+ZI9xUNit7I@public.gmane.org>,
"torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org"
<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
"jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org"
<jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
"alan-jenkins-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org"
<alan-jenkins-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH 1/5] mm: Add __GFP_NO_OOM_KILL flag
Date: Fri, 8 May 2009 17:50:10 +0800 [thread overview]
Message-ID: <20090508095010.GA26398@localhost> (raw)
In-Reply-To: <200905080111.31273.rjw-KKrjLPT3xs0@public.gmane.org>
On Fri, May 08, 2009 at 07:11:30AM +0800, Rafael J. Wysocki wrote:
> On Friday 08 May 2009, David Rientjes wrote:
> > On Thu, 7 May 2009, Andrew Morton wrote:
> >
> > > The setting and clearing of that thing looks gruesomely racy..
> > >
> >
> > It's not racy currently because zone_scan_lock ensures ZONE_OOM_LOCKED
> > gets test/set and cleared atomically for the entire zonelist (the clear
> > happens for the same zonelist that was test/set).
> >
> > Using it for hibernation in the way I've proposed will open it up to the
> > race I earlier described: when a kthread is in the oom killer and
> > subsequently clears its zonelist of ZONE_OOM_LOCKED (all other tasks are
> > frozen so they can't be in the oom killer). That's perfectly acceptable,
> > however, since the system is by definition already oom if kthreads can't
> > get memory so it will end up killing a user task even though it's stuck in
> > D state and will exit on thaw; we aren't concerned about killing
> > needlessly because the oom killer becomes a no-op when it finds a task
> > that has already been killed but hasn't exited by way of TIF_MEMDIE.
>
> OK there.
>
> So everyone seems to agree we can do something like in the patch below?
>
> ---
> From: Rafael J. Wysocki <rjw-KKrjLPT3xs0@public.gmane.org>
> Subject: PM/Hibernate: Rework shrinking of memory
>
> Rework swsusp_shrink_memory() so that it calls shrink_all_memory()
> just once to make some room for the image and then allocates memory
> to apply more pressure to the memory management subsystem, if
> necessary.
Thanks! Reducing to single-pass helps memory bounty laptops considerably :)
> Unfortunately, we don't seem to be able to drop shrink_all_memory()
> entirely just yet, because that would lead to huge performance
> regressions in some test cases.
Yes, but it's not the fault of this patch. In fact some regressions
may even be positive pressures to the page allocate/reclaim code ;)
> Signed-off-by: Rafael J. Wysocki <rjw-KKrjLPT3xs0@public.gmane.org>
> ---
> kernel/power/snapshot.c | 151 +++++++++++++++++++++++++++++++++---------------
> 1 file changed, 104 insertions(+), 47 deletions(-)
>
> Index: linux-2.6/kernel/power/snapshot.c
> ===================================================================
> --- linux-2.6.orig/kernel/power/snapshot.c
> +++ linux-2.6/kernel/power/snapshot.c
> @@ -1066,69 +1066,126 @@ void swsusp_free(void)
> buffer = NULL;
> }
>
> +/* Helper functions used for the shrinking of memory. */
> +
> /**
> - * swsusp_shrink_memory - Try to free as much memory as needed
> - *
> - * ... but do not OOM-kill anyone
> + * preallocate_image_memory - Allocate given number of page frames
> + * @nr_pages: Number of page frames to allocate
> *
> - * Notice: all userland should be stopped before it is called, or
> - * livelock is possible.
> + * Return value: Number of page frames actually allocated
> */
> -
> -#define SHRINK_BITE 10000
> -static inline unsigned long __shrink_memory(long tmp)
> +static unsigned long preallocate_image_memory(unsigned long nr_pages)
> {
> - if (tmp > SHRINK_BITE)
> - tmp = SHRINK_BITE;
> - return shrink_all_memory(tmp);
> + unsigned long nr_alloc = 0;
> +
> + while (nr_pages > 0) {
> + if (!alloc_image_page(GFP_KERNEL | __GFP_NOWARN))
> + break;
> + nr_pages--;
> + nr_alloc++;
> + }
> +
> + return nr_alloc;
> }
>
> +/**
> + * swsusp_shrink_memory - Make the kernel release as much memory as needed
> + *
> + * To create a hibernation image it is necessary to make a copy of every page
> + * frame in use. We also need a number of page frames to be free during
> + * hibernation for allocations made while saving the image and for device
> + * drivers, in case they need to allocate memory from their hibernation
> + * callbacks (these two numbers are given by PAGES_FOR_IO and SPARE_PAGES,
> + * respectively, both of which are rough estimates). To make this happen, we
> + * compute the total number of available page frames and allocate at least
> + *
> + * ([page frames total] + PAGES_FOR_IO + [metadata pages]) / 2 + 2 * SPARE_PAGES
> + *
> + * of them, which corresponds to the maximum size of a hibernation image.
> + *
> + * If image_size is set below the number following from the above formula,
> + * the preallocation of memory is continued until the total number of page
> + * frames in use is below the requested image size or it is impossible to
> + * allocate more memory, whichever happens first.
> + */
> int swsusp_shrink_memory(void)
> {
> - long tmp;
> struct zone *zone;
> - unsigned long pages = 0;
> - unsigned int i = 0;
> - char *p = "-\\|/";
> + unsigned long saveable, size, max_size, count, pages = 0;
> struct timeval start, stop;
> + int error = 0;
>
> - printk(KERN_INFO "PM: Shrinking memory... ");
> + printk(KERN_INFO "PM: Shrinking memory ... ");
> do_gettimeofday(&start);
> - do {
> - long size, highmem_size;
>
> - highmem_size = count_highmem_pages();
> - size = count_data_pages() + PAGES_FOR_IO + SPARE_PAGES;
> - tmp = size;
> - size += highmem_size;
> - for_each_populated_zone(zone) {
> - tmp += snapshot_additional_pages(zone);
> - if (is_highmem(zone)) {
> - highmem_size -=
> - zone_page_state(zone, NR_FREE_PAGES);
> - } else {
> - tmp -= zone_page_state(zone, NR_FREE_PAGES);
> - tmp += zone->lowmem_reserve[ZONE_NORMAL];
> - }
> - }
> + /* Count the number of saveable data pages. */
> + saveable = count_data_pages() + count_highmem_pages();
>
> - if (highmem_size < 0)
> - highmem_size = 0;
> + /*
> + * Compute the total number of page frames we can use (count) and the
> + * number of pages needed for image metadata (size).
> + */
> + count = saveable;
> + size = 0;
> + for_each_populated_zone(zone) {
> + size += snapshot_additional_pages(zone);
> + count += zone_page_state(zone, NR_FREE_PAGES);
> + count -= zone->pages_min;
I'd prefer to be more safe, by removing the above line...
> + }
...and add another line here:
count -= totalreserve_pages;
But hey, that 'count' counts "savable+free" memory.
We don't have a counter for an estimation of "free+freeable" memory,
ie. we are sure we cannot preallocate above that threshold.
One applicable situation is, when there are 800M anonymous memory,
but only 500M image_size and no swap space.
In that case we will otherwise goto the oom code path. Sure oom is
(and shall be) reliably disabled in hibernation, but still we shall be
cautious enough not to create a low memory situation, which will hurt:
- hibernation speed
(vmscan goes mad trying to squeeze the last free page)
- user experiences after resume
(all *active* file data and metadata have to reloaded)
The current code simply tries *too hard* to meet image_size.
I'd rather take that as a mild advice, and to only free
"free+freeable-margin" pages when image_size is not approachable.
The safety margin can be totalreserve_pages, plus enough pages for
retaining the "hard core working set".
Thanks,
Fengguang
> - tmp += highmem_size;
> - if (tmp > 0) {
> - tmp = __shrink_memory(tmp);
> - if (!tmp)
> - return -ENOMEM;
> - pages += tmp;
> - } else if (size > image_size / PAGE_SIZE) {
> - tmp = __shrink_memory(size - (image_size / PAGE_SIZE));
> - pages += tmp;
> - }
> - printk("\b%c", p[i++%4]);
> - } while (tmp > 0);
> + /* Compute the maximum number of saveable pages to leave in memory. */
> + max_size = (count - (size + PAGES_FOR_IO)) / 2 - 2 * SPARE_PAGES;
> + size = DIV_ROUND_UP(image_size, PAGE_SIZE);
> + if (size > max_size)
> + size = max_size;
> + /*
> + * If the maximum is not less than the current number of saveable pages
> + * in memory, we don't need to do anything more.
> + */
> + if (size >= saveable)
> + goto out;
> +
> + /*
> + * Let the memory management subsystem know that we're going to need a
> + * large number of page frames to allocate and make it free some memory.
> + * NOTE: If this is not done, performance is heavily affected in some
> + * test cases.
> + */
> + shrink_all_memory(saveable - size);
> +
> + /*
> + * Prevent the OOM killer from triggering while we're allocating image
> + * memory.
> + */
> + for_each_populated_zone(zone)
> + zone_set_flag(zone, ZONE_OOM_LOCKED);
> + /*
> + * The number of saveable pages in memory was too high, so apply some
> + * pressure to decrease it. First, make room for the largest possible
> + * image and fail if that doesn't work. Next, try to decrease the size
> + * of the image as much as indicated by image_size.
> + */
> + count -= max_size;
> + pages = preallocate_image_memory(count);
> + if (pages < count)
> + error = -ENOMEM;
> + else
> + pages += preallocate_image_memory(max_size - size);
> +
> + for_each_populated_zone(zone)
> + zone_clear_flag(zone, ZONE_OOM_LOCKED);
> +
> + /* Release all of the preallocated page frames. */
> + swsusp_free();
> +
> + if (error) {
> + printk(KERN_CONT "\n");
> + return error;
> + }
> +
> + out:
> do_gettimeofday(&stop);
> - printk("\bdone (%lu pages freed)\n", pages);
> + printk(KERN_CONT "done (preallocated %lu free pages)\n", pages);
> swsusp_show_speed(&start, &stop, pages, "Freed");
>
> return 0;
next prev parent reply other threads:[~2009-05-08 9:50 UTC|newest]
Thread overview: 235+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-16 21:42 2.6.30-rc2-git2: Reported regressions from 2.6.29 Rafael J. Wysocki
2009-04-16 21:42 ` [Bug #13031] Deadlock/hang in SATA probe Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13048] /sys/class/backlight/acpi_video0/* is gone on vaio laptop with Intel GM45 Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13044] 2.6.30-rc1 can't find the root fs Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13058] First hibernation attempt fails Rafael J. Wysocki
2009-04-17 6:30 ` Jens Axboe
[not found] ` <20090417063007.GB4593-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2009-04-17 8:28 ` Alan Jenkins
[not found] ` <49E83DC4.8040207-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org>
2009-04-17 9:13 ` Jens Axboe
[not found] ` <20090417091321.GP4593-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2009-04-17 9:34 ` Jens Axboe
2009-04-17 9:38 ` Alan Jenkins
[not found] ` <49E84DF8.7030802-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org>
2009-04-17 9:45 ` Jens Axboe
[not found] ` <20090417094558.GR4593-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2009-04-17 10:46 ` Alan Jenkins
[not found] ` <49E85DFD.9030306-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org>
2009-04-17 16:00 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0904170856460.4042-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-04-17 17:46 ` Alan Jenkins
[not found] ` <49E8C06A.5080605-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org>
2009-04-17 20:58 ` Rafael J. Wysocki
[not found] ` <200904172258.58783.rjw-KKrjLPT3xs0@public.gmane.org>
2009-04-17 21:12 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0904171408081.4042-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-04-18 8:16 ` Alan Jenkins
[not found] ` <49E98C4C.8090007-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org>
2009-04-18 12:38 ` Rafael J. Wysocki
[not found] ` <200904181438.18166.rjw-KKrjLPT3xs0@public.gmane.org>
2009-04-18 12:57 ` Alan Jenkins
[not found] ` <49E9CE51.8000803-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org>
2009-04-18 15:23 ` [PATCH] PM/Hibernate: Fix memory shrinking (Re: [Bug #13058] First hibernation attempt fails) Rafael J. Wysocki
2009-04-17 15:55 ` [Bug #13058] First hibernation attempt fails Linus Torvalds
[not found] ` <alpine.LFD.2.00.0904170813550.4042-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-04-07 8:06 ` Pavel Machek
[not found] ` <20090407080632.GG1408-+ZI9xUNit7I@public.gmane.org>
2009-04-20 19:20 ` Andrew Morton
[not found] ` <20090420122044.7ea6cc15.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-04-20 19:49 ` Rafael J. Wysocki
2009-04-20 19:53 ` Pavel Machek
[not found] ` <20090420195306.GA3299-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2009-04-20 20:04 ` Andrew Morton
[not found] ` <20090420130412.bc337673.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-04-20 23:37 ` Andrew Morton
2009-04-21 18:53 ` Rafael J. Wysocki
2009-04-22 13:07 ` Pavel Machek
2009-04-22 20:11 ` Rafael J. Wysocki
[not found] ` <200904222211.18221.rjw-KKrjLPT3xs0@public.gmane.org>
2009-04-22 20:19 ` Andrew Morton
[not found] ` <20090422131943.69288af3.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-01 22:26 ` [PATCH 0/3] PM: Drop shrink_all_memory (was: Re: [Bug #13058] First hibernation attempt fails) Rafael J. Wysocki
[not found] ` <200905020026.19027.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-01 22:27 ` [PATCH 1/3] PM: Disable OOM killer during system-wide power transitions Rafael J. Wysocki
[not found] ` <200905020027.31244.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-01 23:09 ` Andrew Morton
[not found] ` <20090501160931.1dbd2abc.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-02 11:34 ` Rafael J. Wysocki
[not found] ` <200905021334.51261.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-03 9:47 ` Pavel Machek
2009-05-01 22:28 ` [PATCH 2/3] PM/Hibernate: Move memory shrinking to snapshot.c Rafael J. Wysocki
2009-05-01 22:29 ` [PATCH 3/3] PM/Hibernate: Use memory allocations to free memory Rafael J. Wysocki
[not found] ` <200905020029.39181.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-01 23:14 ` Andrew Morton
[not found] ` <20090501161423.94b37d5b.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-02 11:46 ` Rafael J. Wysocki
[not found] ` <200905021346.34967.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-02 17:49 ` Andrew Morton
[not found] ` <20090502104947.2720f173.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-03 0:20 ` [PATCH 0/4] PM: Drop shrink_all_memory (rev. 2) (was: Re: [PATCH 3/3] PM/Hibernate: Use memory allocations to free memory) Rafael J. Wysocki
[not found] ` <200905030220.57933.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-03 0:22 ` [PATCH 1/4] mm: Add __GFP_NO_OOM_KILL flag Rafael J. Wysocki
[not found] ` <200905030222.07360.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-03 11:54 ` Wu Fengguang
2009-05-03 0:23 ` [PATCH 2/4] PM/Hibernate: Move memory shrinking to snapshot.c (rev. 2) Rafael J. Wysocki
2009-05-03 0:24 ` [PATCH 3/4] PM/Hibernate: Use memory allocations to free memory " Rafael J. Wysocki
[not found] ` <200905030224.21471.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-03 3:06 ` Linus Torvalds
[not found] ` <alpine.LFD.2.01.0905021958480.4983-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-05-03 9:36 ` Pavel Machek
[not found] ` <20090503093659.GA10278-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2009-05-03 16:35 ` Rafael J. Wysocki
[not found] ` <200905031835.06928.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-04 9:36 ` Pavel Machek
2009-05-03 16:15 ` Rafael J. Wysocki
2009-05-03 11:51 ` Wu Fengguang
2009-05-03 16:22 ` Rafael J. Wysocki
[not found] ` <200905031822.55260.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-04 9:31 ` Pavel Machek
[not found] ` <20090504093121.GB30306-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2009-05-04 19:52 ` Rafael J. Wysocki
2009-05-03 0:25 ` [PATCH 4/4] PM/Hibernate: Do not release preallocated memory unnecessarily Rafael J. Wysocki
2009-05-03 13:08 ` [PATCH 0/4] PM: Drop shrink_all_memory (rev. 2) (was: Re: [PATCH 3/3] PM/Hibernate: Use memory allocations to free memory) Wu Fengguang
2009-05-03 16:30 ` Rafael J. Wysocki
[not found] ` <200905031830.49690.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-04 0:08 ` [PATCH 0/5] PM: Drop shrink_all_memory (rev. 3) Rafael J. Wysocki
[not found] ` <200905040208.43040.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-04 0:10 ` [PATCH 1/5] mm: Add __GFP_NO_OOM_KILL flag Rafael J. Wysocki
2009-05-04 0:38 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905031734190.24114-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-04 15:02 ` Rafael J. Wysocki
[not found] ` <200905041702.23291.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-04 16:44 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905040939400.10707-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-04 19:51 ` Rafael J. Wysocki
[not found] ` <200905042151.07953.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-04 20:02 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905041253380.23036-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-04 22:23 ` Rafael J. Wysocki
[not found] ` <200905050023.38064.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-05 0:37 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905041735590.24101-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-05 22:19 ` Rafael J. Wysocki
[not found] ` <200905060019.36542.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-05 22:37 ` Andrew Morton
[not found] ` <20090505153739.2cc9d244.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-05 23:20 ` Rafael J. Wysocki
[not found] ` <200905060120.35698.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-05 23:40 ` Andrew Morton
[not found] ` <20090505164028.e9d807a1.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-07 18:09 ` Rafael J. Wysocki
[not found] ` <200905072009.53406.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-07 18:48 ` Andrew Morton
[not found] ` <20090507114807.d7c6d26a.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-07 19:33 ` Rafael J. Wysocki
[not found] ` <200905072133.48917.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-07 20:02 ` Andrew Morton
[not found] ` <20090507130202.34cbe37a.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-07 20:18 ` Rafael J. Wysocki
[not found] ` <200905072218.50782.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-07 20:25 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905071321440.646-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-07 20:35 ` Pavel Machek
[not found] ` <20090507203518.GA1652-+ZI9xUNit7I@public.gmane.org>
2009-05-07 20:40 ` David Rientjes
2009-05-07 20:38 ` Rafael J. Wysocki
[not found] ` <200905072238.14558.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-07 20:42 ` David Rientjes
2009-05-07 20:56 ` Andrew Morton
[not found] ` <20090507135615.e7db550d.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-07 21:25 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905071417160.24417-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-07 21:36 ` Rafael J. Wysocki
[not found] ` <200905072336.11383.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-07 21:46 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905071439370.24404-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-07 22:05 ` Rafael J. Wysocki
2009-05-07 21:50 ` Andrew Morton
[not found] ` <20090507145041.9b59f4eb.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-07 22:14 ` Rafael J. Wysocki
2009-05-07 22:38 ` Andrew Morton
2009-05-07 22:50 ` Rafael J. Wysocki
[not found] ` <200905080050.41973.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-07 23:15 ` Andrew Morton
[not found] ` <20090507161508.42f586ef.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-07 23:24 ` Rafael J. Wysocki
2009-05-07 22:16 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905071508190.2164-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-07 22:45 ` Andrew Morton
[not found] ` <20090507154502.a7f51dd9.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-07 22:59 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905071554490.10759-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-07 23:11 ` Rafael J. Wysocki
[not found] ` <200905080111.31273.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-08 1:16 ` KAMEZAWA Hiroyuki
[not found] ` <20090508101651.aa4d513d.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2009-05-08 13:42 ` Rafael J. Wysocki
2009-05-08 9:50 ` Wu Fengguang [this message]
2009-05-08 13:51 ` Rafael J. Wysocki
2009-05-09 0:08 ` Rafael J. Wysocki
[not found] ` <200905090208.44381.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-09 7:34 ` Wu Fengguang
2009-05-09 19:22 ` Rafael J. Wysocki
[not found] ` <200905092122.58640.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-10 4:52 ` Wu Fengguang
2009-05-10 12:52 ` Rafael J. Wysocki
2009-05-08 23:55 ` Rafael J. Wysocki
[not found] ` <200905090155.44635.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-09 21:22 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905091415310.1124-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-09 21:37 ` Rafael J. Wysocki
[not found] ` <200905092337.39906.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-09 22:39 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905091536250.6272-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-09 23:03 ` Rafael J. Wysocki
[not found] ` <200905100103.23815.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-11 20:11 ` David Rientjes
[not found] ` <alpine.DEB.2.00.0905111249170.23739-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2009-05-11 22:44 ` Rafael J. Wysocki
[not found] ` <200905120044.37342.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-11 23:07 ` Andrew Morton
[not found] ` <20090511160704.e1fa2512.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-11 23:28 ` Rafael J. Wysocki
[not found] ` <200905120128.16780.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-12 0:11 ` Andrew Morton
[not found] ` <20090511171111.9d74e4c0.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-12 16:52 ` Rafael J. Wysocki
2009-05-12 17:50 ` Andrew Morton
[not found] ` <20090512105059.30fb93c2.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2009-05-12 20:40 ` Rafael J. Wysocki
2009-05-07 18:50 ` David Rientjes
2009-05-04 19:01 ` Andrew Morton
2009-05-04 0:11 ` [PATCH 2/5] PM/Hibernate: Move memory shrinking to snapshot.c (rev. 2) Rafael J. Wysocki
[not found] ` <200905040211.03569.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-04 13:35 ` Pavel Machek
2009-05-04 0:12 ` [PATCH 3/5] PM/Suspend: Do not shrink memory before suspend Rafael J. Wysocki
2009-05-04 0:20 ` [PATCH 4/5] PM/Hibernate: Use memory allocations to free memory (rev. 3) Rafael J. Wysocki
2009-05-04 0:22 ` [PATCH 5/5] PM/Hibernate: Do not release preallocated memory unnecessarily (rev. 2) Rafael J. Wysocki
[not found] ` <200905040222.39062.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-05 2:24 ` Wu Fengguang
2009-05-05 2:46 ` Wu Fengguang
2009-05-05 23:07 ` Rafael J. Wysocki
[not found] ` <200905060107.45345.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-05 23:40 ` Wu Fengguang
2009-05-05 23:05 ` Rafael J. Wysocki
[not found] ` <200905060105.10800.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-06 13:30 ` Wu Fengguang
2009-05-06 13:52 ` Wu Fengguang
2009-05-06 13:56 ` Wu Fengguang
2009-05-06 20:54 ` Rafael J. Wysocki
[not found] ` <200905062254.10227.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-07 1:58 ` Wu Fengguang
2009-05-07 12:20 ` Rafael J. Wysocki
[not found] ` <200905071420.43491.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-07 12:34 ` Wu Fengguang
2009-08-16 13:46 ` Wu Fengguang
2009-08-16 22:48 ` Rafael J. Wysocki
2009-05-04 9:33 ` [PATCH 0/4] PM: Drop shrink_all_memory (rev. 2) (was: Re: [PATCH 3/3] PM/Hibernate: Use memory allocations to free memory) Pavel Machek
2009-05-04 19:53 ` Rafael J. Wysocki
[not found] ` <200905042153.37069.rjw-KKrjLPT3xs0@public.gmane.org>
2009-05-04 20:27 ` Pavel Machek
2009-04-17 20:34 ` [Bug #13058] First hibernation attempt fails Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13067] iwl3945: wlan0: beacon loss from AP - sending probe request Rafael J. Wysocki
2009-04-17 3:38 ` Justin Madru
[not found] ` <49E7F9B7.2090804-u1xxEuL7cY4AvxtiuMwx3w@public.gmane.org>
2009-04-17 21:09 ` Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13066] Intel HD Audio oops Rafael J. Wysocki
2009-04-17 16:57 ` Takashi Iwai
[not found] ` <s5h1vrrb4l7.wl%tiwai-l3A5Bk7waGM@public.gmane.org>
2009-04-17 21:07 ` Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13069] regression in 2.6.29-git3 on SH/Dreamcast Rafael J. Wysocki
2009-04-24 17:37 ` Adrian McMenamin
[not found] ` <1240594638.4777.1.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-05-17 8:12 ` Pekka Enberg
[not found] ` <84144f020905170112l789e9ec0p2bf6bb71879579e1-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-05-17 10:28 ` Rafael J. Wysocki
2009-05-17 10:38 ` Adrian McMenamin
2009-04-16 21:45 ` [Bug #13068] Lockdep warining in inotify_dev_queue_event Rafael J. Wysocki
2009-04-19 9:36 ` Sachin Sant
[not found] ` <49EAF08A.2020407-xthvdsQ13ZrQT0dZR+AlfA@public.gmane.org>
2009-04-19 10:56 ` Rafael J. Wysocki
2009-04-22 9:50 ` [Bug #13068] Lockdep warning " Sachin Sant
2009-04-16 21:45 ` [Bug #13087] boot hang due to commit ff69f2bba67bd45514923aaedbf40fe351787c59 Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13096] 2.6.30-rc2 hangs in get_measured_perf on tigerton Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13097] Kernel will freeze network after using a tun/tap device Rafael J. Wysocki
2009-04-17 0:44 ` David Miller
[not found] ` <20090416.174406.120779583.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2009-04-17 0:54 ` Herbert Xu
2009-04-16 21:45 ` [Bug #13095] thinkpad-acpi: cannot control brightness with hotkeys Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13101] BUG: scheduling while atomic: swapper/0/0x10000100 Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13099] net, sky2: BUG: unable to handle kernel NULL pointer dereference, pci_vpd_truncate() Rafael J. Wysocki
2009-04-17 0:45 ` Ingo Molnar
2009-04-17 21:14 ` Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13098] 2.6.29-git12 breaks vga=0x0f07 on MSI/Intel GPU Rafael J. Wysocki
2009-04-17 5:24 ` Andi Kleen
2009-04-16 21:45 ` [Bug #13106] 2.6.30-rc1: intel 3945 no wireless Rafael J. Wysocki
2009-04-17 0:53 ` Larry Finger
[not found] ` <49E7D320.3080900-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
2009-04-17 3:21 ` Justin Madru
[not found] ` <49E7F5AF.8040702-u1xxEuL7cY4AvxtiuMwx3w@public.gmane.org>
2009-04-17 21:16 ` Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13109] High latency on /sys/class/thermal Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13107] LTP 20080131 causes defunct processes w/2.6.30-rc1 Rafael J. Wysocki
2009-04-17 16:55 ` Sukadev Bhattiprolu
2009-04-16 21:45 ` [Bug #13108] 2.6.30-rc1: white screen during boot (regression) on spitz Rafael J. Wysocki
2009-04-25 11:54 ` Pavel Machek
2009-04-26 12:18 ` Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13111] Linux 2.6.30-rc1 tg3 endian issues with MAC addresses on BCM5701 Rafael J. Wysocki
2009-04-17 0:43 ` David Miller
[not found] ` <20090416.174310.260350758.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2009-04-17 0:58 ` Matt Carlson
[not found] ` <20090417005804.GA16432-3dFWGHBYMsbIxLREL+M+1dHuzzzSOjJt@public.gmane.org>
2009-04-17 12:21 ` Robin Holt
[not found] ` <20090417122121.GP10768-sJ/iWh9BUns@public.gmane.org>
2009-04-19 4:30 ` David Miller
[not found] ` <20090418.213011.50580925.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2009-04-20 4:31 ` Michael Chan
2009-04-16 21:45 ` [Bug #13112] Oops in drain_array Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13110] 2.6.30-rc1 problems with firmware loading Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13113] tiobench read 50% regression with 2.6.30-rc1 Rafael J. Wysocki
2009-04-17 6:29 ` Jens Axboe
[not found] ` <20090417062951.GA4593-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2009-04-17 21:22 ` Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13114] USB storage (usbstick) automount woes Rafael J. Wysocki
2009-04-17 4:01 ` Mike Galbraith
2009-04-16 21:45 ` [Bug #13116] Can't boot with nosmp Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13119] Trouble with make-install from a NFS mount Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13115] microcode driver newly spews warnings Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13118] iptables very slow after commit 784544739a25c30637397ace5489eeb6e15d7d49 Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13121] commit 1a7c618a3f7bef1a20ae740df512eeba21397fa5 breaks ACPI video Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13122] reiserfs_delete_xattrs: Couldn't delete all xattrs (-13) Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13123] 20 ACPI interrupts per second on EEEPC 4G Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13124] ioatdma: DMA-API: device driver frees DMA memory with wrong function Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13120] BUG: using rootfstype=ext4 causes oops Rafael J. Wysocki
2009-04-19 18:31 ` Andrew Price
2009-04-16 21:45 ` [Bug #13125] active uvcvideo breaks over suspend Rafael J. Wysocki
2009-04-16 21:45 ` [Bug #13126] BUG: MAX_LOCKDEP_ENTRIES too low! when mounting rootfs Rafael J. Wysocki
2009-04-17 0:40 ` 2.6.30-rc2-git2: Reported regressions from 2.6.29 Linus Torvalds
2009-04-17 1:25 ` Ingo Molnar
[not found] ` <20090417012544.GB16126-X9Un+BFzKDI@public.gmane.org>
2009-04-17 21:25 ` Rafael J. Wysocki
2009-04-17 0:41 ` David Miller
2009-04-17 21:27 ` Rafael J. Wysocki
2009-04-17 0:46 ` Linus Torvalds
2009-04-17 21:31 ` Rafael J. Wysocki
2009-04-17 1:28 ` Jeff Chua
2009-04-17 1:30 ` Zhang Rui
2009-04-17 2:34 ` yakui_zhao
2009-04-17 21:35 ` Rafael J. Wysocki
2009-04-17 1:37 ` Ming Lei
2009-04-17 21:36 ` Rafael J. Wysocki
2009-04-17 23:56 ` Laurent Pinchart
[not found] ` <200904180156.24366.laurent.pinchart-AgBVmzD5pcezQB+pC5nmwQ@public.gmane.org>
2009-04-18 12:29 ` Rafael J. Wysocki
2009-04-18 2:32 ` leiming
2009-04-18 2:55 ` Linus Torvalds
2009-04-18 3:50 ` leiming
2009-04-18 4:51 ` leiming
2009-04-18 12:33 ` Rafael J. Wysocki
2009-04-20 20:08 ` Laurent Pinchart
[not found] ` <200904202208.23899.laurent.pinchart-AgBVmzD5pcezQB+pC5nmwQ@public.gmane.org>
2009-04-21 1:47 ` Ming Lei
2009-04-21 23:21 ` Laurent Pinchart
2009-05-09 3:28 ` Ming Lei
2009-05-09 16:24 ` Linus Torvalds
2009-05-09 21:37 ` Mauro Carvalho Chehab
2009-04-17 17:09 ` Thomas Meyer
[not found] ` <20090417190943.411479vadrij472v-3kKKDy/3F8MR5xTLlF7YiBvVK+yQ3ZXh@public.gmane.org>
2009-04-17 21:38 ` Rafael J. Wysocki
2009-04-24 13:44 ` Kalle Valo
[not found] ` <87ljpqqi89.fsf-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>
2009-04-25 21:57 ` Rafael J. Wysocki
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=20090508095010.GA26398@localhost \
--to=fengguang.wu-ral2jqcrhueavxtiumwx3w@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=alan-jenkins-cCz0Lq7MMjm9FHfhHBbuYA@public.gmane.org \
--cc=jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=pavel-+ZI9xUNit7I@public.gmane.org \
--cc=rientjes-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=rjw-KKrjLPT3xs0@public.gmane.org \
--cc=torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.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).