All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlastimil Babka <vbabka@suse.cz>
To: Andy Whitcroft <apw@canonical.com>, Joe Perches <joe@perches.com>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: checkpatch false warning. was: [PATCH 3/5] mm, page_owner: copy page owner info during migration
Date: Wed, 4 Nov 2015 16:10:07 +0100	[thread overview]
Message-ID: <563A1FCF.3040209@suse.cz> (raw)
In-Reply-To: <1446649261-27122-4-git-send-email-vbabka@suse.cz>

On 11/04/2015 04:00 PM, Vlastimil Babka wrote:
> The page_owner mechanism stores gfp_flags of an allocation and stack trace
> that lead to it. During page migration, the original information is
> essentially replaced by the allocation of free page as the migration target.
> Arguably this is less useful and might lead to all the page_owner info for
> migratable pages gradually converge towards compaction or numa balancing
> migrations. It has also lead to inaccuracies such as one fixed by commit
> e2cfc91120fa ("mm/page_owner: set correct gfp_mask on page_owner").

Hi,

This patch gives me the following checkpatch warning:

ERROR: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit e2cfc91120fa ("mm/page_owner: set correct gfp_mask on page_owner")'
#12: 
e2cfc91120fa ("mm/page_owner: set correct gfp_mask on page_owner").

Some fuzzing showed that it's complaining about the missing word "commit"
which is however on the end of the previous line. Can that be fixed please?
I can't speak perl myself.

Thanks,
Vlastimil
 
