From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
To: Mel Gorman <mgorman@suse.de>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Linux-MM <linux-mm@kvack.org>,
Linux-Netdev <netdev@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
David Miller <davem@davemloft.net>, Neil Brown <neilb@suse.de>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Mike Christie <michaelc@cs.wisc.edu>,
Eric B Munson <emunson@mgebm.net>
Subject: [PATCH 02.5] mm: sl[au]b: first remove PFMEMALLOC flag then SLAB flag
Date: Fri, 15 Jun 2012 17:54:32 +0200 [thread overview]
Message-ID: <20120615155432.GA5498@breakpoint.cc> (raw)
In-Reply-To: <1337266231-8031-3-git-send-email-mgorman@suse.de>
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
If we first remove the SLAB flag followed by the PFMEMALLOC flag then the
removal of the latter will trigger the VM_BUG_ON() as it can be seen in
| kernel BUG at include/linux/page-flags.h:474!
| invalid opcode: 0000 [#1] PREEMPT SMP
| Call Trace:
| [<c10e2d77>] slab_destroy+0x27/0x70
| [<c10e3285>] drain_freelist+0x55/0x90
| [<c10e344e>] __cache_shrink+0x6e/0x90
| [<c14e3211>] ? acpi_sleep_init+0xcf/0xcf
| [<c10e349d>] kmem_cache_shrink+0x2d/0x40
because the SLAB flag is gone. This patch simply changes the order.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
mm/slab.c | 2 +-
mm/slub.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/slab.c b/mm/slab.c
index 00c601b..b1a39f7 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -2007,8 +2007,8 @@ static void kmem_freepages(struct kmem_cache *cachep, void *addr)
NR_SLAB_UNRECLAIMABLE, nr_freed);
while (i--) {
BUG_ON(!PageSlab(page));
- __ClearPageSlab(page);
__ClearPageSlabPfmemalloc(page);
+ __ClearPageSlab(page);
page++;
}
if (current->reclaim_state)
diff --git a/mm/slub.c b/mm/slub.c
index f8cbec4..d753146 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1417,8 +1417,8 @@ static void __free_slab(struct kmem_cache *s, struct page *page)
NR_SLAB_RECLAIMABLE : NR_SLAB_UNRECLAIMABLE,
-pages);
- __ClearPageSlab(page);
__ClearPageSlabPfmemalloc(page);
+ __ClearPageSlab(page);
reset_page_mapcount(page);
if (current->reclaim_state)
current->reclaim_state->reclaimed_slab += pages;
--
1.7.10
--
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>
next prev parent reply other threads:[~2012-06-15 15:54 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-17 14:50 [PATCH 00/17] Swap-over-NBD without deadlocking V11 Mel Gorman
2012-05-17 14:50 ` [PATCH 01/17] mm: Serialize access to min_free_kbytes Mel Gorman
2012-05-17 14:50 ` [PATCH 02/17] mm: sl[au]b: Add knowledge of PFMEMALLOC reserve pages Mel Gorman
2012-06-15 15:54 ` Sebastian Andrzej Siewior [this message]
2012-06-16 8:14 ` [PATCH 02.5] mm: sl[au]b: first remove PFMEMALLOC flag then SLAB flag Cong Wang
2012-06-20 7:38 ` Mel Gorman
2012-05-17 14:50 ` [PATCH 03/17] mm: slub: Optimise the SLUB fast path to avoid pfmemalloc checks Mel Gorman
2012-05-17 14:50 ` [PATCH 04/17] mm: Introduce __GFP_MEMALLOC to allow access to emergency reserves Mel Gorman
2012-05-17 14:50 ` [PATCH 05/17] mm: allow PF_MEMALLOC from softirq context Mel Gorman
2012-05-17 14:50 ` [PATCH 06/17] mm: Only set page->pfmemalloc when ALLOC_NO_WATERMARKS was used Mel Gorman
2012-05-17 14:50 ` [PATCH 07/17] mm: Ignore mempolicies when using ALLOC_NO_WATERMARK Mel Gorman
2012-05-17 14:50 ` [PATCH 08/17] net: Introduce sk_gfp_atomic() to allow addition of GFP flags depending on the individual socket Mel Gorman
2012-05-17 20:10 ` David Miller
2012-05-17 14:50 ` [PATCH 09/17] netvm: Allow the use of __GFP_MEMALLOC by specific sockets Mel Gorman
2012-05-17 20:11 ` David Miller
2012-05-17 14:50 ` [PATCH 10/17] netvm: Allow skb allocation to use PFMEMALLOC reserves Mel Gorman
2012-05-17 20:12 ` David Miller
2012-05-17 14:50 ` [PATCH 11/17] netvm: Propagate page->pfmemalloc to skb Mel Gorman
2012-05-17 20:12 ` David Miller
2012-05-17 14:50 ` [PATCH 12/17] netvm: Propagate page->pfmemalloc from skb_alloc_page " Mel Gorman
2012-05-17 20:13 ` David Miller
2012-05-17 14:50 ` [PATCH 13/17] netvm: Set PF_MEMALLOC as appropriate during SKB processing Mel Gorman
2012-05-17 20:13 ` David Miller
2012-05-17 14:50 ` [PATCH 14/17] mm: Micro-optimise slab to avoid a function call Mel Gorman
2012-05-17 14:50 ` [PATCH 15/17] nbd: Set SOCK_MEMALLOC for access to PFMEMALLOC reserves Mel Gorman
2012-05-17 14:50 ` [PATCH 16/17] mm: Throttle direct reclaimers if PF_MEMALLOC reserves are low and swap is backed by network storage Mel Gorman
2012-05-17 14:50 ` [PATCH 17/17] mm: Account for the number of times direct reclaimers get throttled Mel Gorman
2012-05-18 1:11 ` [PATCH 00/17] Swap-over-NBD without deadlocking V11 Eric B Munson
2012-05-18 1:46 ` Eric B Munson
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=20120615155432.GA5498@breakpoint.cc \
--to=sebastian@breakpoint.cc \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=emunson@mgebm.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=michaelc@cs.wisc.edu \
--cc=neilb@suse.de \
--cc=netdev@vger.kernel.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).