search for: __setpagemovable

Displaying 20 results from an estimated 64 matches for "__setpagemovable".

2016 Jun 15
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...re is that the page->mapping eventually points to struct address_space (file->f_mapping) which belongs to the character device file (created using mknod) which we are using for establishing the mmap() regions in the user space. Now as per this new framework, all the page's are to be made __SetPageMovable before passing the list down to migrate_pages(). Now __SetPageMovable() takes *new* struct address_space as an argument and replaces the existing page->mapping. Now thats the problem, we have lost all our connection to the existing file RMAP information. This stands as a problem when we try to m...
2016 Jun 15
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...re is that the page->mapping eventually points to struct address_space (file->f_mapping) which belongs to the character device file (created using mknod) which we are using for establishing the mmap() regions in the user space. Now as per this new framework, all the page's are to be made __SetPageMovable before passing the list down to migrate_pages(). Now __SetPageMovable() takes *new* struct address_space as an argument and replaces the existing page->mapping. Now thats the problem, we have lost all our connection to the existing file RMAP information. This stands as a problem when we try to m...
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 *, struct page *, enum migrate_mode); > extern int...
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 *, struct page *, enum migrate_mode); > extern int...
2016 May 30
1
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...; >+ return 0; > >+ > >+ mapping = page_mapping(page); > >+ if (mapping && mapping->a_ops && mapping->a_ops->isolate_page) > >+ return 1; > >+ > >+ return 0; > >+} > >+EXPORT_SYMBOL(PageMovable); > >+ > >+void __SetPageMovable(struct page *page, struct address_space *mapping) > >+{ > >+ VM_BUG_ON_PAGE(!PageLocked(page), page); > >+ VM_BUG_ON_PAGE((unsigned long)mapping & PAGE_MAPPING_MOVABLE, page); > >+ page->mapping = (void *)((unsigned long)mapping | PAGE_MAPPING_MOVABLE); > >+} &g...
2016 May 30
1
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...; >+ return 0; > >+ > >+ mapping = page_mapping(page); > >+ if (mapping && mapping->a_ops && mapping->a_ops->isolate_page) > >+ return 1; > >+ > >+ return 0; > >+} > >+EXPORT_SYMBOL(PageMovable); > >+ > >+void __SetPageMovable(struct page *page, struct address_space *mapping) > >+{ > >+ VM_BUG_ON_PAGE(!PageLocked(page), page); > >+ VM_BUG_ON_PAGE((unsigned long)mapping & PAGE_MAPPING_MOVABLE, page); > >+ page->mapping = (void *)((unsigned long)mapping | PAGE_MAPPING_MOVABLE); > >+} &g...
2016 Jun 16
0
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...>mapping eventually points to struct address_space > (file->f_mapping) which belongs to the character device file (created using mknod) > which we are using for establishing the mmap() regions in the user space. > > Now as per this new framework, all the page's are to be made __SetPageMovable before > passing the list down to migrate_pages(). Now __SetPageMovable() takes *new* struct > address_space as an argument and replaces the existing page->mapping. Now thats the > problem, we have lost all our connection to the existing file RMAP information. This We could change __Se...
2016 May 30
0
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...page); > + if (!__PageMovable(page)) > + return 0; > + > + mapping = page_mapping(page); > + if (mapping && mapping->a_ops && mapping->a_ops->isolate_page) > + return 1; > + > + return 0; > +} > +EXPORT_SYMBOL(PageMovable); > + > +void __SetPageMovable(struct page *page, struct address_space *mapping) > +{ > + VM_BUG_ON_PAGE(!PageLocked(page), page); > + VM_BUG_ON_PAGE((unsigned long)mapping & PAGE_MAPPING_MOVABLE, page); > + page->mapping = (void *)((unsigned long)mapping | PAGE_MAPPING_MOVABLE); > +} > +EXPORT_SYMBOL(__...
2016 May 30
5
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...migration failed page. In this function, driver should put the isolated page back to the own data structure. 4. non-lru movable page flags There are two page flags for supporting non-lru movable page. * PG_movable Driver should use the below function to make page movable under page_lock. void __SetPageMovable(struct page *page, struct address_space *mapping) It needs argument of address_space for registering migration family functions which will be called by VM. Exactly speaking, PG_movable is not a real flag of struct page. Rather than, VM reuses page->mapping's lower bits to represent it. #d...
2016 May 30
5
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...migration failed page. In this function, driver should put the isolated page back to the own data structure. 4. non-lru movable page flags There are two page flags for supporting non-lru movable page. * PG_movable Driver should use the below function to make page movable under page_lock. void __SetPageMovable(struct page *page, struct address_space *mapping) It needs argument of address_space for registering migration family functions which will be called by VM. Exactly speaking, PG_movable is not a real flag of struct page. Rather than, VM reuses page->mapping's lower bits to represent it. #d...
2016 Jun 13
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
On 05/31/2016 05:31 AM, Minchan Kim wrote: > @@ -791,6 +921,7 @@ static int __unmap_and_move(struct page *page, struct page *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
2016 Jun 13
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
On 05/31/2016 05:31 AM, Minchan Kim wrote: > @@ -791,6 +921,7 @@ static int __unmap_and_move(struct page *page, struct page *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
2016 Jun 16
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...ntually points to struct address_space >> (file->f_mapping) which belongs to the character device file (created using mknod) >> which we are using for establishing the mmap() regions in the user space. >> >> Now as per this new framework, all the page's are to be made __SetPageMovable before >> passing the list down to migrate_pages(). Now __SetPageMovable() takes *new* struct >> address_space as an argument and replaces the existing page->mapping. Now thats the >> problem, we have lost all our connection to the existing file RMAP information. This > &gt...
2016 Jun 16
2
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...ntually points to struct address_space >> (file->f_mapping) which belongs to the character device file (created using mknod) >> which we are using for establishing the mmap() regions in the user space. >> >> Now as per this new framework, all the page's are to be made __SetPageMovable before >> passing the list down to migrate_pages(). Now __SetPageMovable() takes *new* struct >> address_space as an argument and replaces the existing page->mapping. Now thats the >> problem, we have lost all our connection to the existing file RMAP information. This > &gt...
2016 May 17
0
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...n (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 *, struct page *, enum migrate_mod...
2016 May 16
1
[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 *, struct page *, enum migrate_mode); > extern int...
2016 May 16
1
[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 *, struct page *, enum migrate_mode); > extern int...
2016 May 20
0
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...migration failed page. In this function, driver should put the isolated page back to the own data structure. 4. non-lru movable page flags There are two page flags for supporting non-lru movable page. * PG_movable Driver should use the below function to make page movable under page_lock. void __SetPageMovable(struct page *page, struct address_space *mapping) It needs argument of address_space for registering migration family functions which will be called by VM. Exactly speaking, PG_movable is not a real flag of struct page. Rather than, VM reuses page->mapping's lower bits to represent it. #d...
2016 May 27
2
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...ould put the isolated page back to the own data > structure. > > 4. non-lru movable page flags > > There are two page flags for supporting non-lru movable page. > > * PG_movable > > Driver should use the below function to make page movable under page_lock. > > void __SetPageMovable(struct page *page, struct address_space *mapping) > > It needs argument of address_space for registering migration family functions > which will be called by VM. Exactly speaking, PG_movable is not a real flag of > struct page. Rather than, VM reuses page->mapping's lower bits to...
2016 May 27
2
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...ould put the isolated page back to the own data > structure. > > 4. non-lru movable page flags > > There are two page flags for supporting non-lru movable page. > > * PG_movable > > Driver should use the below function to make page movable under page_lock. > > void __SetPageMovable(struct page *page, struct address_space *mapping) > > It needs argument of address_space for registering migration family functions > which will be called by VM. Exactly speaking, PG_movable is not a real flag of > struct page. Rather than, VM reuses page->mapping's lower bits to...