Displaying 20 results from an estimated 39 matches for "out_unlock_both".
2016 Jun 13
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...page_was_mapped = 0;
> struct anon_vma *anon_vma = NULL;
> + bool is_lru = !__PageMovable(page);
>
> if (!trylock_page(page)) {
> if (!force || mode == MIGRATE_ASYNC)
> @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
> goto out_unlock_both;
> }
>
> + if (unlikely(!is_lru)) {
> + rc = move_to_new_page(newpage, page, mode);
> + goto out_unlock_both;
> + }
> +
Hello Minchan,
I might be missing something here but does this implementation support the
scenario where these non LRU pages owned by the driver mappe...
2016 Jun 13
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...page_was_mapped = 0;
> struct anon_vma *anon_vma = NULL;
> + bool is_lru = !__PageMovable(page);
>
> if (!trylock_page(page)) {
> if (!force || mode == MIGRATE_ASYNC)
> @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
> goto out_unlock_both;
> }
>
> + if (unlikely(!is_lru)) {
> + rc = move_to_new_page(newpage, page, mode);
> + goto out_unlock_both;
> + }
> +
Hello Minchan,
I might be missing something here but does this implementation support the
scenario where these non LRU pages owned by the driver mappe...
2016 Jun 15
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...Movable(page);
>>> > >
>>> > > if (!trylock_page(page)) {
>>> > > if (!force || mode == MIGRATE_ASYNC)
>>> > > @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
>>> > > goto out_unlock_both;
>>> > > }
>>> > >
>>> > > + if (unlikely(!is_lru)) {
>>> > > + rc = move_to_new_page(newpage, page, mode);
>>> > > + goto out_unlock_both;
>>> > > + }
>>> > > +
>> >
>> &g...
2016 Jun 15
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...Movable(page);
>>> > >
>>> > > if (!trylock_page(page)) {
>>> > > if (!force || mode == MIGRATE_ASYNC)
>>> > > @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
>>> > > goto out_unlock_both;
>>> > > }
>>> > >
>>> > > + if (unlikely(!is_lru)) {
>>> > > + rc = move_to_new_page(newpage, page, mode);
>>> > > + goto out_unlock_both;
>>> > > + }
>>> > > +
>> >
>> &g...
2016 Jun 16
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...;>>>
>>>>>>> if (!trylock_page(page)) {
>>>>>>> if (!force || mode == MIGRATE_ASYNC)
>>>>>>> @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
>>>>>>> goto out_unlock_both;
>>>>>>> }
>>>>>>>
>>>>>>> + if (unlikely(!is_lru)) {
>>>>>>> + rc = move_to_new_page(newpage, page, mode);
>>>>>>> + goto out_unlock_both;
>>>>>>> + }
>>>>...
2016 Jun 16
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...;>>>
>>>>>>> if (!trylock_page(page)) {
>>>>>>> if (!force || mode == MIGRATE_ASYNC)
>>>>>>> @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
>>>>>>> goto out_unlock_both;
>>>>>>> }
>>>>>>>
>>>>>>> + if (unlikely(!is_lru)) {
>>>>>>> + rc = move_to_new_page(newpage, page, mode);
>>>>>>> + goto out_unlock_both;
>>>>>>> + }
>>>>...
2016 Jun 27
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...>>>>> if (!trylock_page(page)) {
>>>>>>>>> if (!force || mode == MIGRATE_ASYNC)
>>>>>>>>> @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
>>>>>>>>> goto out_unlock_both;
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> + if (unlikely(!is_lru)) {
>>>>>>>>> + rc = move_to_new_page(newpage, page, mode);
>>>>>>>>> + goto out_unlock_both;
>>...
2016 Jun 27
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...>>>>> if (!trylock_page(page)) {
>>>>>>>>> if (!force || mode == MIGRATE_ASYNC)
>>>>>>>>> @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
>>>>>>>>> goto out_unlock_both;
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> + if (unlikely(!is_lru)) {
>>>>>>>>> + rc = move_to_new_page(newpage, page, mode);
>>>>>>>>> + goto out_unlock_both;
>>...
2016 Jun 15
0
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...ruct anon_vma *anon_vma = NULL;
> > + bool is_lru = !__PageMovable(page);
> >
> > if (!trylock_page(page)) {
> > if (!force || mode == MIGRATE_ASYNC)
> > @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
> > goto out_unlock_both;
> > }
> >
> > + if (unlikely(!is_lru)) {
> > + rc = move_to_new_page(newpage, page, mode);
> > + goto out_unlock_both;
> > + }
> > +
>
> Hello Minchan,
>
> I might be missing something here but does this implementation support the
>...
2016 Jun 16
0
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...>>>>>>> if (!trylock_page(page)) {
> >>>>>>> if (!force || mode == MIGRATE_ASYNC)
> >>>>>>> @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
> >>>>>>> goto out_unlock_both;
> >>>>>>> }
> >>>>>>>
> >>>>>>> + if (unlikely(!is_lru)) {
> >>>>>>> + rc = move_to_new_page(newpage, page, mode);
> >>>>>>> + goto out_unlock_both;
> >>>>&g...
2016 Jun 16
0
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...gt;> > >
> >>> > > if (!trylock_page(page)) {
> >>> > > if (!force || mode == MIGRATE_ASYNC)
> >>> > > @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
> >>> > > goto out_unlock_both;
> >>> > > }
> >>> > >
> >>> > > + if (unlikely(!is_lru)) {
> >>> > > + rc = move_to_new_page(newpage, page, mode);
> >>> > > + goto out_unlock_both;
> >>> > > + }
> >>> >...
2016 Jun 28
0
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...;> if (!trylock_page(page)) {
> >>>>>>>>> if (!force || mode == MIGRATE_ASYNC)
> >>>>>>>>> @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
> >>>>>>>>> goto out_unlock_both;
> >>>>>>>>> }
> >>>>>>>>>
> >>>>>>>>> + if (unlikely(!is_lru)) {
> >>>>>>>>> + rc = move_to_new_page(newpage, page, mode);
> >>>>>>>>> + goto...
2016 Jun 30
1
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...f (!trylock_page(page)) {
>>>>>>>>>>> if (!force || mode == MIGRATE_ASYNC)
>>>>>>>>>>> @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
>>>>>>>>>>> goto out_unlock_both;
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> + if (unlikely(!is_lru)) {
>>>>>>>>>>> + rc = move_to_new_page(newpage, page, mode);
>>>>>>>>>&g...
2016 Jun 30
1
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...f (!trylock_page(page)) {
>>>>>>>>>>> if (!force || mode == MIGRATE_ASYNC)
>>>>>>>>>>> @@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
>>>>>>>>>>> goto out_unlock_both;
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> + if (unlikely(!is_lru)) {
>>>>>>>>>>> + rc = move_to_new_page(newpage, page, mode);
>>>>>>>>>&g...
2016 May 09
0
[PATCH v5 03/12] mm: balloon: use general non-lru movable page feature
...ysical to virtual reverse mapping procedures.
- * Skip any attempt to unmap PTEs or to remap swap cache,
- * in order to avoid burning cycles at rmap level, and perform
- * the page migration right away (proteced by page lock).
- */
- rc = balloon_page_migrate(newpage, page, mode);
- goto out_unlock_both;
- }
-
if (unlikely(!is_lru)) {
rc = move_to_new_page(newpage, page, mode);
goto out_unlock_both;
@@ -1082,8 +1068,7 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
* list in here.
*/
if (rc == MIGRATEPAGE_SUCCESS) {
- if (unlikely(__is_movable_balloon_page(...
2016 May 20
0
[PATCH v6 03/12] mm: balloon: use general non-lru movable page feature
...ysical to virtual reverse mapping procedures.
- * Skip any attempt to unmap PTEs or to remap swap cache,
- * in order to avoid burning cycles at rmap level, and perform
- * the page migration right away (proteced by page lock).
- */
- rc = balloon_page_migrate(newpage, page, mode);
- goto out_unlock_both;
- }
-
if (unlikely(!is_lru)) {
rc = move_to_new_page(newpage, page, mode);
goto out_unlock_both;
@@ -1051,8 +1037,7 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
* list in here.
*/
if (rc == MIGRATEPAGE_SUCCESS) {
- if (unlikely(__is_movable_balloon_page(...
2016 May 30
5
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...newpage,
int rc = -EAGAIN;
int page_was_mapped = 0;
struct anon_vma *anon_vma = NULL;
+ bool is_lru = !__PageMovable(page);
if (!trylock_page(page)) {
if (!force || mode == MIGRATE_ASYNC)
@@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
goto out_unlock_both;
}
+ if (unlikely(!is_lru)) {
+ rc = move_to_new_page(newpage, page, mode);
+ goto out_unlock_both;
+ }
+
/*
* Corner case handling:
* 1. When a new swap-cache page is read into, it is added to the LRU
@@ -920,7 +1056,8 @@ static int __unmap_and_move(struct page *page, struct page *ne...
2016 May 30
5
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...newpage,
int rc = -EAGAIN;
int page_was_mapped = 0;
struct anon_vma *anon_vma = NULL;
+ bool is_lru = !__PageMovable(page);
if (!trylock_page(page)) {
if (!force || mode == MIGRATE_ASYNC)
@@ -871,6 +1002,11 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
goto out_unlock_both;
}
+ if (unlikely(!is_lru)) {
+ rc = move_to_new_page(newpage, page, mode);
+ goto out_unlock_both;
+ }
+
/*
* Corner case handling:
* 1. When a new swap-cache page is read into, it is added to the LRU
@@ -920,7 +1056,8 @@ static int __unmap_and_move(struct page *page, struct page *ne...
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