Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 261644
b: refs/heads/master
c: 50d5c41
h: refs/heads/master
v: v3
  • Loading branch information
Christoph Lameter authored and Pekka Enberg committed Jul 2, 2011
1 parent 99e7aa9 commit 47038d9
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7e0528dadc9f8b04e4de0dba48a075100c2afe75
refs/heads/master: 50d5c41cd151b21ac1dfc98f048210456ccacc20
5 changes: 3 additions & 2 deletions trunk/include/linux/mm_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@ struct page {
* & limit reverse map searches.
*/
struct { /* SLUB */
u16 inuse;
u16 objects;
unsigned inuse:16;
unsigned objects:15;
unsigned frozen:1;
};
};
union {
Expand Down
5 changes: 0 additions & 5 deletions trunk/include/linux/page-flags.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,6 @@ enum pageflags {

/* SLOB */
PG_slob_free = PG_private,

/* SLUB */
PG_slub_frozen = PG_active,
};

#ifndef __GENERATING_BOUNDS_H
Expand Down Expand Up @@ -212,8 +209,6 @@ PAGEFLAG(SwapBacked, swapbacked) __CLEARPAGEFLAG(SwapBacked, swapbacked)

__PAGEFLAG(SlobFree, slob_free)

__PAGEFLAG(SlubFrozen, slub_frozen)

/*
* Private page markings that may be used by the filesystem that owns the page
* for its own purposes.
Expand Down
12 changes: 6 additions & 6 deletions trunk/mm/slub.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ static inline int kmem_cache_debug(struct kmem_cache *s)

#define OO_SHIFT 16
#define OO_MASK ((1 << OO_SHIFT) - 1)
#define MAX_OBJS_PER_PAGE 65535 /* since page.objects is u16 */
#define MAX_OBJS_PER_PAGE 32767 /* since page.objects is u15 */

/* Internal SLUB flags */
#define __OBJECT_POISON 0x80000000UL /* Poison object */
Expand Down Expand Up @@ -1025,7 +1025,7 @@ static noinline int free_debug_processing(struct kmem_cache *s,
}

/* Special debug activities for freeing objects */
if (!PageSlubFrozen(page) && !page->freelist)
if (!page->frozen && !page->freelist)
remove_full(s, page);
if (s->flags & SLAB_STORE_USER)
set_track(s, object, TRACK_FREE, addr);
Expand Down Expand Up @@ -1424,7 +1424,7 @@ static inline int lock_and_freeze_slab(struct kmem_cache_node *n,
{
if (slab_trylock(page)) {
__remove_partial(n, page);
__SetPageSlubFrozen(page);
page->frozen = 1;
return 1;
}
return 0;
Expand Down Expand Up @@ -1538,7 +1538,7 @@ static void unfreeze_slab(struct kmem_cache *s, struct page *page, int tail)
{
struct kmem_cache_node *n = get_node(s, page_to_nid(page));

__ClearPageSlubFrozen(page);
page->frozen = 0;
if (page->inuse) {

if (page->freelist) {
Expand Down Expand Up @@ -1868,7 +1868,7 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
flush_slab(s, c);

slab_lock(page);
__SetPageSlubFrozen(page);
page->frozen = 1;
c->node = page_to_nid(page);
c->page = page;
goto load_freelist;
Expand Down Expand Up @@ -2048,7 +2048,7 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
page->freelist = object;
page->inuse--;

if (unlikely(PageSlubFrozen(page))) {
if (unlikely(page->frozen)) {
stat(s, FREE_FROZEN);
goto out_unlock;
}
Expand Down

0 comments on commit 47038d9

Please sign in to comment.