All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] Restructure struct page
@ 2017-12-16 16:44 Matthew Wilcox
  2017-12-16 16:44 ` [PATCH 1/8] mm: Align struct page more aesthetically Matthew Wilcox
                   ` (8 more replies)
  0 siblings, 9 replies; 39+ messages in thread
From: Matthew Wilcox @ 2017-12-16 16:44 UTC (permalink / raw)
  To: linux-mm; +Cc: Kirill A. Shutemov, Christoph Lameter, Matthew Wilcox

From: Matthew Wilcox <mawilcox@microsoft.com>

This series does not attempt any grand restructuring as I proposed last
week.  Instead, it cures the worst of the indentitis, fixes the
documentation and reduces the ifdeffery.  The only layout change is
compound_dtor and compound_order are each reduced to one byte.  At
least, that's my intent.  

Here's a diff from pahole's output:

--- old-struct-page	2017-12-16 09:58:09.653936791 -0500
+++ new-struct-page	2017-12-16 09:58:32.009832964 -0500
@@ -11,17 +11,15 @@
 	};                                               /*    16     8 */
 	union {
 		long unsigned int  counters;             /*           8 */
+		unsigned int       active;               /*           4 */
 		struct {
-			union {
-				atomic_t _mapcount;      /*           4 */
-				unsigned int active;     /*           4 */
-				struct {
-					unsigned int inuse:16; /*    24:16  4 */
-					unsigned int objects:15; /*    24: 1  4 */
-					unsigned int frozen:1; /*    24: 0  4 */
-				};                       /*           4 */
-				int units;               /*           4 */
-			};                               /*    24     4 */
+			unsigned int inuse:16;           /*    24:16  4 */
+			unsigned int objects:15;         /*    24: 1  4 */
+			unsigned int frozen:1;           /*    24: 0  4 */
+		};                                       /*           4 */
+		int                units;                /*           4 */
+		struct {
+			atomic_t   _mapcount;            /*    24     4 */
 			atomic_t   _refcount;            /*    28     4 */
 		};                                       /*           8 */
 	};                                               /*    24     8 */
