Displaying 20 results from an estimated 81 matches for "migratepage_success".
2016 Mar 30
0
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
....c
index 6c822a7b27e0..53529c805752 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -913,6 +913,14 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
put_anon_vma(anon_vma);
unlock_page(page);
out:
+ /* If migration is successful, move newpage to right list */
+ if (rc == MIGRATEPAGE_SUCCESS) {
+ if (unlikely(__is_movable_balloon_page(newpage)))
+ put_page(newpage);
+ else
+ putback_lru_page(newpage);
+ }
+
return rc;
}
@@ -946,6 +954,12 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
if (page_count(page) == 1) {
/* page was freed from under us. So...
2012 Nov 11
8
[PATCH v12 0/7] make balloon pages movable by compaction
Memory fragmentation introduced by ballooning might reduce significantly
the number of 2MB contiguous memory blocks that can be used within a guest,
thus imposing performance penalties associated with the reduced number of
transparent huge pages that could be used by the guest workload.
This patch-set follows the main idea discussed at 2012 LSFMMS session:
"Ballooning for transparent huge
2012 Nov 11
8
[PATCH v12 0/7] make balloon pages movable by compaction
Memory fragmentation introduced by ballooning might reduce significantly
the number of 2MB contiguous memory blocks that can be used within a guest,
thus imposing performance penalties associated with the reduced number of
transparent huge pages that could be used by the guest workload.
This patch-set follows the main idea discussed at 2012 LSFMMS session:
"Ballooning for transparent huge
2012 Nov 07
8
[PATCH v11 0/7] make balloon pages movable by compaction
Memory fragmentation introduced by ballooning might reduce significantly
the number of 2MB contiguous memory blocks that can be used within a guest,
thus imposing performance penalties associated with the reduced number of
transparent huge pages that could be used by the guest workload.
This patch-set follows the main idea discussed at 2012 LSFMMS session:
"Ballooning for transparent huge
2012 Nov 07
8
[PATCH v11 0/7] make balloon pages movable by compaction
Memory fragmentation introduced by ballooning might reduce significantly
the number of 2MB contiguous memory blocks that can be used within a guest,
thus imposing performance penalties associated with the reduced number of
transparent huge pages that could be used by the guest workload.
This patch-set follows the main idea discussed at 2012 LSFMMS session:
"Ballooning for transparent huge
2016 Apr 04
1
mm/hwpoison: fix wrong num_poisoned_pages account
...gt; >+
> > > >+ /*
> > > >+ * If migration is successful, drop the reference grabbed during
> > > >+ * isolation. Otherwise, restore the page to LRU list unless we
> > > >+ * want to retry.
> > > >+ */
> > > >+ if (rc == MIGRATEPAGE_SUCCESS) {
> > > >+ put_page(page);
> > > > if (reason == MR_MEMORY_FAILURE) {
> > > >- put_page(page);
> > > > if (!test_set_page_hwpoison(page))
> > > > num_poisoned_pages_inc();
> > > >- } else
> > > >+...
2016 Apr 04
1
mm/hwpoison: fix wrong num_poisoned_pages account
...gt; >+
> > > >+ /*
> > > >+ * If migration is successful, drop the reference grabbed during
> > > >+ * isolation. Otherwise, restore the page to LRU list unless we
> > > >+ * want to retry.
> > > >+ */
> > > >+ if (rc == MIGRATEPAGE_SUCCESS) {
> > > >+ put_page(page);
> > > > if (reason == MR_MEMORY_FAILURE) {
> > > >- put_page(page);
> > > > if (!test_set_page_hwpoison(page))
> > > > num_poisoned_pages_inc();
> > > >- } else
> > > >+...
2016 Mar 11
0
[PATCH v1 01/19] mm: use put_page to free page instead of putback_lru_page
....c
index 3ad0fea5c438..bf31ea9ffaf8 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -907,6 +907,14 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
put_anon_vma(anon_vma);
unlock_page(page);
out:
+ /* If migration is scucessful, move newpage to right list */
+ if (rc == MIGRATEPAGE_SUCCESS) {
+ if (unlikely(__is_movable_balloon_page(newpage)))
+ put_page(newpage);
+ else
+ putback_lru_page(newpage);
+ }
+
return rc;
}
@@ -940,6 +948,12 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
if (page_count(page) == 1) {
/* page was freed from under us. So...
2016 Apr 01
2
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...e));
> - /* Soft-offlined page shouldn't go through lru cache list */
> + }
> +
> + /*
> + * If migration is successful, drop the reference grabbed during
> + * isolation. Otherwise, restore the page to LRU list unless we
> + * want to retry.
> + */
> + if (rc == MIGRATEPAGE_SUCCESS) {
> + put_page(page);
> if (reason == MR_MEMORY_FAILURE) {
> - put_page(page);
> if (!test_set_page_hwpoison(page))
> num_poisoned_pages_inc();
> - } else
> + }
Hmm, I didn't notice it previously, or it's due to rebasing, but it seems that
you res...
2016 Apr 01
2
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...e));
> - /* Soft-offlined page shouldn't go through lru cache list */
> + }
> +
> + /*
> + * If migration is successful, drop the reference grabbed during
> + * isolation. Otherwise, restore the page to LRU list unless we
> + * want to retry.
> + */
> + if (rc == MIGRATEPAGE_SUCCESS) {
> + put_page(page);
> if (reason == MR_MEMORY_FAILURE) {
> - put_page(page);
> if (!test_set_page_hwpoison(page))
> num_poisoned_pages_inc();
> - } else
> + }
Hmm, I didn't notice it previously, or it's due to rebasing, but it seems that
you res...
2016 Apr 04
2
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...st */
> > >+ }
> > >+
> > >+ /*
> > >+ * If migration is successful, drop the reference grabbed during
> > >+ * isolation. Otherwise, restore the page to LRU list unless we
> > >+ * want to retry.
> > >+ */
> > >+ if (rc == MIGRATEPAGE_SUCCESS) {
> > >+ put_page(page);
> > > if (reason == MR_MEMORY_FAILURE) {
> > >- put_page(page);
> > > if (!test_set_page_hwpoison(page))
> > > num_poisoned_pages_inc();
> > >- } else
> > >+ }
> >
> > Hmm, I didn&...
2016 Apr 04
2
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...st */
> > >+ }
> > >+
> > >+ /*
> > >+ * If migration is successful, drop the reference grabbed during
> > >+ * isolation. Otherwise, restore the page to LRU list unless we
> > >+ * want to retry.
> > >+ */
> > >+ if (rc == MIGRATEPAGE_SUCCESS) {
> > >+ put_page(page);
> > > if (reason == MR_MEMORY_FAILURE) {
> > >- put_page(page);
> > > if (!test_set_page_hwpoison(page))
> > > num_poisoned_pages_inc();
> > >- } else
> > >+ }
> >
> > Hmm, I didn&...
2016 May 09
0
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...age of driver with isolated page.
The function of migratepage is to move content of the old page to new page
and set up fields of struct page newpage. Keep in mind that you should
clear PG_movable of oldpage via __ClearPageMovable under page_lock if you
migrated the oldpage successfully and returns MIGRATEPAGE_SUCCESS.
If driver cannot migrate the page at the moment, driver can return -EAGAIN.
On -EAGAIN, VM will retry page migration in a short time because VM interprets
-EAGAIN as "temporal migration failure". On returning any error except -EAGAIN,
VM will give up the page migration without retrying i...
2016 May 27
2
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...iver already released it, we wouldn't detect it? And
this function is all under same page lock, so if __PageMovable was true above,
so will be PageMovable below?
> + if (unlikely(!is_lru)) {
> + VM_BUG_ON_PAGE(!PageIsolated(page), page);
> + if (!PageMovable(page)) {
> + rc = MIGRATEPAGE_SUCCESS;
> + __ClearPageIsolated(page);
> + goto out;
> + }
> + }
> +
> + if (likely(is_lru)) {
> + if (!mapping)
> + rc = migrate_page(mapping, newpage, page, mode);
> + else if (mapping->a_ops->migratepage)
> + /*
> + * Most pages have a mapping and mo...
2016 May 27
2
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...iver already released it, we wouldn't detect it? And
this function is all under same page lock, so if __PageMovable was true above,
so will be PageMovable below?
> + if (unlikely(!is_lru)) {
> + VM_BUG_ON_PAGE(!PageIsolated(page), page);
> + if (!PageMovable(page)) {
> + rc = MIGRATEPAGE_SUCCESS;
> + __ClearPageIsolated(page);
> + goto out;
> + }
> + }
> +
> + if (likely(is_lru)) {
> + if (!mapping)
> + rc = migrate_page(mapping, newpage, page, mode);
> + else if (mapping->a_ops->migratepage)
> + /*
> + * Most pages have a mapping and mo...
2016 Apr 05
1
[PATCH v3 04/16] mm/balloon: use general movable page feature into balloon
...we can
keep PAGE_BALLOON_MAPCOUNT_VALUE to simply distinguish balloon pages for
stable_page_flags().
> @@ -1033,7 +1019,7 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
> out:
> /* If migration is successful, move newpage to right list */
> if (rc == MIGRATEPAGE_SUCCESS) {
> - if (unlikely(__is_movable_balloon_page(newpage)))
> + if (unlikely(PageMovable(newpage)))
> put_page(newpage);
> else
> putback_lru_page(newpage);
Hmm shouldn't the condition have been changed to
if (unlikely(__is_movable_balloon_page(newpage)) || PageMov...
2016 Apr 05
1
[PATCH v3 04/16] mm/balloon: use general movable page feature into balloon
...we can
keep PAGE_BALLOON_MAPCOUNT_VALUE to simply distinguish balloon pages for
stable_page_flags().
> @@ -1033,7 +1019,7 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
> out:
> /* If migration is successful, move newpage to right list */
> if (rc == MIGRATEPAGE_SUCCESS) {
> - if (unlikely(__is_movable_balloon_page(newpage)))
> + if (unlikely(PageMovable(newpage)))
> put_page(newpage);
> else
> putback_lru_page(newpage);
Hmm shouldn't the condition have been changed to
if (unlikely(__is_movable_balloon_page(newpage)) || PageMov...
2016 May 09
5
[PATCH v5 00/13] Support non-lru page migration
Recently, I got many reports about perfermance degradation in embedded
system(Android mobile phone, webOS TV and so on) and easy fork fail.
The problem was fragmentation caused by zram and GPU driver mainly.
With memory pressure, their pages were spread out all of pageblock and
it cannot be migrated with current compaction algorithm which supports
only LRU pages. In the end, compaction cannot
2016 May 09
5
[PATCH v5 00/13] Support non-lru page migration
Recently, I got many reports about perfermance degradation in embedded
system(Android mobile phone, webOS TV and so on) and easy fork fail.
The problem was fragmentation caused by zram and GPU driver mainly.
With memory pressure, their pages were spread out all of pageblock and
it cannot be migrated with current compaction algorithm which supports
only LRU pages. In the end, compaction cannot
2016 Apr 27
4
[PATCH v4 00/13] Support non-lru page migration
Recently, I got many reports about perfermance degradation in embedded
system(Android mobile phone, webOS TV and so on) and easy fork fail.
The problem was fragmentation caused by zram and GPU driver mainly.
With memory pressure, their pages were spread out all of pageblock and
it cannot be migrated with current compaction algorithm which supports
only LRU pages. In the end, compaction cannot