[PATCH 15/18] mm: numa: Trace tasks that fail migration due to rate limiting

2013-12-10 Thread Mel Gorman
A low local/remote numa hinting fault ratio is potentially explained by
failed migrations. This patch adds a tracepoint that fires when migration
fails due to migration rate limitation.

Signed-off-by: Mel Gorman 
Reviewed-by: Rik van Riel 
---
 include/trace/events/migrate.h | 26 ++
 mm/migrate.c   |  5 -
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/include/trace/events/migrate.h b/include/trace/events/migrate.h
index ec2a6cc..3075ffb 100644
--- a/include/trace/events/migrate.h
+++ b/include/trace/events/migrate.h
@@ -45,6 +45,32 @@ TRACE_EVENT(mm_migrate_pages,
__print_symbolic(__entry->reason, MIGRATE_REASON))
 );
 
+TRACE_EVENT(mm_numa_migrate_ratelimit,
+
+   TP_PROTO(struct task_struct *p, int dst_nid, unsigned long nr_pages),
+
+   TP_ARGS(p, dst_nid, nr_pages),
+
+   TP_STRUCT__entry(
+   __array(char,   comm,   TASK_COMM_LEN)
+   __field(pid_t,  pid)
+   __field(int,dst_nid)
+   __field(unsigned long,  nr_pages)
+   ),
+
+   TP_fast_assign(
+   memcpy(__entry->comm, p->comm, TASK_COMM_LEN);
+   __entry->pid= p->pid;
+   __entry->dst_nid= dst_nid;
+   __entry->nr_pages   = nr_pages;
+   ),
+
+   TP_printk("comm=%s pid=%d dst_nid=%d nr_pages=%lu",
+   __entry->comm,
+   __entry->pid,
+   __entry->dst_nid,
+   __entry->nr_pages)
+);
 #endif /* _TRACE_MIGRATE_H */
 
 /* This part must be outside protection */
diff --git a/mm/migrate.c b/mm/migrate.c
index 564d5c9..8dc277d 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -1608,8 +1608,11 @@ static bool numamigrate_update_ratelimit(pg_data_t 
*pgdat,
msecs_to_jiffies(migrate_interval_millisecs);
spin_unlock(>numabalancing_migrate_lock);
}
-   if (pgdat->numabalancing_migrate_nr_pages > ratelimit_pages)
+   if (pgdat->numabalancing_migrate_nr_pages > ratelimit_pages) {
+   trace_mm_numa_migrate_ratelimit(current, pgdat->node_id,
+   nr_pages);
return true;
+   }
 
/*
 * This is an unlocked non-atomic update so errors are possible.
-- 
1.8.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 15/18] mm: numa: Trace tasks that fail migration due to rate limiting

2013-12-10 Thread Mel Gorman
A low local/remote numa hinting fault ratio is potentially explained by
failed migrations. This patch adds a tracepoint that fires when migration
fails due to migration rate limitation.

Signed-off-by: Mel Gorman mgor...@suse.de
Reviewed-by: Rik van Riel r...@redhat.com
---
 include/trace/events/migrate.h | 26 ++
 mm/migrate.c   |  5 -
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/include/trace/events/migrate.h b/include/trace/events/migrate.h
index ec2a6cc..3075ffb 100644
--- a/include/trace/events/migrate.h
+++ b/include/trace/events/migrate.h
@@ -45,6 +45,32 @@ TRACE_EVENT(mm_migrate_pages,
__print_symbolic(__entry-reason, MIGRATE_REASON))
 );
 
+TRACE_EVENT(mm_numa_migrate_ratelimit,
+
+   TP_PROTO(struct task_struct *p, int dst_nid, unsigned long nr_pages),
+
+   TP_ARGS(p, dst_nid, nr_pages),
+
+   TP_STRUCT__entry(
+   __array(char,   comm,   TASK_COMM_LEN)
+   __field(pid_t,  pid)
+   __field(int,dst_nid)
+   __field(unsigned long,  nr_pages)
+   ),
+
+   TP_fast_assign(
+   memcpy(__entry-comm, p-comm, TASK_COMM_LEN);
+   __entry-pid= p-pid;
+   __entry-dst_nid= dst_nid;
+   __entry-nr_pages   = nr_pages;
+   ),
+
+   TP_printk(comm=%s pid=%d dst_nid=%d nr_pages=%lu,
+   __entry-comm,
+   __entry-pid,
+   __entry-dst_nid,
+   __entry-nr_pages)
+);
 #endif /* _TRACE_MIGRATE_H */
 
 /* This part must be outside protection */
diff --git a/mm/migrate.c b/mm/migrate.c
index 564d5c9..8dc277d 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -1608,8 +1608,11 @@ static bool numamigrate_update_ratelimit(pg_data_t 
*pgdat,
msecs_to_jiffies(migrate_interval_millisecs);
spin_unlock(pgdat-numabalancing_migrate_lock);
}
-   if (pgdat-numabalancing_migrate_nr_pages  ratelimit_pages)
+   if (pgdat-numabalancing_migrate_nr_pages  ratelimit_pages) {
+   trace_mm_numa_migrate_ratelimit(current, pgdat-node_id,
+   nr_pages);
return true;
+   }
 
