search for: pagemovable

Displaying 20 results from an estimated 79 matches for "pagemovable".

2016 Mar 23
1
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...oid (*putback_page) (struct page *); > > > > > > Duty of subsystem want to make their pages as migratable are > > > as follows: > > > > > > 1. It should register address_space to page->mapping then mark > > > the page as PG_movable via __SetPageMovable. > > > > > > 2. It should mark the page as PG_isolated via SetPageIsolated > > > if isolation is sucessful and return true. > > > > > > 3. If migration is successful, it should clear PG_isolated and > > > PG_movable of the page for free prepar...
2016 Mar 23
1
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...oid (*putback_page) (struct page *); > > > > > > Duty of subsystem want to make their pages as migratable are > > > as follows: > > > > > > 1. It should register address_space to page->mapping then mark > > > the page as PG_movable via __SetPageMovable. > > > > > > 2. It should mark the page as PG_isolated via SetPageIsolated > > > if isolation is sucessful and return true. > > > > > > 3. If migration is successful, it should clear PG_isolated and > > > PG_movable of the page for free prepar...
2016 Apr 04
1
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...with its user after all, OK. > I will just resend to change the 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 PageMo...
2016 Apr 04
1
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...with its user after all, OK. > I will just resend to change the 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 PageMo...
2016 May 27
2
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
..., enum migrate_mode); > > After isolation, VM calls migratepage 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 0. > 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". O...
2016 May 27
2
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
..., enum migrate_mode); > > After isolation, VM calls migratepage 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 0. > 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". O...
2016 Mar 22
2
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...ool (*isolate_page) (struct page *, isolate_mode_t); > void (*putback_page) (struct page *); > > Duty of subsystem want to make their pages as migratable are > as follows: > > 1. It should register address_space to page->mapping then mark > the page as PG_movable via __SetPageMovable. > > 2. It should mark the page as PG_isolated via SetPageIsolated > if isolation is sucessful and return true. > > 3. If migration is successful, it should clear PG_isolated and > PG_movable of the page for free preparation then release the > reference of the page to free. &...
2016 Mar 22
2
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...ool (*isolate_page) (struct page *, isolate_mode_t); > void (*putback_page) (struct page *); > > Duty of subsystem want to make their pages as migratable are > as follows: > > 1. It should register address_space to page->mapping then mark > the page as PG_movable via __SetPageMovable. > > 2. It should mark the page as PG_isolated via SetPageIsolated > if isolation is sucessful and return true. > > 3. If migration is successful, it should clear PG_isolated and > PG_movable of the page for free preparation then release the > reference of the page to free. &...
2016 Apr 01
2
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...bool (*isolate_page) (struct page *, isolate_mode_t); > void (*putback_page) (struct page *); > > Duty of subsystem want to make their pages as migratable are > as follows: > > 1. It should register address_space to page->mapping then mark > the page as PG_movable via __SetPageMovable. > > 2. It should mark the page as PG_isolated via SetPageIsolated > if isolation is sucessful and return true. Ah another thing to document (especially in the comments/Doc) is that the subsystem must not expect anything to survive in page.lru (or fields that union it) after having isol...
2016 Apr 01
2
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...bool (*isolate_page) (struct page *, isolate_mode_t); > void (*putback_page) (struct page *); > > Duty of subsystem want to make their pages as migratable are > as follows: > > 1. It should register address_space to page->mapping then mark > the page as PG_movable via __SetPageMovable. > > 2. It should mark the page as PG_isolated via SetPageIsolated > if isolation is sucessful and return true. Ah another thing to document (especially in the comments/Doc) is that the subsystem must not expect anything to survive in page.lru (or fields that union it) after having isol...
2016 May 30
0
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...> > > >After isolation, VM calls migratepage 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 0. > >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...
2016 Apr 04
0
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...page *, isolate_mode_t); > > void (*putback_page) (struct page *); > > > >Duty of subsystem want to make their pages as migratable are > >as follows: > > > >1. It should register address_space to page->mapping then mark > >the page as PG_movable via __SetPageMovable. > > > >2. It should mark the page as PG_isolated via SetPageIsolated > >if isolation is sucessful and return true. > > Ah another thing to document (especially in the comments/Doc) is > that the subsystem must not expect anything to survive in page.lru > (or fields t...
2016 Apr 05
1
[PATCH v3 04/16] mm/balloon: use general movable page feature into balloon
...nel.org> I'm not familiar with the inode and pseudofs stuff, so just some things I noticed: > -#define PAGE_MOVABLE_MAPCOUNT_VALUE (-255) > +#define PAGE_MOVABLE_MAPCOUNT_VALUE (-256) > +#define PAGE_BALLOON_MAPCOUNT_VALUE PAGE_MOVABLE_MAPCOUNT_VALUE > > static inline int PageMovable(struct page *page) > { > - return ((test_bit(PG_movable, &(page)->flags) && > - atomic_read(&page->_mapcount) == PAGE_MOVABLE_MAPCOUNT_VALUE) > - || PageBalloon(page)); > + return (test_bit(PG_movable, &(page)->flags) && > + atomic_read(&a...
2016 Apr 05
1
[PATCH v3 04/16] mm/balloon: use general movable page feature into balloon
...nel.org> I'm not familiar with the inode and pseudofs stuff, so just some things I noticed: > -#define PAGE_MOVABLE_MAPCOUNT_VALUE (-255) > +#define PAGE_MOVABLE_MAPCOUNT_VALUE (-256) > +#define PAGE_BALLOON_MAPCOUNT_VALUE PAGE_MOVABLE_MAPCOUNT_VALUE > > static inline int PageMovable(struct page *page) > { > - return ((test_bit(PG_movable, &(page)->flags) && > - atomic_read(&page->_mapcount) == PAGE_MOVABLE_MAPCOUNT_VALUE) > - || PageBalloon(page)); > + return (test_bit(PG_movable, &(page)->flags) && > + atomic_read(&a...
2016 May 30
1
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...Kim wrote: > >After isolation, VM calls migratepage 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 0. > > This "clear PG_movable" is one of the reasons I was confused about > what __ClearPageMovable() really does. There's no actual > "PG_movable" page flag and the function doesn'...
2016 May 30
1
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...Kim wrote: > >After isolation, VM calls migratepage 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 0. > > This "clear PG_movable" is one of the reasons I was confused about > what __ClearPageMovable() really does. There's no actual > "PG_movable" page flag and the function doesn'...
2016 Mar 22
0
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...isolate_mode_t); > > void (*putback_page) (struct page *); > > > > Duty of subsystem want to make their pages as migratable are > > as follows: > > > > 1. It should register address_space to page->mapping then mark > > the page as PG_movable via __SetPageMovable. > > > > 2. It should mark the page as PG_isolated via SetPageIsolated > > if isolation is sucessful and return true. > > > > 3. If migration is successful, it should clear PG_isolated and > > PG_movable of the page for free preparation then release the > &g...
2016 Mar 30
0
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...lock. PG_movable PG_isolated bool (*isolate_page) (struct page *, isolate_mode_t); void (*putback_page) (struct page *); Duty of subsystem want to make their pages as migratable are as follows: 1. It should register address_space to page->mapping then mark the page as PG_movable via __SetPageMovable. 2. It should mark the page as PG_isolated via SetPageIsolated if isolation is sucessful and return true. 3. If migration is successful, it should clear PG_isolated and PG_movable of the page for free preparation then release the reference of the page to free. 4. If migration fails, putback func...
2016 May 16
2
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
On (05/09/16 11:20), Minchan Kim wrote: [..] > +++ b/include/linux/migrate.h > @@ -32,11 +32,16 @@ extern char *migrate_reason_names[MR_TYPES]; > > #ifdef CONFIG_MIGRATION > > +extern int PageMovable(struct page *page); > +extern void __SetPageMovable(struct page *page, struct address_space *mapping); > +extern void __ClearPageMovable(struct page *page); > extern void putback_movable_pages(struct list_head *l); > extern int migrate_page(struct address_space *, > struct page...
2016 May 16
2
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
On (05/09/16 11:20), Minchan Kim wrote: [..] > +++ b/include/linux/migrate.h > @@ -32,11 +32,16 @@ extern char *migrate_reason_names[MR_TYPES]; > > #ifdef CONFIG_MIGRATION > > +extern int PageMovable(struct page *page); > +extern void __SetPageMovable(struct page *page, struct address_space *mapping); > +extern void __ClearPageMovable(struct page *page); > extern void putback_movable_pages(struct list_head *l); > extern int migrate_page(struct address_space *, > struct page...