Re: [PATCH v11 7/7] mm: add vm event counters for balloon pages compaction
On Fri, 9 Nov 2012 12:58:29 -0200 Rafael Aquini wrote: > On Fri, Nov 09, 2012 at 12:20:33PM +, Mel Gorman wrote: > > On Wed, Nov 07, 2012 at 01:05:54AM -0200, Rafael Aquini wrote: > > > This patch introduces a new set of vm event counters to keep track of > > > ballooned pages compaction activity. > > > > > > Signed-off-by: Rafael Aquini > > > > Other than confirming the thing actually works can any meaningful > > conclusions be drawn from this counters? > > > > I know I have been inconsistent on this myself in the past but recently > > I've been taking the attitude that the counters can be used to fit into > > some other metric. I'm looking to change the compaction counters to be > > able to build a basic cost model for example. The same idea could be > > used for balloons of course but it's a less critical path than > > compaction for THP for example. > > > > Assuming it builds and all the defines are correct when the feature is > > not configured (I didn't check) then there is nothing wrong with the > > patch. However, if it was dropped would it make life very hard or would > > you notice? > > > > Originally, I proposed this patch as droppable (and it's still droppable) > because its major purpose was solely to show the thing working consistently > > OTOH, it might make the life easier to spot breakages if it remains with the > merged bits, and per a reviewer request I removed its 'DROP BEFORE MERGE' > disclaimer. > >https://lkml.org/lkml/2012/8/8/616 There's a lot to be said for not merging things. I think I'll maintain this as a mm-only patch. That way it's available in linux-next and we can merge it later if a need arises. -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
On Fri, 9 Nov 2012 12:58:29 -0200 Rafael Aquini aqu...@redhat.com wrote: On Fri, Nov 09, 2012 at 12:20:33PM +, Mel Gorman wrote: On Wed, Nov 07, 2012 at 01:05:54AM -0200, Rafael Aquini wrote: This patch introduces a new set of vm event counters to keep track of ballooned pages compaction activity. Signed-off-by: Rafael Aquini aqu...@redhat.com Other than confirming the thing actually works can any meaningful conclusions be drawn from this counters? I know I have been inconsistent on this myself in the past but recently I've been taking the attitude that the counters can be used to fit into some other metric. I'm looking to change the compaction counters to be able to build a basic cost model for example. The same idea could be used for balloons of course but it's a less critical path than compaction for THP for example. Assuming it builds and all the defines are correct when the feature is not configured (I didn't check) then there is nothing wrong with the patch. However, if it was dropped would it make life very hard or would you notice? Originally, I proposed this patch as droppable (and it's still droppable) because its major purpose was solely to show the thing working consistently OTOH, it might make the life easier to spot breakages if it remains with the merged bits, and per a reviewer request I removed its 'DROP BEFORE MERGE' disclaimer. https://lkml.org/lkml/2012/8/8/616 There's a lot to be said for not merging things. I think I'll maintain this as a mm-only patch. That way it's available in linux-next and we can merge it later if a need arises. -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
On Sat, Nov 10, 2012 at 05:55:38PM +0200, Michael S. Tsirkin wrote: > > mutex_unlock(>balloon_lock); > > + balloon_event_count(COMPACTBALLOONMIGRATED); > > > > return MIGRATEPAGE_BALLOON_SUCCESS; > > } > > Looks like any ballon would need to do this. > Can this chunk go into caller instead? > Good catch. It's done, already (v12 just hit the wild). Thanks! -- Rafael -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
On Sat, Nov 10, 2012 at 05:55:38PM +0200, Michael S. Tsirkin wrote: mutex_unlock(vb-balloon_lock); + balloon_event_count(COMPACTBALLOONMIGRATED); return MIGRATEPAGE_BALLOON_SUCCESS; } Looks like any ballon would need to do this. Can this chunk go into caller instead? Good catch. It's done, already (v12 just hit the wild). Thanks! -- Rafael -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
On Wed, Nov 07, 2012 at 01:05:54AM -0200, Rafael Aquini wrote: > This patch introduces a new set of vm event counters to keep track of > ballooned pages compaction activity. > > Signed-off-by: Rafael Aquini > --- > drivers/virtio/virtio_balloon.c | 1 + > include/linux/vm_event_item.h | 8 +++- > mm/balloon_compaction.c | 2 ++ > mm/migrate.c| 1 + > mm/vmstat.c | 10 +- > 5 files changed, 20 insertions(+), 2 deletions(-) > > diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c > index 69eede7..3756fc1 100644 > --- a/drivers/virtio/virtio_balloon.c > +++ b/drivers/virtio/virtio_balloon.c > @@ -411,6 +411,7 @@ int virtballoon_migratepage(struct address_space *mapping, > tell_host(vb, vb->deflate_vq); > > mutex_unlock(>balloon_lock); > + balloon_event_count(COMPACTBALLOONMIGRATED); > > return MIGRATEPAGE_BALLOON_SUCCESS; > } Looks like any ballon would need to do this. Can this chunk go into caller instead? > diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h > index 3d31145..cbd72fc 100644 > --- a/include/linux/vm_event_item.h > +++ b/include/linux/vm_event_item.h > @@ -41,7 +41,13 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, > #ifdef CONFIG_COMPACTION > COMPACTBLOCKS, COMPACTPAGES, COMPACTPAGEFAILED, > COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS, > -#endif > +#ifdef CONFIG_BALLOON_COMPACTION > + COMPACTBALLOONISOLATED, /* isolated from balloon pagelist */ > + COMPACTBALLOONMIGRATED, /* balloon page sucessfully migrated */ > + COMPACTBALLOONRELEASED, /* old-page released after migration */ > + COMPACTBALLOONRETURNED, /* putback to pagelist, not-migrated */ > +#endif /* CONFIG_BALLOON_COMPACTION */ > +#endif /* CONFIG_COMPACTION */ > #ifdef CONFIG_HUGETLB_PAGE > HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL, > #endif > diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c > index 90935aa..32927eb 100644 > --- a/mm/balloon_compaction.c > +++ b/mm/balloon_compaction.c > @@ -215,6 +215,7 @@ bool balloon_page_isolate(struct page *page) > if (__is_movable_balloon_page(page) && > page_count(page) == 2) { > __isolate_balloon_page(page); > + balloon_event_count(COMPACTBALLOONISOLATED); > unlock_page(page); > return true; > } > @@ -237,6 +238,7 @@ void balloon_page_putback(struct page *page) > if (__is_movable_balloon_page(page)) { > __putback_balloon_page(page); > put_page(page); > + balloon_event_count(COMPACTBALLOONRETURNED); > } else { > __WARN(); > dump_page(page); > diff --git a/mm/migrate.c b/mm/migrate.c > index adb3d44..ee3037d 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -896,6 +896,7 @@ static int unmap_and_move(new_page_t get_new_page, > unsigned long private, > page_is_file_cache(page)); > put_page(page); > __free_page(page); > + balloon_event_count(COMPACTBALLOONRELEASED); > return 0; > } > out: > diff --git a/mm/vmstat.c b/mm/vmstat.c > index c737057..1363edc 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -781,7 +781,15 @@ const char * const vmstat_text[] = { > "compact_stall", > "compact_fail", > "compact_success", > -#endif > + > +#ifdef CONFIG_BALLOON_COMPACTION > + "compact_balloon_isolated", > + "compact_balloon_migrated", > + "compact_balloon_released", > + "compact_balloon_returned", > +#endif /* CONFIG_BALLOON_COMPACTION */ > + > +#endif /* CONFIG_COMPACTION */ > > #ifdef CONFIG_HUGETLB_PAGE > "htlb_buddy_alloc_success", > -- > 1.7.11.7 -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
On Wed, Nov 07, 2012 at 01:05:54AM -0200, Rafael Aquini wrote: This patch introduces a new set of vm event counters to keep track of ballooned pages compaction activity. Signed-off-by: Rafael Aquini aqu...@redhat.com --- drivers/virtio/virtio_balloon.c | 1 + include/linux/vm_event_item.h | 8 +++- mm/balloon_compaction.c | 2 ++ mm/migrate.c| 1 + mm/vmstat.c | 10 +- 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 69eede7..3756fc1 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -411,6 +411,7 @@ int virtballoon_migratepage(struct address_space *mapping, tell_host(vb, vb-deflate_vq); mutex_unlock(vb-balloon_lock); + balloon_event_count(COMPACTBALLOONMIGRATED); return MIGRATEPAGE_BALLOON_SUCCESS; } Looks like any ballon would need to do this. Can this chunk go into caller instead? diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index 3d31145..cbd72fc 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -41,7 +41,13 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, #ifdef CONFIG_COMPACTION COMPACTBLOCKS, COMPACTPAGES, COMPACTPAGEFAILED, COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS, -#endif +#ifdef CONFIG_BALLOON_COMPACTION + COMPACTBALLOONISOLATED, /* isolated from balloon pagelist */ + COMPACTBALLOONMIGRATED, /* balloon page sucessfully migrated */ + COMPACTBALLOONRELEASED, /* old-page released after migration */ + COMPACTBALLOONRETURNED, /* putback to pagelist, not-migrated */ +#endif /* CONFIG_BALLOON_COMPACTION */ +#endif /* CONFIG_COMPACTION */ #ifdef CONFIG_HUGETLB_PAGE HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL, #endif diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c index 90935aa..32927eb 100644 --- a/mm/balloon_compaction.c +++ b/mm/balloon_compaction.c @@ -215,6 +215,7 @@ bool balloon_page_isolate(struct page *page) if (__is_movable_balloon_page(page) page_count(page) == 2) { __isolate_balloon_page(page); + balloon_event_count(COMPACTBALLOONISOLATED); unlock_page(page); return true; } @@ -237,6 +238,7 @@ void balloon_page_putback(struct page *page) if (__is_movable_balloon_page(page)) { __putback_balloon_page(page); put_page(page); + balloon_event_count(COMPACTBALLOONRETURNED); } else { __WARN(); dump_page(page); diff --git a/mm/migrate.c b/mm/migrate.c index adb3d44..ee3037d 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -896,6 +896,7 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private, page_is_file_cache(page)); put_page(page); __free_page(page); + balloon_event_count(COMPACTBALLOONRELEASED); return 0; } out: diff --git a/mm/vmstat.c b/mm/vmstat.c index c737057..1363edc 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -781,7 +781,15 @@ const char * const vmstat_text[] = { compact_stall, compact_fail, compact_success, -#endif + +#ifdef CONFIG_BALLOON_COMPACTION + compact_balloon_isolated, + compact_balloon_migrated, + compact_balloon_released, + compact_balloon_returned, +#endif /* CONFIG_BALLOON_COMPACTION */ + +#endif /* CONFIG_COMPACTION */ #ifdef CONFIG_HUGETLB_PAGE htlb_buddy_alloc_success, -- 1.7.11.7 -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
On Fri, Nov 09, 2012 at 12:20:33PM +, Mel Gorman wrote: > On Wed, Nov 07, 2012 at 01:05:54AM -0200, Rafael Aquini wrote: > > This patch introduces a new set of vm event counters to keep track of > > ballooned pages compaction activity. > > > > Signed-off-by: Rafael Aquini > > Other than confirming the thing actually works can any meaningful > conclusions be drawn from this counters? > > I know I have been inconsistent on this myself in the past but recently > I've been taking the attitude that the counters can be used to fit into > some other metric. I'm looking to change the compaction counters to be > able to build a basic cost model for example. The same idea could be > used for balloons of course but it's a less critical path than > compaction for THP for example. > > Assuming it builds and all the defines are correct when the feature is > not configured (I didn't check) then there is nothing wrong with the > patch. However, if it was dropped would it make life very hard or would > you notice? > Originally, I proposed this patch as droppable (and it's still droppable) because its major purpose was solely to show the thing working consistently OTOH, it might make the life easier to spot breakages if it remains with the merged bits, and per a reviewer request I removed its 'DROP BEFORE MERGE' disclaimer. https://lkml.org/lkml/2012/8/8/616 -- Rafael -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
On Wed, Nov 07, 2012 at 01:05:54AM -0200, Rafael Aquini wrote: > This patch introduces a new set of vm event counters to keep track of > ballooned pages compaction activity. > > Signed-off-by: Rafael Aquini Other than confirming the thing actually works can any meaningful conclusions be drawn from this counters? I know I have been inconsistent on this myself in the past but recently I've been taking the attitude that the counters can be used to fit into some other metric. I'm looking to change the compaction counters to be able to build a basic cost model for example. The same idea could be used for balloons of course but it's a less critical path than compaction for THP for example. Assuming it builds and all the defines are correct when the feature is not configured (I didn't check) then there is nothing wrong with the patch. However, if it was dropped would it make life very hard or would you notice? -- Mel Gorman SUSE Labs -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
On Wed, Nov 07, 2012 at 01:05:54AM -0200, Rafael Aquini wrote: This patch introduces a new set of vm event counters to keep track of ballooned pages compaction activity. Signed-off-by: Rafael Aquini aqu...@redhat.com Other than confirming the thing actually works can any meaningful conclusions be drawn from this counters? I know I have been inconsistent on this myself in the past but recently I've been taking the attitude that the counters can be used to fit into some other metric. I'm looking to change the compaction counters to be able to build a basic cost model for example. The same idea could be used for balloons of course but it's a less critical path than compaction for THP for example. Assuming it builds and all the defines are correct when the feature is not configured (I didn't check) then there is nothing wrong with the patch. However, if it was dropped would it make life very hard or would you notice? -- Mel Gorman SUSE Labs -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
On Fri, Nov 09, 2012 at 12:20:33PM +, Mel Gorman wrote: On Wed, Nov 07, 2012 at 01:05:54AM -0200, Rafael Aquini wrote: This patch introduces a new set of vm event counters to keep track of ballooned pages compaction activity. Signed-off-by: Rafael Aquini aqu...@redhat.com Other than confirming the thing actually works can any meaningful conclusions be drawn from this counters? I know I have been inconsistent on this myself in the past but recently I've been taking the attitude that the counters can be used to fit into some other metric. I'm looking to change the compaction counters to be able to build a basic cost model for example. The same idea could be used for balloons of course but it's a less critical path than compaction for THP for example. Assuming it builds and all the defines are correct when the feature is not configured (I didn't check) then there is nothing wrong with the patch. However, if it was dropped would it make life very hard or would you notice? Originally, I proposed this patch as droppable (and it's still droppable) because its major purpose was solely to show the thing working consistently OTOH, it might make the life easier to spot breakages if it remains with the merged bits, and per a reviewer request I removed its 'DROP BEFORE MERGE' disclaimer. https://lkml.org/lkml/2012/8/8/616 -- Rafael -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
This patch introduces a new set of vm event counters to keep track of ballooned pages compaction activity. Signed-off-by: Rafael Aquini --- drivers/virtio/virtio_balloon.c | 1 + include/linux/vm_event_item.h | 8 +++- mm/balloon_compaction.c | 2 ++ mm/migrate.c| 1 + mm/vmstat.c | 10 +- 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 69eede7..3756fc1 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -411,6 +411,7 @@ int virtballoon_migratepage(struct address_space *mapping, tell_host(vb, vb->deflate_vq); mutex_unlock(>balloon_lock); + balloon_event_count(COMPACTBALLOONMIGRATED); return MIGRATEPAGE_BALLOON_SUCCESS; } diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index 3d31145..cbd72fc 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -41,7 +41,13 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, #ifdef CONFIG_COMPACTION COMPACTBLOCKS, COMPACTPAGES, COMPACTPAGEFAILED, COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS, -#endif +#ifdef CONFIG_BALLOON_COMPACTION + COMPACTBALLOONISOLATED, /* isolated from balloon pagelist */ + COMPACTBALLOONMIGRATED, /* balloon page sucessfully migrated */ + COMPACTBALLOONRELEASED, /* old-page released after migration */ + COMPACTBALLOONRETURNED, /* putback to pagelist, not-migrated */ +#endif /* CONFIG_BALLOON_COMPACTION */ +#endif /* CONFIG_COMPACTION */ #ifdef CONFIG_HUGETLB_PAGE HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL, #endif diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c index 90935aa..32927eb 100644 --- a/mm/balloon_compaction.c +++ b/mm/balloon_compaction.c @@ -215,6 +215,7 @@ bool balloon_page_isolate(struct page *page) if (__is_movable_balloon_page(page) && page_count(page) == 2) { __isolate_balloon_page(page); + balloon_event_count(COMPACTBALLOONISOLATED); unlock_page(page); return true; } @@ -237,6 +238,7 @@ void balloon_page_putback(struct page *page) if (__is_movable_balloon_page(page)) { __putback_balloon_page(page); put_page(page); + balloon_event_count(COMPACTBALLOONRETURNED); } else { __WARN(); dump_page(page); diff --git a/mm/migrate.c b/mm/migrate.c index adb3d44..ee3037d 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -896,6 +896,7 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private, page_is_file_cache(page)); put_page(page); __free_page(page); + balloon_event_count(COMPACTBALLOONRELEASED); return 0; } out: diff --git a/mm/vmstat.c b/mm/vmstat.c index c737057..1363edc 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -781,7 +781,15 @@ const char * const vmstat_text[] = { "compact_stall", "compact_fail", "compact_success", -#endif + +#ifdef CONFIG_BALLOON_COMPACTION + "compact_balloon_isolated", + "compact_balloon_migrated", + "compact_balloon_released", + "compact_balloon_returned", +#endif /* CONFIG_BALLOON_COMPACTION */ + +#endif /* CONFIG_COMPACTION */ #ifdef CONFIG_HUGETLB_PAGE "htlb_buddy_alloc_success", -- 1.7.11.7 -- 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 v11 7/7] mm: add vm event counters for balloon pages compaction
This patch introduces a new set of vm event counters to keep track of ballooned pages compaction activity. Signed-off-by: Rafael Aquini aqu...@redhat.com --- drivers/virtio/virtio_balloon.c | 1 + include/linux/vm_event_item.h | 8 +++- mm/balloon_compaction.c | 2 ++ mm/migrate.c| 1 + mm/vmstat.c | 10 +- 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 69eede7..3756fc1 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -411,6 +411,7 @@ int virtballoon_migratepage(struct address_space *mapping, tell_host(vb, vb-deflate_vq); mutex_unlock(vb-balloon_lock); + balloon_event_count(COMPACTBALLOONMIGRATED); return MIGRATEPAGE_BALLOON_SUCCESS; } diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index 3d31145..cbd72fc 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -41,7 +41,13 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, #ifdef CONFIG_COMPACTION COMPACTBLOCKS, COMPACTPAGES, COMPACTPAGEFAILED, COMPACTSTALL, COMPACTFAIL, COMPACTSUCCESS, -#endif +#ifdef CONFIG_BALLOON_COMPACTION + COMPACTBALLOONISOLATED, /* isolated from balloon pagelist */ + COMPACTBALLOONMIGRATED, /* balloon page sucessfully migrated */ + COMPACTBALLOONRELEASED, /* old-page released after migration */ + COMPACTBALLOONRETURNED, /* putback to pagelist, not-migrated */ +#endif /* CONFIG_BALLOON_COMPACTION */ +#endif /* CONFIG_COMPACTION */ #ifdef CONFIG_HUGETLB_PAGE HTLB_BUDDY_PGALLOC, HTLB_BUDDY_PGALLOC_FAIL, #endif diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c index 90935aa..32927eb 100644 --- a/mm/balloon_compaction.c +++ b/mm/balloon_compaction.c @@ -215,6 +215,7 @@ bool balloon_page_isolate(struct page *page) if (__is_movable_balloon_page(page) page_count(page) == 2) { __isolate_balloon_page(page); + balloon_event_count(COMPACTBALLOONISOLATED); unlock_page(page); return true; } @@ -237,6 +238,7 @@ void balloon_page_putback(struct page *page) if (__is_movable_balloon_page(page)) { __putback_balloon_page(page); put_page(page); + balloon_event_count(COMPACTBALLOONRETURNED); } else { __WARN(); dump_page(page); diff --git a/mm/migrate.c b/mm/migrate.c index adb3d44..ee3037d 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -896,6 +896,7 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private, page_is_file_cache(page)); put_page(page); __free_page(page); + balloon_event_count(COMPACTBALLOONRELEASED); return 0; } out: diff --git a/mm/vmstat.c b/mm/vmstat.c index c737057..1363edc 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -781,7 +781,15 @@ const char * const vmstat_text[] = { compact_stall, compact_fail, compact_success, -#endif + +#ifdef CONFIG_BALLOON_COMPACTION + compact_balloon_isolated, + compact_balloon_migrated, + compact_balloon_released, + compact_balloon_returned, +#endif /* CONFIG_BALLOON_COMPACTION */ + +#endif /* CONFIG_COMPACTION */ #ifdef CONFIG_HUGETLB_PAGE htlb_buddy_alloc_success, -- 1.7.11.7 -- 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/