Commit 99691add authored by Vladimir Davydov's avatar Vladimir Davydov Committed by Linus Torvalds

mm: remove pointless struct in struct page definition

This patchset implements per kmemcg accounting of page tables
(x86-only), pipe buffers, and unix socket buffers.

Patches 1-3 are just cleanups that are not supposed to introduce any
functional changes.  Patches 4 and 5 move charge/uncharge to generic
page allocator paths for the sake of accounting pipe and unix socket
buffers.  Patches 5-7 make x86 page tables, pipe buffers, and unix
socket buffers accountable.

This patch (of 8):

... to reduce indentation level thus leaving more space for comments.

Link: http://lkml.kernel.org/r/f34ffe70fce2b0b9220856437f77972d67c14275.1464079537.git.vdavydov@virtuozzo.comSigned-off-by: default avatarVladimir Davydov <vdavydov@virtuozzo.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Minchan Kim <minchan@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e77b0852
...@@ -60,51 +60,47 @@ struct page { ...@@ -60,51 +60,47 @@ struct page {
}; };
/* Second double word */ /* Second double word */
struct { union {
union { pgoff_t index; /* Our offset within mapping. */
pgoff_t index; /* Our offset within mapping. */ void *freelist; /* sl[aou]b first free object */
void *freelist; /* sl[aou]b first free object */ /* page_deferred_list().prev -- second tail page */
/* page_deferred_list().prev -- second tail page */ };
};
union { union {
#if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \ #if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \
defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE) defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE)
/* Used for cmpxchg_double in slub */ /* Used for cmpxchg_double in slub */
unsigned long counters; unsigned long counters;
#else #else
/* /*
* Keep _refcount separate from slub cmpxchg_double * Keep _refcount separate from slub cmpxchg_double data.
* data. As the rest of the double word is protected by * As the rest of the double word is protected by slab_lock
* slab_lock but _refcount is not. * but _refcount is not.
*/ */
unsigned counters; unsigned counters;
#endif #endif
struct {
struct { union {
union {
/*
* Count of ptes mapped in mms, to show
* when page is mapped & limit reverse
* map searches.
*/
atomic_t _mapcount;
struct { /* SLUB */
unsigned inuse:16;
unsigned objects:15;
unsigned frozen:1;
};
int units; /* SLOB */
};
/* /*
* Usage count, *USE WRAPPER FUNCTION* * Count of ptes mapped in mms, to show when
* when manual accounting. See page_ref.h * page is mapped & limit reverse map searches.
*/ */
atomic_t _refcount; atomic_t _mapcount;
unsigned int active; /* SLAB */
struct { /* SLUB */
unsigned inuse:16;
unsigned objects:15;
unsigned frozen:1;
};
int units; /* SLOB */
}; };
unsigned int active; /* SLAB */ /*
* Usage count, *USE WRAPPER FUNCTION* when manual
* accounting. See page_ref.h
*/
atomic_t _refcount;
}; };
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment