search for: inquire_unused_page_block

Displaying 12 results from an estimated 12 matches for "inquire_unused_page_block".

2017 Apr 13
2
[PATCH v9 3/5] mm: function to offer a page block on the free list
...page_alloc.c > @@ -4498,6 +4498,93 @@ void show_free_areas(unsigned int filter) > show_swap_cache_info(); > } > > +/** > + * Heuristically get a page block in the system that is unused. > + * It is possible that pages from the page block are used immediately after > + * inquire_unused_page_block() returns. It is the caller's responsibility > + * to either detect or prevent the use of such pages. > + * > + * The free list to check: zone->free_area[order].free_list[migratetype]. > + * > + * If the caller supplied page block (i.e. **page) is on the free list, offer >...
2017 Apr 13
2
[PATCH v9 3/5] mm: function to offer a page block on the free list
...page_alloc.c > @@ -4498,6 +4498,93 @@ void show_free_areas(unsigned int filter) > show_swap_cache_info(); > } > > +/** > + * Heuristically get a page block in the system that is unused. > + * It is possible that pages from the page block are used immediately after > + * inquire_unused_page_block() returns. It is the caller's responsibility > + * to either detect or prevent the use of such pages. > + * > + * The free list to check: zone->free_area[order].free_list[migratetype]. > + * > + * If the caller supplied page block (i.e. **page) is on the free list, offer >...
2017 Apr 13
0
[PATCH v9 3/5] mm: function to offer a page block on the free list
.../include/linux/mm.h +++ b/include/linux/mm.h @@ -1764,6 +1764,9 @@ extern void free_area_init(unsigned long * zones_size); extern void free_area_init_node(int nid, unsigned long * zones_size, unsigned long zone_start_pfn, unsigned long *zholes_size); extern void free_initmem(void); +extern int inquire_unused_page_block(struct zone *zone, unsigned int order, + unsigned int migratetype, + struct page **page); /* * Free reserved pages within range [PAGE_ALIGN(start), end & PAGE_MASK) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index f3e0c69..fa8203f 100644 --- a/mm/page_alloc.c +++ b/mm/p...
2017 Apr 14
0
[PATCH v9 3/5] mm: function to offer a page block on the free list
...498,93 @@ void show_free_areas(unsigned int filter) >> show_swap_cache_info(); >> } >> >> +/** >> + * Heuristically get a page block in the system that is unused. >> + * It is possible that pages from the page block are used immediately after >> + * inquire_unused_page_block() returns. It is the caller's responsibility >> + * to either detect or prevent the use of such pages. >> + * >> + * The free list to check: zone->free_area[order].free_list[migratetype]. >> + * >> + * If the caller supplied page block (i.e. **page) is on the fr...
2017 Apr 13
2
[PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ
...to catch this type of error. > + miscq_out_hdr->flags = 0; > + > + for_each_populated_zone(zone) { > + for (order = MAX_ORDER - 1; order > 0; order--) { > + for (migratetype = 0; migratetype < MIGRATE_TYPES; > + migratetype++) { > + do { > + ret = inquire_unused_page_block(zone, > + order, migratetype, &page); > + if (!ret) { > + pfn = (u64)page_to_pfn(page); > + add_one_chunk(vb, vq, > + PAGE_CHUNK_TYPE_UNUSED, > + pfn, > + (u64)(1 << order)); > + } > + } while (!ret); > + } > +...
2017 Apr 13
2
[PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ
...to catch this type of error. > + miscq_out_hdr->flags = 0; > + > + for_each_populated_zone(zone) { > + for (order = MAX_ORDER - 1; order > 0; order--) { > + for (migratetype = 0; migratetype < MIGRATE_TYPES; > + migratetype++) { > + do { > + ret = inquire_unused_page_block(zone, > + order, migratetype, &page); > + if (!ret) { > + pfn = (u64)page_to_pfn(page); > + add_one_chunk(vb, vq, > + PAGE_CHUNK_TYPE_UNUSED, > + pfn, > + (u64)(1 << order)); > + } > + } while (!ret); > + } > +...
2017 Apr 13
10
[PATCH v9 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
This patch series implements two optimizations: 1) transfer pages in chuncks between the guest and host; 2) transfer the guest unused pages to the host so that they can be skipped to migrate in live migration. Changes: v8->v9: 1) Split the two new features, VIRTIO_BALLOON_F_BALLOON_CHUNKS and VIRTIO_BALLOON_F_MISC_VQ, which were mixed together in the previous implementation; 2) Simpler
2017 Apr 13
10
[PATCH v9 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
This patch series implements two optimizations: 1) transfer pages in chuncks between the guest and host; 2) transfer the guest unused pages to the host so that they can be skipped to migrate in live migration. Changes: v8->v9: 1) Split the two new features, VIRTIO_BALLOON_F_BALLOON_CHUNKS and VIRTIO_BALLOON_F_MISC_VQ, which were mixed together in the previous implementation; 2) Simpler
2017 Apr 27
0
[PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ
...gt;> + miscq_out_hdr->flags = 0; >> + >> + for_each_populated_zone(zone) { >> + for (order = MAX_ORDER - 1; order > 0; order--) { >> + for (migratetype = 0; migratetype < MIGRATE_TYPES; >> + migratetype++) { >> + do { >> + ret = inquire_unused_page_block(zone, >> + order, migratetype, &page); >> + if (!ret) { >> + pfn = (u64)page_to_pfn(page); >> + add_one_chunk(vb, vq, >> + PAGE_CHUNK_TYPE_UNUSED, >> + pfn, >> + (u64)(1 << order)); >> + } >> +...
2017 May 05
1
[PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ
...; > > + > > > + for_each_populated_zone(zone) { > > > + for (order = MAX_ORDER - 1; order > 0; order--) { > > > + for (migratetype = 0; migratetype < MIGRATE_TYPES; > > > + migratetype++) { > > > + do { > > > + ret = inquire_unused_page_block(zone, > > > + order, migratetype, &page); > > > + if (!ret) { > > > + pfn = (u64)page_to_pfn(page); > > > + add_one_chunk(vb, vq, > > > + PAGE_CHUNK_TYPE_UNUSED, > > > + pfn, > > > + (u64)(1 <...
2017 May 05
1
[PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ
...; > > + > > > + for_each_populated_zone(zone) { > > > + for (order = MAX_ORDER - 1; order > 0; order--) { > > > + for (migratetype = 0; migratetype < MIGRATE_TYPES; > > > + migratetype++) { > > > + do { > > > + ret = inquire_unused_page_block(zone, > > > + order, migratetype, &page); > > > + if (!ret) { > > > + pfn = (u64)page_to_pfn(page); > > > + add_one_chunk(vb, vq, > > > + PAGE_CHUNK_TYPE_UNUSED, > > > + pfn, > > > + (u64)(1 <...
2017 Apr 13
0
[PATCH v9 5/5] virtio-balloon: VIRTIO_BALLOON_F_MISC_VQ
...+ miscq_out_hdr->cmd = VIRTIO_BALLOON_MISCQ_INQUIRE_UNUSED_PAGES; + miscq_out_hdr->flags = 0; + + for_each_populated_zone(zone) { + for (order = MAX_ORDER - 1; order > 0; order--) { + for (migratetype = 0; migratetype < MIGRATE_TYPES; + migratetype++) { + do { + ret = inquire_unused_page_block(zone, + order, migratetype, &page); + if (!ret) { + pfn = (u64)page_to_pfn(page); + add_one_chunk(vb, vq, + PAGE_CHUNK_TYPE_UNUSED, + pfn, + (u64)(1 << order)); + } + } while (!ret); + } + } + } + miscq_out_hdr->flags |= VIRTIO_BALLOON_MIS...