search for: out_no_isolated

Displaying 20 results from an estimated 33 matches for "out_no_isolated".

2016 Mar 22
2
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...ng to isolate pages being released, > + * lets be sure we have the page lock > + * before proceeding with the movable page isolation steps. > + */ > + if (unlikely(!trylock_page(page))) > + goto out_putpage; > + > + if (!PageMovable(page) || PageIsolated(page)) > + goto out_no_isolated; > + > + ret = page->mapping->a_ops->isolate_page(page, mode); > + if (!ret) > + goto out_no_isolated; > + > + WARN_ON_ONCE(!PageIsolated(page)); > + unlock_page(page); > + return ret; > + > +out_no_isolated: > + unlock_page(page); > +out_putpage: >...
2016 Mar 22
2
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...ng to isolate pages being released, > + * lets be sure we have the page lock > + * before proceeding with the movable page isolation steps. > + */ > + if (unlikely(!trylock_page(page))) > + goto out_putpage; > + > + if (!PageMovable(page) || PageIsolated(page)) > + goto out_no_isolated; > + > + ret = page->mapping->a_ops->isolate_page(page, mode); > + if (!ret) > + goto out_no_isolated; > + > + WARN_ON_ONCE(!PageIsolated(page)); > + unlock_page(page); > + return ret; > + > +out_no_isolated: > + unlock_page(page); > +out_putpage: >...
2016 Mar 23
1
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...page lock > > > + * before proceeding with the movable page isolation steps. > > > + */ > > > + if (unlikely(!trylock_page(page))) > > > + goto out_putpage; > > > + > > > + if (!PageMovable(page) || PageIsolated(page)) > > > + goto out_no_isolated; > > > + > > > + ret = page->mapping->a_ops->isolate_page(page, mode); > > > + if (!ret) > > > + goto out_no_isolated; > > > + > > > + WARN_ON_ONCE(!PageIsolated(page)); > > > + unlock_page(page); > > > + return ret;...
2016 Mar 23
1
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...page lock > > > + * before proceeding with the movable page isolation steps. > > > + */ > > > + if (unlikely(!trylock_page(page))) > > > + goto out_putpage; > > > + > > > + if (!PageMovable(page) || PageIsolated(page)) > > > + goto out_no_isolated; > > > + > > > + ret = page->mapping->a_ops->isolate_page(page, mode); > > > + if (!ret) > > > + goto out_no_isolated; > > > + > > > + WARN_ON_ONCE(!PageIsolated(page)); > > > + unlock_page(page); > > > + return ret;...
2016 Mar 21
0
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...der migration, + * or to avoid attempting to isolate pages being released, + * lets be sure we have the page lock + * before proceeding with the movable page isolation steps. + */ + if (unlikely(!trylock_page(page))) + goto out_putpage; + + if (!PageMovable(page) || PageIsolated(page)) + goto out_no_isolated; + + ret = page->mapping->a_ops->isolate_page(page, mode); + if (!ret) + goto out_no_isolated; + + WARN_ON_ONCE(!PageIsolated(page)); + unlock_page(page); + return ret; + +out_no_isolated: + unlock_page(page); +out_putpage: + put_page(page); +out: + return ret; +} + +void putback_movable_...
2016 Mar 11
0
[PATCH v1 02/19] mm/compaction: support non-lru movable page migration
...der migration, + * or to avoid attempting to isolate pages being released, + * lets be sure we have the page lock + * before proceeding with the movable page isolation steps. + */ + if (unlikely(!trylock_page(page))) + goto out_putpage; + + if (!PageMovable(page) || PageIsolated(page)) + goto out_no_isolated; + + ret = page->mapping->a_ops->isolate_page(page, mode); + if (!ret) + goto out_no_isolated; + + WARN_ON_ONCE(!PageIsolated(page)); + unlock_page(page); + return ret; + +out_no_isolated: + unlock_page(page); +out_putpage: + put_page(page); +out: + return ret; +} + +void putback_movable_...
2016 Mar 30
0
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...der migration, + * or to avoid attempting to isolate pages being released, + * lets be sure we have the page lock + * before proceeding with the movable page isolation steps. + */ + if (unlikely(!trylock_page(page))) + goto out_putpage; + + if (!PageMovable(page) || PageIsolated(page)) + goto out_no_isolated; + + ret = page->mapping->a_ops->isolate_page(page, mode); + if (!ret) + goto out_no_isolated; + + WARN_ON_ONCE(!PageIsolated(page)); + unlock_page(page); + return ret; + +out_no_isolated: + unlock_page(page); +out_putpage: + put_page(page); +out: + return ret; +} + +/* It should be calle...
2016 Mar 22
0
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...> + * lets be sure we have the page lock > > + * before proceeding with the movable page isolation steps. > > + */ > > + if (unlikely(!trylock_page(page))) > > + goto out_putpage; > > + > > + if (!PageMovable(page) || PageIsolated(page)) > > + goto out_no_isolated; > > + > > + ret = page->mapping->a_ops->isolate_page(page, mode); > > + if (!ret) > > + goto out_no_isolated; > > + > > + WARN_ON_ONCE(!PageIsolated(page)); > > + unlock_page(page); > > + return ret; > > + > > +out_no_isolated:...
2016 Apr 01
2
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...ng to isolate pages being released, > + * lets be sure we have the page lock > + * before proceeding with the movable page isolation steps. > + */ > + if (unlikely(!trylock_page(page))) > + goto out_putpage; > + > + if (!PageMovable(page) || PageIsolated(page)) > + goto out_no_isolated; > + > + ret = page->mapping->a_ops->isolate_page(page, mode); > + if (!ret) > + goto out_no_isolated; > + > + WARN_ON_ONCE(!PageIsolated(page)); > + unlock_page(page); > + return ret; > + > +out_no_isolated: > + unlock_page(page); > +out_putpage: >...
2016 Apr 01
2
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...ng to isolate pages being released, > + * lets be sure we have the page lock > + * before proceeding with the movable page isolation steps. > + */ > + if (unlikely(!trylock_page(page))) > + goto out_putpage; > + > + if (!PageMovable(page) || PageIsolated(page)) > + goto out_no_isolated; > + > + ret = page->mapping->a_ops->isolate_page(page, mode); > + if (!ret) > + goto out_no_isolated; > + > + WARN_ON_ONCE(!PageIsolated(page)); > + unlock_page(page); > + return ret; > + > +out_no_isolated: > + unlock_page(page); > +out_putpage: >...
2016 Apr 04
0
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...ed, > >+ * lets be sure we have the page lock > >+ * before proceeding with the movable page isolation steps. > >+ */ > >+ if (unlikely(!trylock_page(page))) > >+ goto out_putpage; > >+ > >+ if (!PageMovable(page) || PageIsolated(page)) > >+ goto out_no_isolated; > >+ > >+ ret = page->mapping->a_ops->isolate_page(page, mode); > >+ if (!ret) > >+ goto out_no_isolated; > >+ > >+ WARN_ON_ONCE(!PageIsolated(page)); > >+ unlock_page(page); > >+ return ret; > >+ > >+out_no_isolated: > >+...
2016 May 09
0
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...der migration, + * or to avoid attempting to isolate pages being released, + * lets be sure we have the page lock + * before proceeding with the movable page isolation steps. + */ + if (unlikely(!trylock_page(page))) + goto out_putpage; + + if (!PageMovable(page) || PageIsolated(page)) + goto out_no_isolated; + + mapping = page_mapping(page); + if (!mapping->a_ops->isolate_page(page, mode)) + goto out_no_isolated; + + /* Driver shouldn't use PG_isolated bit of page->flags */ + WARN_ON_ONCE(PageIsolated(page)); + __SetPageIsolated(page); + unlock_page(page); + + return true; + +out_no_isol...
2016 May 20
0
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...der migration, + * or to avoid attempting to isolate pages being released, + * lets be sure we have the page lock + * before proceeding with the movable page isolation steps. + */ + if (unlikely(!trylock_page(page))) + goto out_putpage; + + if (!PageMovable(page) || PageIsolated(page)) + goto out_no_isolated; + + mapping = page_mapping(page); + if (!mapping->a_ops->isolate_page(page, mode)) + goto out_no_isolated; + + /* Driver shouldn't use PG_isolated bit of page->flags */ + WARN_ON_ONCE(PageIsolated(page)); + __SetPageIsolated(page); + unlock_page(page); + + return true; + +out_no_isol...
2016 May 31
0
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...der migration, + * or to avoid attempting to isolate pages being released, + * lets be sure we have the page lock + * before proceeding with the movable page isolation steps. + */ + if (unlikely(!trylock_page(page))) + goto out_putpage; + + if (!PageMovable(page) || PageIsolated(page)) + goto out_no_isolated; + + mapping = page_mapping(page); + VM_BUG_ON_PAGE(!mapping, page); + + if (!mapping->a_ops->isolate_page(page, mode)) + goto out_no_isolated; + + /* Driver shouldn't use PG_isolated bit of page->flags */ + WARN_ON_ONCE(PageIsolated(page)); + __SetPageIsolated(page); + unlock_page(pa...
2016 May 30
5
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...der migration, + * or to avoid attempting to isolate pages being released, + * lets be sure we have the page lock + * before proceeding with the movable page isolation steps. + */ + if (unlikely(!trylock_page(page))) + goto out_putpage; + + if (!PageMovable(page) || PageIsolated(page)) + goto out_no_isolated; + + mapping = page_mapping(page); + VM_BUG_ON_PAGE(!mapping, page); + + if (!mapping->a_ops->isolate_page(page, mode)) + goto out_no_isolated; + + /* Driver shouldn't use PG_isolated bit of page->flags */ + WARN_ON_ONCE(PageIsolated(page)); + __SetPageIsolated(page); + unlock_page(pa...
2016 May 30
5
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...der migration, + * or to avoid attempting to isolate pages being released, + * lets be sure we have the page lock + * before proceeding with the movable page isolation steps. + */ + if (unlikely(!trylock_page(page))) + goto out_putpage; + + if (!PageMovable(page) || PageIsolated(page)) + goto out_no_isolated; + + mapping = page_mapping(page); + VM_BUG_ON_PAGE(!mapping, page); + + if (!mapping->a_ops->isolate_page(page, mode)) + goto out_no_isolated; + + /* Driver shouldn't use PG_isolated bit of page->flags */ + WARN_ON_ONCE(PageIsolated(page)); + __SetPageIsolated(page); + unlock_page(pa...
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 May 27
2
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...ng to isolate pages being released, > + * lets be sure we have the page lock > + * before proceeding with the movable page isolation steps. > + */ > + if (unlikely(!trylock_page(page))) > + goto out_putpage; > + > + if (!PageMovable(page) || PageIsolated(page)) > + goto out_no_isolated; > + > + mapping = page_mapping(page); Hmm so on first tail page of a THP compound page, page->mapping will alias with compound_mapcount. That can easily have a value matching PageMovable flags and we'll proceed and start inspecting the compound head in page_mapping()... maybe it...
2016 May 27
2
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...ng to isolate pages being released, > + * lets be sure we have the page lock > + * before proceeding with the movable page isolation steps. > + */ > + if (unlikely(!trylock_page(page))) > + goto out_putpage; > + > + if (!PageMovable(page) || PageIsolated(page)) > + goto out_no_isolated; > + > + mapping = page_mapping(page); Hmm so on first tail page of a THP compound page, page->mapping will alias with compound_mapcount. That can easily have a value matching PageMovable flags and we'll proceed and start inspecting the compound head in page_mapping()... maybe it...