@@ -36,8 +34,8 @@
 		struct callback_head callback_head;      /*          16 */
 		struct {
 			long unsigned int compound_head; /*    32     8 */
-			unsigned int compound_dtor;      /*    40     4 */
-			unsigned int compound_order;     /*    44     4 */
+			unsigned char compound_dtor;     /*    40     1 */
+			unsigned char compound_order;    /*    41     1 */
 		};                                       /*          16 */
 		struct {
 			long unsigned int __pad;         /*    32     8 */

Matthew Wilcox (8):
  mm: Align struct page more aesthetically
  mm: De-indent struct page
  mm: Remove misleading alignment claims
  mm: Improve comment on page->mapping
  mm: Introduce _slub_counter_t
  mm: Store compound_dtor / compound_order as bytes
  mm: Document how to use struct page
  mm: Remove reference to PG_buddy

 include/linux/mm_types.h | 153 ++++++++++++++++++++++-------------------------
 1 file changed, 73 insertions(+), 80 deletions(-)

-- 
2.15.1

--
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>

^ permalink raw reply	[flat|nested] 39+ messages in thread
* [PATCH 0/8] Restructure struct page
@ 2017-12-20 15:52 Matthew Wilcox
  2017-12-20 15:52 ` [PATCH 6/8] mm: Store compound_dtor / compound_order as bytes Matthew Wilcox
  0 siblings, 1 reply; 39+ messages in thread
From: Matthew Wilcox @ 2017-12-20 15:52 UTC (permalink / raw)
  To: linux-mm; +Cc: akpm, Matthew Wilcox

From: Matthew Wilcox <mawilcox@microsoft.com>

This series does not attempt any grand restructuring as I proposed last
week.  Instead, it cures the worst of the indentitis, fixes the
documentation and reduces the ifdeffery.  The only layout change is
compound_dtor and compound_order are each reduced to one byte.  At
least, that's my intent.  

Here's a diff from pahole's output:

--- old-struct-page	2017-12-16 09:58:09.653936791 -0500
+++ new-struct-page	2017-12-16 09:58:32.009832964 -0500
@@ -11,17 +11,15 @@
 	};                                               /*    16     8 */
 	union {
 		long unsigned int  counters;             /*           8 */
+		unsigned int       active;               /*           4 */
 		struct {
-			union {
-				atomic_t _mapcount;      /*           4 */
-				unsigned int active;     /*           4 */
-				struct {
-					unsigned int inuse:16; /*    24:16  4 */
-					unsigned int objects:15; /*    24: 1  4 */
-					unsigned int frozen:1; /*    24: 0  4 */
-				};                       /*           4 */
-				int units;               /*           4 */
-			};                               /*    24     4 */
+			unsigned int inuse:16;           /*    24:16  4 */
+			unsigned int objects:15;         /*    24: 1  4 */
+			unsigned int frozen:1;           /*    24: 0  4 */
+		};                                       /*           4 */
+		int                units;                /*           4 */
+		struct {
+			atomic_t   _mapcount;            /*    24     4 */
 			atomic_t   _refcount;            /*    28     4 */
 		};                                       /*           8 */
 	};                                               /*    24     8 */
@@ -36,8 +34,8 @@
 		struct callback_head callback_head;      /*          16 */
 		struct {
 			long unsigned int compound_head; /*    32     8 */
-			unsigned int compound_dtor;      /*    40     4 */
-			unsigned int compound_order;     /*    44     4 */
+			unsigned char compound_dtor;     /*    40     1 */
+			unsigned char compound_order;    /*    41     1 */
 		};                                       /*          16 */
 		struct {
 			long unsigned int __pad;         /*    32     8 */

Matthew Wilcox (8):
  mm: Align struct page more aesthetically
  mm: De-indent struct page
  mm: Remove misleading alignment claims
  mm: Improve comment on page->mapping
  mm: Introduce _slub_counter_t
  mm: Store compound_dtor / compound_order as bytes
  mm: Document how to use struct page
  mm: Remove reference to PG_buddy

 include/linux/mm_types.h | 153 ++++++++++++++++++++++-------------------------
 1 file changed, 73 insertions(+), 80 deletions(-)

-- 
2.15.1

--
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>

^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2017-12-21 17:03 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-16 16:44 [PATCH 0/8] Restructure struct page Matthew Wilcox
2017-12-16 16:44 ` [PATCH 1/8] mm: Align struct page more aesthetically Matthew Wilcox
2017-12-18 15:22   ` Michal Hocko
2017-12-19 14:58   ` Christopher Lameter
2017-12-16 16:44 ` [PATCH 2/8] mm: De-indent struct page Matthew Wilcox
2017-12-18 15:36   ` Michal Hocko
2017-12-18 16:19     ` Matthew Wilcox
2017-12-18 20:49       ` Michal Hocko
2017-12-18 21:44         ` Matthew Wilcox
2017-12-19 14:59           ` Christopher Lameter
2017-12-16 16:44 ` [PATCH 3/8] mm: Remove misleading alignment claims Matthew Wilcox
2017-12-19 15:01   ` Christopher Lameter
2017-12-16 16:44 ` [PATCH 4/8] mm: Improve comment on page->mapping Matthew Wilcox
2017-12-19  8:02   ` Michal Hocko
2017-12-19 15:48     ` Christopher Lameter
2017-12-16 16:44 ` [PATCH 5/8] mm: Introduce _slub_counter_t Matthew Wilcox
2017-12-19  8:07   ` Michal Hocko
2017-12-19 12:46     ` Matthew Wilcox
2017-12-19 13:01       ` Michal Hocko
2017-12-20 16:19         ` Matthew Wilcox
2017-12-21 17:03           ` Christopher Lameter
2017-12-16 16:44 ` [PATCH 6/8] mm: Store compound_dtor / compound_order as bytes Matthew Wilcox
2017-12-19  8:19   ` Michal Hocko
2017-12-19 12:49     ` Matthew Wilcox
2017-12-16 16:44 ` [PATCH 7/8] mm: Document how to use struct page Matthew Wilcox
2017-12-16 17:47   ` Randy Dunlap
2017-12-17  1:15     ` Matthew Wilcox
2017-12-19  9:59   ` Michal Hocko
2017-12-19 13:07     ` Matthew Wilcox
2017-12-19 13:43       ` Kirill A. Shutemov
2017-12-19 13:48         ` Michal Hocko
2017-12-19 15:53   ` Christopher Lameter
2017-12-19 15:56     ` Kirill A. Shutemov
2017-12-19 16:12     ` Matthew Wilcox
2017-12-16 16:44 ` [PATCH 8/8] mm: Remove reference to PG_buddy Matthew Wilcox
2017-12-19 10:02   ` Michal Hocko
2017-12-19 15:53     ` Christopher Lameter
2017-12-17 13:06 ` [PATCH 0/8] Restructure struct page Kirill A. Shutemov
  -- strict thread matches above, loose matches on Subject: below --
2017-12-20 15:52 Matthew Wilcox
2017-12-20 15:52 ` [PATCH 6/8] mm: Store compound_dtor / compound_order as bytes Matthew Wilcox

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.