Skip to contentSkip to conversation

mm: page_alloc.c Remove duplicate call to trace_mm_page_free_direct

PATCH In review Li Hong 2 participants 2 messages Jan 13, 2010 – Jan 14, 2010

Subsystems (2)
lore
Share & tools
lore

Li Hong

author
#0 lore raw

PATCH 1/3 mm: page_alloc.c Remove duplicate call to trace_mm_page_free_direct

Function 'trace_mm_page_free_direct' is called in function '__free_pages'. But it is called again in 'free_hot_page' if order == 0 and produce duplicate records in trace file for mm_page_free_direct event. As below:

K-PID CPU# TIMESTAMP FUNCTION

  gnome-terminal-1567  [000]  4415.246466: mm_page_free_direct: page=ffffea0003db9f40 pfn=1155800 order=0
  gnome-terminal-1567  [000]  4415.246468: mm_page_free_direct: page=ffffea0003db9f40 pfn=1155800 order=0
  gnome-terminal-1567  [000]  4415.246506: mm_page_alloc: page=ffffea0003db9f40 pfn=1155800 order=0 migratetype=0 gfp_flags=GFP_KERNEL
  gnome-terminal-1567  [000]  4415.255557: mm_page_free_direct: page=ffffea0003db9f40 pfn=1155800 order=0
  gnome-terminal-1567  [000]  4415.255557: mm_page_free_direct: page=ffffea0003db9f40 pfn=1155800 order=0

This patch removes the first call and add a call to 'trace_mm_page_free_direct' in '__free_pages_ok'.

---
 mm/page_alloc.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
mm/page_alloc.c +1 -1
index 4e9f5cc..24344cd 100644
@@ -582,6 +582,7 @@ static void __free_pages_ok(struct page *page, unsigned int order)
        int bad = 0;
        int wasMlocked = __TestClearPageMlocked(page);
 
+       trace_mm_page_free_direct(page, order);
        kmemcheck_free_shadow(page, order);
 
        for (i = 0 ; i < (1 << order) ; ++i)
@@ -2012,7 +2013,6 @@ void __pagevec_free(struct pagevec *pvec)
 void __free_pages(struct page *page, unsigned int order)
 {
        if (put_page_testzero(page)) {
-               trace_mm_page_free_direct(page, order);
                if (order == 0)
                        free_hot_page(page);
                else
Signature · 1 line
1.6.3.3
maintainer
#1 lore raw
Quoted 3 lines · On Wed, 13 Jan 2010 22:49:17 +0800 Li Hong <[email protected]> wrote:

Function 'trace_mm_page_free_direct' is called in function '__free_pages'. But it is called again in 'free_hot_page' if order == 0 and produce duplicate records in trace file for mm_page_free_direct event. As below:

When naming functions in changelogs you can just use the name of the function followed by (), such as trace_mm_page_free_direct(). There's no need to call it "function 'trace_mm_page_free_direct'".

Quoted 28 lines

K-PID CPU# TIMESTAMP FUNCTION

  gnome-terminal-1567  [000]  4415.246466: mm_page_free_direct: page=ffffea0003db9f40 pfn=1155800 order=0
  gnome-terminal-1567  [000]  4415.246468: mm_page_free_direct: page=ffffea0003db9f40 pfn=1155800 order=0
  gnome-terminal-1567  [000]  4415.246506: mm_page_alloc: page=ffffea0003db9f40 pfn=1155800 order=0 migratetype=0 gfp_flags=GFP_KERNEL
  gnome-terminal-1567  [000]  4415.255557: mm_page_free_direct: page=ffffea0003db9f40 pfn=1155800 order=0
  gnome-terminal-1567  [000]  4415.255557: mm_page_free_direct: page=ffffea0003db9f40 pfn=1155800 order=0

This patch removes the first call and add a call to 'trace_mm_page_free_direct' in '__free_pages_ok'.

---
 mm/page_alloc.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
mm/page_alloc.c +1 -0
index 4e9f5cc..24344cd 100644
@@ -582,6 +582,7 @@ static void __free_pages_ok(struct page *page, unsigned int order)
        int bad = 0;
        int wasMlocked = __TestClearPageMlocked(page);
 
+       trace_mm_page_free_direct(page, order);
        kmemcheck_free_shadow(page, order);
 
        for (i = 0 ; i < (1 << order) ; ++i)

mm/page_alloc.c void __pagevec_free(struct pagevec *pvec) · line 2015

Quoted 4 lines
mm/page_alloc.c +0 -1
@@ -2012,7 +2013,6 @@ void __pagevec_free(struct pagevec *pvec)
 void __free_pages(struct page *page, unsigned int order)
 {
        if (put_page_testzero(page)) {
-               trace_mm_page_free_direct(page, order);

Your email client replaces tabs with spaces. I can fix that up, but please do repair that email client. Documentation/email-clients.txt has some help for gmail, but it's ugly.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>