All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: Matthew Wilcox <willy@infradead.org>
Cc: linux-mm@kvack.org,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Christoph Lameter <cl@linux.com>,
	Matthew Wilcox <mawilcox@microsoft.com>
Subject: Re: [PATCH 5/8] mm: Introduce _slub_counter_t
Date: Tue, 19 Dec 2017 09:07:31 +0100	[thread overview]
Message-ID: <20171219080731.GB2787@dhcp22.suse.cz> (raw)
In-Reply-To: <20171216164425.8703-6-willy@infradead.org>

On Sat 16-12-17 08:44:22, Matthew Wilcox wrote:
> From: Matthew Wilcox <mawilcox@microsoft.com>
> 
> Instead of putting the ifdef in the middle of the definition of struct
> page, pull it forward to the rest of the ifdeffery around the SLUB
> cmpxchg_double optimisation.
> 
> Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>

The definition of struct page looks better now. I think that slub.c
needs some love as well. I haven't checked too deeply but it seems that
it assumes counters to be unsigned long in some places. Maybe I've
missed some ifdef-ery but using the native type would be much better

Acked-by: Michal Hocko <mhocko@suse.com>

> ---
>  include/linux/mm_types.h | 21 ++++++++-------------
>  1 file changed, 8 insertions(+), 13 deletions(-)
> 
> diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
> index 8c3b8cea22ee..5521c9799c50 100644
> --- a/include/linux/mm_types.h
> +++ b/include/linux/mm_types.h
> @@ -41,9 +41,15 @@ struct hmm;
>   */
>  #ifdef CONFIG_HAVE_ALIGNED_STRUCT_PAGE
>  #define _struct_page_alignment	__aligned(2 * sizeof(unsigned long))
> +#if defined(CONFIG_HAVE_CMPXCHG_DOUBLE)
> +#define _slub_counter_t		unsigned long
>  #else
> -#define _struct_page_alignment
> +#define _slub_counter_t		unsigned int
>  #endif
> +#else /* !CONFIG_HAVE_ALIGNED_STRUCT_PAGE */
> +#define _struct_page_alignment
> +#define _slub_counter_t		unsigned int
> +#endif /* !CONFIG_HAVE_ALIGNED_STRUCT_PAGE */
>  
>  struct page {
>  	/* First double word block */
> @@ -66,18 +72,7 @@ struct page {
>  	};
>  
>  	union {
> -#if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \
> -	defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE)
> -		/* Used for cmpxchg_double in slub */
> -		unsigned long counters;
> -#else
> -		/*
> -		 * Keep _refcount separate from slub cmpxchg_double data.
> -		 * As the rest of the double word is protected by slab_lock
> -		 * but _refcount is not.
> -		 */
> -		unsigned counters;
> -#endif
> +		_slub_counter_t counters;
>  		unsigned int active;		/* SLAB */
>  		struct {			/* SLUB */
>  			unsigned inuse:16;
> -- 
> 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>

-- 
Michal Hocko
SUSE Labs

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

  reply	other threads:[~2017-12-19  8:07 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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
2017-12-20 15:52 Matthew Wilcox
2017-12-20 15:52 ` [PATCH 5/8] mm: Introduce _slub_counter_t Matthew Wilcox

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=20171219080731.GB2787@dhcp22.suse.cz \
    --to=mhocko@kernel.org \
    --cc=cl@linux.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-mm@kvack.org \
    --cc=mawilcox@microsoft.com \
    --cc=willy@infradead.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 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.