search for: pg_reclaim

Displaying 20 results from an estimated 41 matches for "pg_reclaim".

2016 Apr 04
1
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...tile from "mm/compaction" to > "mm/migration". OK! >> Also I'm a bit uncomfortable how isolate_movable_page() blindly expects that >> page->mapping->a_ops->isolate_page exists for PageMovable() pages. >> What if it's a false positive on a PG_reclaim page? Can we rely on >> PG_reclaim always (and without races) implying PageLRU() so that we >> don't even attempt isolate_movable_page()? > > For now, we shouldn't have such a false positive because PageMovable > checks page->_mapcount == PAGE_MOVABLE_MAPCOUNT_VALUE...
2016 Apr 04
1
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...tile from "mm/compaction" to > "mm/migration". OK! >> Also I'm a bit uncomfortable how isolate_movable_page() blindly expects that >> page->mapping->a_ops->isolate_page exists for PageMovable() pages. >> What if it's a false positive on a PG_reclaim page? Can we rely on >> PG_reclaim always (and without races) implying PageLRU() so that we >> don't even attempt isolate_movable_page()? > > For now, we shouldn't have such a false positive because PageMovable > checks page->_mapcount == PAGE_MOVABLE_MAPCOUNT_VALUE...
2016 Jun 30
1
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...o test, I implemented set_page_dirty in my dummy > driver. Okay and the above test_set_page_dirty() example is sufficient ? > > With only that, it doesn't work because I need to modify migrate.c to > work non-lru-mapped-page and changing PG_isolated flag which is > override of PG_reclaim which is cleared in set_page_dirty. Got it, so what changes you did ? Implemented PG_isolated differently not by overriding PG_reclaim or something else ? Yes set_page_dirty indeed clears the PG_reclaim flag. > > With that, it seems to work. But I'm not saying it's right model now...
2016 Jun 30
1
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...o test, I implemented set_page_dirty in my dummy > driver. Okay and the above test_set_page_dirty() example is sufficient ? > > With only that, it doesn't work because I need to modify migrate.c to > work non-lru-mapped-page and changing PG_isolated flag which is > override of PG_reclaim which is cleared in set_page_dirty. Got it, so what changes you did ? Implemented PG_isolated differently not by overriding PG_reclaim or something else ? Yes set_page_dirty indeed clears the PG_reclaim flag. > > With that, it seems to work. But I'm not saying it's right model now...
2016 Apr 01
2
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...100644 > --- a/include/linux/page-flags.h > +++ b/include/linux/page-flags.h > @@ -129,6 +129,10 @@ enum pageflags { > > /* Compound pages. Stored in first tail page's flags */ > PG_double_map = PG_private_2, > + > + /* non-lru movable pages */ > + PG_movable = PG_reclaim, > + PG_isolated = PG_owner_priv_1, Documentation should probably state that these fields alias and subsystem supporting the movable pages shouldn't use them elsewhere. Also I'm a bit uncomfortable how isolate_movable_page() blindly expects that page->mapping->a_ops->isolate_...
2016 Apr 01
2
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...100644 > --- a/include/linux/page-flags.h > +++ b/include/linux/page-flags.h > @@ -129,6 +129,10 @@ enum pageflags { > > /* Compound pages. Stored in first tail page's flags */ > PG_double_map = PG_private_2, > + > + /* non-lru movable pages */ > + PG_movable = PG_reclaim, > + PG_isolated = PG_owner_priv_1, Documentation should probably state that these fields alias and subsystem supporting the movable pages shouldn't use them elsewhere. Also I'm a bit uncomfortable how isolate_movable_page() blindly expects that page->mapping->a_ops->isolate_...
2016 Apr 04
0
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...page-flags.h > >+++ b/include/linux/page-flags.h > >@@ -129,6 +129,10 @@ enum pageflags { > > > > /* Compound pages. Stored in first tail page's flags */ > > PG_double_map = PG_private_2, > >+ > >+ /* non-lru movable pages */ > >+ PG_movable = PG_reclaim, > >+ PG_isolated = PG_owner_priv_1, > > Documentation should probably state that these fields alias and > subsystem supporting the movable pages shouldn't use them elsewhere. Yeb. > > Also I'm a bit uncomfortable how isolate_movable_page() blindly expects that >...
2016 Jun 27
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
On 06/16/2016 11:07 AM, Minchan Kim wrote: > On Thu, Jun 16, 2016 at 09:12:07AM +0530, Anshuman Khandual wrote: >> On 06/16/2016 05:56 AM, Minchan Kim wrote: >>> On Wed, Jun 15, 2016 at 12:15:04PM +0530, Anshuman Khandual wrote: >>>> On 06/15/2016 08:02 AM, Minchan Kim wrote: >>>>> Hi, >>>>> >>>>> On Mon, Jun 13, 2016 at
2016 Jun 27
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
On 06/16/2016 11:07 AM, Minchan Kim wrote: > On Thu, Jun 16, 2016 at 09:12:07AM +0530, Anshuman Khandual wrote: >> On 06/16/2016 05:56 AM, Minchan Kim wrote: >>> On Wed, Jun 15, 2016 at 12:15:04PM +0530, Anshuman Khandual wrote: >>>> On 06/15/2016 08:02 AM, Minchan Kim wrote: >>>>> Hi, >>>>> >>>>> On Mon, Jun 13, 2016 at
2016 May 09
0
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...isolated non-lru movable page, it can skip it. Driver doesn't need to manipulate the flag because VM will set/clear it automatically. Keep in mind that if driver sees PG_isolated page, it means the page have been isolated by VM so it shouldn't touch page.lru field. PG_isolated is alias with PG_reclaim flag so driver shouldn't use the flag for own purpose. Cc: Rik van Riel <riel at redhat.com> Cc: Vlastimil Babka <vbabka at suse.cz> Cc: Joonsoo Kim <iamjoonsoo.kim at lge.com> Cc: Mel Gorman <mgorman at suse.de> Cc: Hugh Dickins <hughd at google.com> Cc: Rafael A...
2016 May 20
0
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...isolated non-lru movable page, it can skip it. Driver doesn't need to manipulate the flag because VM will set/clear it automatically. Keep in mind that if driver sees PG_isolated page, it means the page have been isolated by VM so it shouldn't touch page.lru field. PG_isolated is alias with PG_reclaim flag so driver shouldn't use the flag for own purpose. Cc: Rik van Riel <riel at redhat.com> Cc: Vlastimil Babka <vbabka at suse.cz> Cc: Joonsoo Kim <iamjoonsoo.kim at lge.com> Cc: Mel Gorman <mgorman at suse.de> Cc: Hugh Dickins <hughd at google.com> Cc: Rafael A...
2016 May 31
0
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...isolated non-lru movable page, it can skip it. Driver doesn't need to manipulate the flag because VM will set/clear it automatically. Keep in mind that if driver sees PG_isolated page, it means the page have been isolated by VM so it shouldn't touch page.lru field. PG_isolated is alias with PG_reclaim flag so driver shouldn't use the flag for own purpose. Cc: Rik van Riel <riel at redhat.com> Cc: Vlastimil Babka <vbabka at suse.cz> Cc: Joonsoo Kim <iamjoonsoo.kim at lge.com> Cc: Mel Gorman <mgorman at suse.de> Cc: Hugh Dickins <hughd at google.com> Cc: Rafael A...
2016 Jun 28
0
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...e doesn't have it. That's why we encounter BUG_ON in radix tree operation. Anyway, to test, I implemented set_page_dirty in my dummy driver. With only that, it doesn't work because I need to modify migrate.c to work non-lru-mapped-page and changing PG_isolated flag which is override of PG_reclaim which is cleared in set_page_dirty. With that, it seems to work. But I'm not saying it's right model now for device drivers. In runtime, replacing filp->f_mapping->a_ops with custom a_ops of own driver seems to be hacky to me. So, I'm considering now new pseudo fs "movable_i...
2016 May 30
5
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...isolated non-lru movable page, it can skip it. Driver doesn't need to manipulate the flag because VM will set/clear it automatically. Keep in mind that if driver sees PG_isolated page, it means the page have been isolated by VM so it shouldn't touch page.lru field. PG_isolated is alias with PG_reclaim flag so driver shouldn't use the flag for own purpose. Cc: Rik van Riel <riel at redhat.com> Cc: Vlastimil Babka <vbabka at suse.cz> Cc: Joonsoo Kim <iamjoonsoo.kim at lge.com> Cc: Mel Gorman <mgorman at suse.de> Cc: Hugh Dickins <hughd at google.com> Cc: Rafael A...
2016 May 30
5
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...isolated non-lru movable page, it can skip it. Driver doesn't need to manipulate the flag because VM will set/clear it automatically. Keep in mind that if driver sees PG_isolated page, it means the page have been isolated by VM so it shouldn't touch page.lru field. PG_isolated is alias with PG_reclaim flag so driver shouldn't use the flag for own purpose. Cc: Rik van Riel <riel at redhat.com> Cc: Vlastimil Babka <vbabka at suse.cz> Cc: Joonsoo Kim <iamjoonsoo.kim at lge.com> Cc: Mel Gorman <mgorman at suse.de> Cc: Hugh Dickins <hughd at google.com> Cc: Rafael A...
2016 Mar 22
2
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...100644 > --- a/include/linux/page-flags.h > +++ b/include/linux/page-flags.h > @@ -129,6 +129,10 @@ enum pageflags { > > /* Compound pages. Stored in first tail page's flags */ > PG_double_map = PG_private_2, > + > + /* non-lru movable pages */ > + PG_movable = PG_reclaim, > + PG_isolated = PG_owner_priv_1, > }; > > #ifndef __GENERATING_BOUNDS_H > @@ -614,6 +618,31 @@ static inline void __ClearPageBalloon(struct page *page) > atomic_set(&page->_mapcount, -1); > } > > +#define PAGE_MOVABLE_MAPCOUNT_VALUE (-255) > + > +...
2016 Mar 22
2
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...100644 > --- a/include/linux/page-flags.h > +++ b/include/linux/page-flags.h > @@ -129,6 +129,10 @@ enum pageflags { > > /* Compound pages. Stored in first tail page's flags */ > PG_double_map = PG_private_2, > + > + /* non-lru movable pages */ > + PG_movable = PG_reclaim, > + PG_isolated = PG_owner_priv_1, > }; > > #ifndef __GENERATING_BOUNDS_H > @@ -614,6 +618,31 @@ static inline void __ClearPageBalloon(struct page *page) > atomic_set(&page->_mapcount, -1); > } > > +#define PAGE_MOVABLE_MAPCOUNT_VALUE (-255) > + > +...
2016 May 20
5
[PATCH v6 00/12] 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 20
5
[PATCH v6 00/12] 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 Mar 23
1
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
.../page-flags.h > > > @@ -129,6 +129,10 @@ enum pageflags { > > > > > > /* Compound pages. Stored in first tail page's flags */ > > > PG_double_map = PG_private_2, > > > + > > > + /* non-lru movable pages */ > > > + PG_movable = PG_reclaim, > > > + PG_isolated = PG_owner_priv_1, > > > }; > > > > > > #ifndef __GENERATING_BOUNDS_H > > > @@ -614,6 +618,31 @@ static inline void __ClearPageBalloon(struct page *page) > > > atomic_set(&page->_mapcount, -1); > > > }...