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>
next prev parent 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.