> This patch thus introduces copying the page_owner info during migration.
> However, since the fact that the page has been migrated from its original
> place might be useful for debugging, the next patch will introduce a way to
> track that information as well.
> 
> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
> ---
>   include/linux/page_owner.h | 10 +++++++++-
>   mm/migrate.c               |  2 ++
>   mm/page_owner.c            | 16 ++++++++++++++++
>   3 files changed, 27 insertions(+), 1 deletion(-)
> 
> diff --git a/include/linux/page_owner.h b/include/linux/page_owner.h
> index 8e2eb15..6440daa 100644
> --- a/include/linux/page_owner.h
> +++ b/include/linux/page_owner.h
> @@ -11,6 +11,7 @@ extern void __reset_page_owner(struct page *page, unsigned int order);
>   extern void __set_page_owner(struct page *page,
>   			unsigned int order, gfp_t gfp_mask);
>   extern gfp_t __get_page_owner_gfp(struct page *page);
> +extern void __copy_page_owner(struct page *oldpage, struct page *newpage);
>   
>   static inline void reset_page_owner(struct page *page, unsigned int order)
>   {
> @@ -32,6 +33,11 @@ static inline gfp_t get_page_owner_gfp(struct page *page)
>   	else
>   		return 0;
>   }
> +static inline void copy_page_owner(struct page *oldpage, struct page *newpage)
> +{
> +	if (static_branch_unlikely(&page_owner_inited))
> +		__copy_page_owner(oldpage, newpage);
> +}
>   #else
>   static inline void reset_page_owner(struct page *page, unsigned int order)
>   {
> @@ -44,6 +50,8 @@ static inline gfp_t get_page_owner_gfp(struct page *page)
>   {
>   	return 0;
>   }
> -
> +static inline void copy_page_owner(struct page *oldpage, struct page *newpage)
> +{
> +}
>   #endif /* CONFIG_PAGE_OWNER */
>   #endif /* __LINUX_PAGE_OWNER_H */
> diff --git a/mm/migrate.c b/mm/migrate.c
> index 1ae0113..9f82e03 100644
> --- a/mm/migrate.c
> +++ b/mm/migrate.c
> @@ -38,6 +38,7 @@
>   #include <linux/balloon_compaction.h>
>   #include <linux/mmu_notifier.h>
>   #include <linux/page_idle.h>
> +#include <linux/page_owner.h>
>   
>   #include <asm/tlbflush.h>
>   
> @@ -775,6 +776,7 @@ static int move_to_new_page(struct page *newpage, struct page *page,
>   		set_page_memcg(page, NULL);
>   		if (!PageAnon(page))
>   			page->mapping = NULL;
> +		copy_page_owner(page, newpage);
>   	}
>   	return rc;
>   }
> diff --git a/mm/page_owner.c b/mm/page_owner.c
> index 7664b85..7ebd3d0 100644
> --- a/mm/page_owner.c
> +++ b/mm/page_owner.c
> @@ -84,6 +84,22 @@ gfp_t __get_page_owner_gfp(struct page *page)
>   	return page_ext->gfp_mask;
>   }
>   
> +void __copy_page_owner(struct page *oldpage, struct page *newpage)
> +{
> +	struct page_ext *old_ext = lookup_page_ext(oldpage);
> +	struct page_ext *new_ext = lookup_page_ext(newpage);
> +	int i;
> +
> +	new_ext->order = old_ext->order;
> +	new_ext->gfp_mask = old_ext->gfp_mask;
> +	new_ext->nr_entries = old_ext->nr_entries;
> +
> +	for (i = 0; i < ARRAY_SIZE(new_ext->trace_entries); i++)
> +		new_ext->trace_entries[i] = old_ext->trace_entries[i];
> +
> +	__set_bit(PAGE_EXT_OWNER, &new_ext->flags);
> +}
> +
>   static ssize_t
>   print_page_owner(char __user *buf, size_t count, unsigned long pfn,
>   		struct page *page, struct page_ext *page_ext)
> 


  reply	other threads:[~2015-11-04 15:10 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-04 15:00 [PATCH 0/5] page_owner improvements for debugging Vlastimil Babka
2015-11-04 15:00 ` Vlastimil Babka
2015-11-04 15:00 ` [PATCH 1/5] mm, page_owner: print migratetype of a page, not pageblock Vlastimil Babka
2015-11-04 15:00   ` Vlastimil Babka
2015-11-05  8:09   ` Joonsoo Kim
2015-11-05  8:09     ` Joonsoo Kim
2015-11-05  8:15     ` Vlastimil Babka
2015-11-05  8:15       ` Vlastimil Babka
2015-11-05  8:19       ` Joonsoo Kim
2015-11-05  8:19         ` Joonsoo Kim
2015-11-04 15:00 ` [PATCH 2/5] mm, page_owner: convert page_owner_inited to static key Vlastimil Babka
2015-11-04 15:00   ` Vlastimil Babka
2015-11-04 15:00 ` [PATCH 3/5] mm, page_owner: copy page owner info during migration Vlastimil Babka
2015-11-04 15:00   ` Vlastimil Babka
2015-11-04 15:10   ` Vlastimil Babka [this message]
2015-11-04 15:30     ` checkpatch false warning. was: " Joe Perches
2015-11-05  8:10   ` Joonsoo Kim
2015-11-05  8:10     ` Joonsoo Kim
2015-11-05  8:17     ` Vlastimil Babka
2015-11-05  8:17       ` Vlastimil Babka
2015-11-05  8:23       ` Joonsoo Kim
2015-11-05  8:23         ` Joonsoo Kim
2015-11-08 21:29   ` Hugh Dickins
2015-11-08 21:29     ` Hugh Dickins
2015-11-19 16:44     ` Vlastimil Babka
2015-11-19 16:44       ` Vlastimil Babka
2015-11-04 15:01 ` [PATCH 4/5] mm, page_owner: track last migrate reason Vlastimil Babka
2015-11-04 15:01   ` Vlastimil Babka
2015-11-04 15:01 ` [PATCH 5/5] mm, page_owner: dump page owner info from dump_page() Vlastimil Babka
2015-11-04 15:01   ` Vlastimil Babka
2015-11-04 19:41   ` Kirill A. Shutemov
2015-11-04 19:41     ` Kirill A. Shutemov
2015-11-04 20:12     ` Sasha Levin
2015-11-04 20:12       ` Sasha Levin
2015-11-04 20:41       ` Kirill A. Shutemov
2015-11-04 20:41         ` Kirill A. Shutemov

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=563A1FCF.3040209@suse.cz \
    --to=vbabka@suse.cz \
    --cc=apw@canonical.com \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.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.