search for: set_page_private

Displaying 20 results from an estimated 112 matches for "set_page_private".

2016 Mar 12
1
[PATCH v1 13/19] zsmalloc: factor page chain functionality out
...+ int i; > + struct page *page; > + struct page *prev_page = NULL; > + struct page *first_page = NULL; > + > + for (i = 0; i < nr_pages; i++) { > + page = pages[i]; > + > + INIT_LIST_HEAD(&page->lru); > + if (i == 0) { > + SetPagePrivate(page); > + set_page_private(page, 0); > + first_page = page; > + } > + > + if (i == 1) > + set_page_private(first_page, (unsigned long)page); > + if (i >= 1) > + set_page_private(page, (unsigned long)first_page); > + if (i >= 2) > + list_add(&page->lru, &prev_page->lr...
2016 Mar 12
1
[PATCH v1 13/19] zsmalloc: factor page chain functionality out
...+ int i; > + struct page *page; > + struct page *prev_page = NULL; > + struct page *first_page = NULL; > + > + for (i = 0; i < nr_pages; i++) { > + page = pages[i]; > + > + INIT_LIST_HEAD(&page->lru); > + if (i == 0) { > + SetPagePrivate(page); > + set_page_private(page, 0); > + first_page = page; > + } > + > + if (i == 1) > + set_page_private(first_page, (unsigned long)page); > + if (i >= 1) > + set_page_private(page, (unsigned long)first_page); > + if (i >= 2) > + list_add(&page->lru, &prev_page->lr...
2016 Mar 11
0
[PATCH v1 13/19] zsmalloc: factor page chain functionality out
...reate_page_chain(struct page *pages[], int nr_pages) +{ + int i; + struct page *page; + struct page *prev_page = NULL; + struct page *first_page = NULL; + + for (i = 0; i < nr_pages; i++) { + page = pages[i]; + + INIT_LIST_HEAD(&page->lru); + if (i == 0) { + SetPagePrivate(page); + set_page_private(page, 0); + first_page = page; + } + + if (i == 1) + set_page_private(first_page, (unsigned long)page); + if (i >= 1) + set_page_private(page, (unsigned long)first_page); + if (i >= 2) + list_add(&page->lru, &prev_page->lru); + if (i == nr_pages - 1) + SetPagePriv...
2016 Mar 30
0
[PATCH v3 10/16] zsmalloc: factor page chain functionality out
...reate_page_chain(struct page *pages[], int nr_pages) +{ + int i; + struct page *page; + struct page *prev_page = NULL; + struct page *first_page = NULL; + + for (i = 0; i < nr_pages; i++) { + page = pages[i]; + + INIT_LIST_HEAD(&page->lru); + if (i == 0) { + SetPagePrivate(page); + set_page_private(page, 0); + first_page = page; + } + + if (i == 1) + set_page_private(first_page, (unsigned long)page); + if (i >= 1) + set_page_private(page, (unsigned long)first_page); + if (i >= 2) + list_add(&page->lru, &prev_page->lru); + if (i == nr_pages - 1) + SetPagePriv...
2006 Mar 14
1
[Xen-ia64-devel] RE: RE: Linux PG_arch_1 conflict
...ream to Linux. > >What do you think of the followings? Too hacky? > > >extern struct address_space xen_ia64_foreign_dummy_mapping; >#define PageForeign(page) \ > (page->mapping == &xen_ia64_foreign_dummy_mapping) > >#define SetPageForeign(page, dtor) do { \ > set_page_private((page), (unsigned long)dtor); \ > (page)->mapping = &xen_ia64_foreign_dummy_mapping; \ >} while (0) > >#define ClearPageForeign(page) do { \ > (page)->mapping = NULL; \ > set_page_private((page), 0); \ >} while (0) > >#define PageForeignDestructor(page) \ >...
2016 Apr 18
1
[PATCH v3 10/16] zsmalloc: factor page chain functionality out
...page, link->next >> OBJ_ALLOCATED_TAG); > if (!class->huge) > /* record handle in the header of allocated chunk */ > - link->handle = handle; > + link->handle = handle | OBJ_ALLOCATED_TAG; > else > /* record handle in first_page->private */ > - set_page_private(first_page, handle); > + set_page_private(first_page, handle | OBJ_ALLOCATED_TAG); > kunmap_atomic(vaddr); > mod_zspage_inuse(first_page, 1); > zs_stat_inc(class, OBJ_USED, 1);
2016 Apr 18
1
[PATCH v3 10/16] zsmalloc: factor page chain functionality out
...page, link->next >> OBJ_ALLOCATED_TAG); > if (!class->huge) > /* record handle in the header of allocated chunk */ > - link->handle = handle; > + link->handle = handle | OBJ_ALLOCATED_TAG; > else > /* record handle in first_page->private */ > - set_page_private(first_page, handle); > + set_page_private(first_page, handle | OBJ_ALLOCATED_TAG); > kunmap_atomic(vaddr); > mod_zspage_inuse(first_page, 1); > zs_stat_inc(class, OBJ_USED, 1);
2006 Mar 14
0
RE: [Xen-ia64-devel] RE: RE: Linux PG_arch_1 conflict
...>> > >> > >> >extern struct address_space xen_ia64_foreign_dummy_mapping; >> >#define PageForeign(page) \ >> > (page->mapping == &xen_ia64_foreign_dummy_mapping) >> > >> >#define SetPageForeign(page, dtor) do { \ >> > set_page_private((page), (unsigned long)dtor); \ >> > (page)->mapping = &xen_ia64_foreign_dummy_mapping; \ >> >} while (0) >> > >> >#define ClearPageForeign(page) do { \ >> > (page)->mapping = NULL; \ >> > set_page_private((page), 0); \ >> >...
2020 Mar 12
0
[RFC for Linux] virtio_balloon: Add VIRTIO_BALLOON_F_THP_ORDER to handle THP spilt issue
...action.h > +++ b/include/linux/balloon_compaction.h > @@ -100,8 +100,12 @@ static inline void balloon_page_insert(struct balloon_dev_info *balloon, > struct page *page) > { > __SetPageOffline(page); > - __SetPageMovable(page, balloon->inode->i_mapping); > - set_page_private(page, (unsigned long)balloon); > + if (balloon->inode) { > + __SetPageMovable(page, balloon->inode->i_mapping); > + set_page_private(page, (unsigned long)balloon); > + } else { > + set_page_private(page, 0); > + } > list_add(&page->lru, &balloon->pag...
2016 Mar 14
0
[PATCH v1 13/19] zsmalloc: factor page chain functionality out
...>+ struct page *prev_page = NULL; > >+ struct page *first_page = NULL; > >+ > >+ for (i = 0; i < nr_pages; i++) { > >+ page = pages[i]; > >+ > >+ INIT_LIST_HEAD(&page->lru); > >+ if (i == 0) { > >+ SetPagePrivate(page); > >+ set_page_private(page, 0); > >+ first_page = page; > >+ } > >+ > >+ if (i == 1) > >+ set_page_private(first_page, (unsigned long)page); > >+ if (i >= 1) > >+ set_page_private(page, (unsigned long)first_page); > >+ if (i >= 2) > >+ list_add(&amp...
2016 Mar 30
0
[PATCH v3 06/16] zsmalloc: squeeze inuse into page->mapping
...ge); - VM_BUG_ON_PAGE(first_page->inuse, first_page); + VM_BUG_ON_PAGE(get_zspage_inuse(first_page), first_page); head_extra = (struct page *)page_private(first_page); @@ -992,7 +1026,7 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) SetPagePrivate(page); set_page_private(page, 0); first_page = page; - first_page->inuse = 0; + set_zspage_inuse(page, 0); } if (i == 1) set_page_private(first_page, (unsigned long)page); @@ -1237,9 +1271,7 @@ static bool can_merge(struct size_class *prev, int size, int pages_per_zspage) static bool zspage_full(st...
2020 Mar 12
2
[RFC for Linux] virtio_balloon: Add VIRTIO_BALLOON_F_THP_ORDER to handle THP spilt issue
...action.h > +++ b/include/linux/balloon_compaction.h > @@ -100,8 +100,12 @@ static inline void balloon_page_insert(struct balloon_dev_info *balloon, > struct page *page) > { > __SetPageOffline(page); > - __SetPageMovable(page, balloon->inode->i_mapping); > - set_page_private(page, (unsigned long)balloon); > + if (balloon->inode) { > + __SetPageMovable(page, balloon->inode->i_mapping); > + set_page_private(page, (unsigned long)balloon); > + } else { > + set_page_private(page, 0); > + } > list_add(&page->lru, &balloon->pag...
2020 Mar 12
2
[RFC for Linux] virtio_balloon: Add VIRTIO_BALLOON_F_THP_ORDER to handle THP spilt issue
...action.h > +++ b/include/linux/balloon_compaction.h > @@ -100,8 +100,12 @@ static inline void balloon_page_insert(struct balloon_dev_info *balloon, > struct page *page) > { > __SetPageOffline(page); > - __SetPageMovable(page, balloon->inode->i_mapping); > - set_page_private(page, (unsigned long)balloon); > + if (balloon->inode) { > + __SetPageMovable(page, balloon->inode->i_mapping); > + set_page_private(page, (unsigned long)balloon); > + } else { > + set_page_private(page, 0); > + } > list_add(&page->lru, &balloon->pag...
2015 Jul 09
1
[RFCv3 3/5] mm/balloon: apply mobile page migratable into balloon
...ate_mode mode); > > /* > @@ -124,6 +130,7 @@ static inline void balloon_page_insert(struct balloon_dev_info *balloon, > struct page *page) > { > __SetPageBalloon(page); > + page->mapping = balloon->inode->i_mapping; > SetPagePrivate(page); > set_page_private(page, (unsigned long)balloon); > list_add(&page->lru, &balloon->pages); > @@ -140,6 +147,7 @@ static inline void balloon_page_insert(struct balloon_dev_info *balloon, > static inline void balloon_page_delete(struct page *page) > { > __ClearPageBalloon(page); >...
2015 Jul 09
1
[RFCv3 3/5] mm/balloon: apply mobile page migratable into balloon
...ate_mode mode); > > /* > @@ -124,6 +130,7 @@ static inline void balloon_page_insert(struct balloon_dev_info *balloon, > struct page *page) > { > __SetPageBalloon(page); > + page->mapping = balloon->inode->i_mapping; > SetPagePrivate(page); > set_page_private(page, (unsigned long)balloon); > list_add(&page->lru, &balloon->pages); > @@ -140,6 +147,7 @@ static inline void balloon_page_insert(struct balloon_dev_info *balloon, > static inline void balloon_page_delete(struct page *page) > { > __ClearPageBalloon(page); >...
2016 Mar 11
31
[PATCH v1 00/19] 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 failed to fork easily. The problem was fragmentation caused by zram and GPU driver pages. Their pages cannot be migrated so compaction cannot work well, either so reclaimer ends up shrinking all of working set pages. It made system very slow and even to fail to fork easily.
2016 Mar 11
31
[PATCH v1 00/19] 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 failed to fork easily. The problem was fragmentation caused by zram and GPU driver pages. Their pages cannot be migrated so compaction cannot work well, either so reclaimer ends up shrinking all of working set pages. It made system very slow and even to fail to fork easily.
2016 May 16
1
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...builds? otherwise the users (zsmalloc, for example) have to do things like static void reset_page(struct page *page) { #ifdef CONFIG_COMPACTION __ClearPageMovable(page); #endif clear_bit(PG_private, &page->flags); clear_bit(PG_private_2, &page->flags); set_page_private(page, 0); ClearPageHugeObject(page); page->freelist = NULL; } -ss
2016 May 16
1
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...builds? otherwise the users (zsmalloc, for example) have to do things like static void reset_page(struct page *page) { #ifdef CONFIG_COMPACTION __ClearPageMovable(page); #endif clear_bit(PG_private, &page->flags); clear_bit(PG_private_2, &page->flags); set_page_private(page, 0); ClearPageHugeObject(page); page->freelist = NULL; } -ss
2016 Mar 30
0
[PATCH v3 09/16] zsmalloc: move struct zs_meta from mapping to freelist
...&first_page->mapping; + m = (struct zs_meta *)&first_page->freelist; m->fullness = fullness; m->class = class_idx; } @@ -946,7 +946,6 @@ static void reset_page(struct page *page) clear_bit(PG_private, &page->flags); clear_bit(PG_private_2, &page->flags); set_page_private(page, 0); - page->mapping = NULL; page->freelist = NULL; } @@ -1056,6 +1055,7 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) INIT_LIST_HEAD(&page->lru); if (i == 0) { /* first page */ + page->freelist = NULL; SetPagePrivate(page); s...