/*
 * This is an unlocked non-atomic update so errors are possible.
-- 
1.8.4

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 15/18] mm: numa: Trace tasks that fail migration due to rate limiting

2013-12-09 Thread Rik van Riel
On 12/09/2013 02:09 AM, Mel Gorman wrote:
> A low local/remote numa hinting fault ratio is potentially explained by
> failed migrations. This patch adds a tracepoint that fires when migration
> fails due to migration rate limitation.
> 
> Signed-off-by: Mel Gorman 

Reviewed-by: Rik van Riel 

-- 
All rights reversed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 15/18] mm: numa: Trace tasks that fail migration due to rate limiting

2013-12-09 Thread Rik van Riel
On 12/09/2013 02:09 AM, Mel Gorman wrote:
 A low local/remote numa hinting fault ratio is potentially explained by
 failed migrations. This patch adds a tracepoint that fires when migration
 fails due to migration rate limitation.
 
 Signed-off-by: Mel Gorman mgor...@suse.de

Reviewed-by: Rik van Riel r...@redhat.com

-- 
All rights reversed
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 15/18] mm: numa: Trace tasks that fail migration due to rate limiting

2013-12-08 Thread Mel Gorman
A low local/remote numa hinting fault ratio is potentially explained by
failed migrations. This patch adds a tracepoint that fires when migration
fails due to migration rate limitation.

Signed-off-by: Mel Gorman 
---
 include/trace/events/migrate.h | 26 ++
 mm/migrate.c   |  5 -
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/include/trace/events/migrate.h b/include/trace/events/migrate.h
index ec2a6cc..3075ffb 100644
--- a/include/trace/events/migrate.h
+++ b/include/trace/events/migrate.h
@@ -45,6 +45,32 @@ TRACE_EVENT(mm_migrate_pages,
__print_symbolic(__entry->reason, MIGRATE_REASON))
 );
 
+TRACE_EVENT(mm_numa_migrate_ratelimit,
+
+   TP_PROTO(struct task_struct *p, int dst_nid, unsigned long nr_pages),
+
+   TP_ARGS(p, dst_nid, nr_pages),
+
+   TP_STRUCT__entry(
+   __array(char,   comm,   TASK_COMM_LEN)
+   __field(pid_t,  pid)
+   __field(int,dst_nid)
+   __field(unsigned long,  nr_pages)
+   ),
+
+   TP_fast_assign(
+   memcpy(__entry->comm, p->comm, TASK_COMM_LEN);
+   __entry->pid= p->pid;
+   __entry->dst_nid= dst_nid;
+   __entry->nr_pages   = nr_pages;
+   ),
+
+   TP_printk("comm=%s pid=%d dst_nid=%d nr_pages=%lu",
+   __entry->comm,
+   __entry->pid,
+   __entry->dst_nid,
+   __entry->nr_pages)
+);
 #endif /* _TRACE_MIGRATE_H */
 
 /* This part must be outside protection */
diff --git a/mm/migrate.c b/mm/migrate.c
index 8b560d5..9f53c00 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -1608,8 +1608,11 @@ static bool numamigrate_update_ratelimit(pg_data_t 
*pgdat,
msecs_to_jiffies(migrate_interval_millisecs);
spin_unlock(>numabalancing_migrate_lock);
}
-   if (pgdat->numabalancing_migrate_nr_pages > ratelimit_pages)
+   if (pgdat->numabalancing_migrate_nr_pages > ratelimit_pages) {
+   trace_mm_numa_migrate_ratelimit(current, pgdat->node_id,
+   nr_pages);
return true;
+   }
 
/*
 * This is an unlocked non-atomic update so errors are possible.
-- 
1.8.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 15/18] mm: numa: Trace tasks that fail migration due to rate limiting

2013-12-08 Thread Mel Gorman
A low local/remote numa hinting fault ratio is potentially explained by
failed migrations. This patch adds a tracepoint that fires when migration
fails due to migration rate limitation.

Signed-off-by: Mel Gorman mgor...@suse.de
---
 include/trace/events/migrate.h | 26 ++
 mm/migrate.c   |  5 -
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/include/trace/events/migrate.h b/include/trace/events/migrate.h
index ec2a6cc..3075ffb 100644
--- a/include/trace/events/migrate.h
+++ b/include/trace/events/migrate.h
@@ -45,6 +45,32 @@ TRACE_EVENT(mm_migrate_pages,
__print_symbolic(__entry-reason, MIGRATE_REASON))
 );
 
+TRACE_EVENT(mm_numa_migrate_ratelimit,
+
+   TP_PROTO(struct task_struct *p, int dst_nid, unsigned long nr_pages),
+
+   TP_ARGS(p, dst_nid, nr_pages),
+
+   TP_STRUCT__entry(
+   __array(char,   comm,   TASK_COMM_LEN)
+   __field(pid_t,  pid)
+   __field(int,dst_nid)
+   __field(unsigned long,  nr_pages)
+   ),
+
+   TP_fast_assign(
+   memcpy(__entry-comm, p-comm, TASK_COMM_LEN);
+   __entry-pid= p-pid;
+   __entry-dst_nid= dst_nid;
+   __entry-nr_pages   = nr_pages;
+   ),
+
+   TP_printk(comm=%s pid=%d dst_nid=%d nr_pages=%lu,
+   __entry-comm,
+   __entry-pid,
+   __entry-dst_nid,
+   __entry-nr_pages)
+);
 #endif /* _TRACE_MIGRATE_H */
 
 /* This part must be outside protection */
diff --git a/mm/migrate.c b/mm/migrate.c
index 8b560d5..9f53c00 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -1608,8 +1608,11 @@ static bool numamigrate_update_ratelimit(pg_data_t 
*pgdat,
msecs_to_jiffies(migrate_interval_millisecs);
spin_unlock(pgdat-numabalancing_migrate_lock);
}
-   if (pgdat-numabalancing_migrate_nr_pages  ratelimit_pages)
+   if (pgdat-numabalancing_migrate_nr_pages  ratelimit_pages) {
+   trace_mm_numa_migrate_ratelimit(current, pgdat-node_id,
+   nr_pages);
return true;
+   }
 
/*
 * This is an unlocked non-atomic update so errors are possible.
-- 
1.8.4

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/