search for: __free_pages

Displaying 20 results from an estimated 192 matches for "__free_pages".

Did you mean: __free_page
2002 Apr 04
1
Ext3 related oops and a crash
...5>] [<c0114be0>] [<c0107024>] [<c0160018>] [<c0165e69>] [<c01614c3>] [<c01e93d3>] [<c0164375>] [<c01641e0>] [<c0105726>] [<c0164200>] Code: 8b 41 18 a9 00 40 00 00 75 14 ff 49 14 0f 94 c0 84 c0 74 0a >>EIP; c012e2d2 <__free_pages+2/30> <===== Trace; c01d865e <skb_release_data+3e/70> Trace; c01d869b <kfree_skbmem+b/70> Trace; c01d8809 <__kfree_skb+109/110> Trace; c020723c <arp_rcv+44c/460> Trace; c011ee90 <update_process_times+20/b0> Trace; c01dc7da <net_rx_action+12a/210> Trace; c...
2023 Mar 23
1
[PATCH net-next 1/8] virtio_net: mergeable xdp: put old page immediately
...cu_read_unlock(); > > goto xdp_xmit; > > default: > > @@ -1321,9 +1321,6 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, > > goto err_xdp_frags; > > } > > err_xdp_frags: > > - if (unlikely(xdp_page != page)) > > - __free_pages(xdp_page, 0); > > It seems __free_pages() and put_page() is used interchangeably here. > Perhaps using __free_pages() have performance reason? As the comment below: > > https://elixir.bootlin.com/linux/v6.3-rc3/source/net/core/page_pool.c#L500 Yes, but now we don't seem to be v...
2020 Aug 19
0
[PATCH 10/28] MIPS/jazzdma: decouple from dma-direct
...page); + *dma_handle = vdma_alloc(virt_to_phys(ret), size); + if (*dma_handle == DMA_MAPPING_ERROR) + goto out_free_pages; + + if (attrs & DMA_ATTR_NON_CONSISTENT) + return ret; + arch_dma_prep_coherent(page, size); + return (void *)(UNCAC_BASE + __pa(ret)); - return ret; +out_free_pages: + __free_pages(page, get_order(size)); + return NULL; } static void jazz_dma_free(struct device *dev, size_t size, void *vaddr, dma_addr_t dma_handle, unsigned long attrs) { vdma_free(dma_handle); - dma_direct_free_pages(dev, size, vaddr, dma_handle, attrs); + if (!(attrs & DMA_ATTR_NON_CONSISTENT))...
2016 Dec 23
1
[PATCH net 4/9] virtio-net: correctly handle XDP_PASS for linearized packets
...o_net.c > +++ b/drivers/net/virtio_net.c > @@ -578,8 +578,14 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, > act = do_xdp_prog(vi, rq, xdp_prog, xdp_page, offset, len); > switch (act) { > case XDP_PASS: > - if (unlikely(xdp_page != page)) > - __free_pages(xdp_page, 0); > + /* We can only create skb based on xdp_page. */ > + if (unlikely(xdp_page != page)) { > + rcu_read_unlock(); > + put_page(page); > + head_skb = page_to_skb(vi, rq, xdp_page, > + 0, len, PAGE_SIZE); > + return head_skb; > + } &g...
2016 Dec 23
1
[PATCH net 4/9] virtio-net: correctly handle XDP_PASS for linearized packets
...o_net.c > +++ b/drivers/net/virtio_net.c > @@ -578,8 +578,14 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, > act = do_xdp_prog(vi, rq, xdp_prog, xdp_page, offset, len); > switch (act) { > case XDP_PASS: > - if (unlikely(xdp_page != page)) > - __free_pages(xdp_page, 0); > + /* We can only create skb based on xdp_page. */ > + if (unlikely(xdp_page != page)) { > + rcu_read_unlock(); > + put_page(page); > + head_skb = page_to_skb(vi, rq, xdp_page, > + 0, len, PAGE_SIZE); > + return head_skb; > + } &g...
2015 Jul 27
2
[PATCH 2/4] mm/compaction: enable mobile-page migration
...s compaction.c so probably move it there, and if there ever is another module using this in the future, we can move it to a more appropriate place and declare it in e.g. mm/internal.h. > +{ > + bool ret = false; > + > + /* > + * Avoid burning cycles with pages that are yet under __free_pages(), > + * or just got freed under us. > + * > + * In case we 'win' a race for a mobile page being freed under us and > + * raise its refcount preventing __free_pages() from doing its job > + * the put_page() at the end of this block will take care of > + * release thi...
2015 Jul 27
2
[PATCH 2/4] mm/compaction: enable mobile-page migration
...s compaction.c so probably move it there, and if there ever is another module using this in the future, we can move it to a more appropriate place and declare it in e.g. mm/internal.h. > +{ > + bool ret = false; > + > + /* > + * Avoid burning cycles with pages that are yet under __free_pages(), > + * or just got freed under us. > + * > + * In case we 'win' a race for a mobile page being freed under us and > + * raise its refcount preventing __free_pages() from doing its job > + * the put_page() at the end of this block will take care of > + * release thi...
2016 Jun 16
2
[PATCH v7 00/12] Support non-lru page migration
...l: [<ffffffff814d69b0>] dump_stack+0x68/0x92 > kernel: [<ffffffff811e9b63>] bad_page+0x158/0x1a2 > kernel: [<ffffffff811e9ca9>] free_pages_check_bad+0xfc/0x101 > kernel: [<ffffffff811ee516>] free_hot_cold_page+0x135/0x5de > kernel: [<ffffffff811eea26>] __free_pages+0x67/0x72 > kernel: [<ffffffff81227c63>] release_freepages+0x13a/0x191 > kernel: [<ffffffff8122b3c2>] compact_zone+0x845/0x1155 > kernel: [<ffffffff8122ab7d>] ? compaction_suitable+0x76/0x76 > kernel: [<ffffffff8122bdb2>] compact_zone_order+0xe0/0x167 > ke...
2016 Jun 16
2
[PATCH v7 00/12] Support non-lru page migration
...l: [<ffffffff814d69b0>] dump_stack+0x68/0x92 > kernel: [<ffffffff811e9b63>] bad_page+0x158/0x1a2 > kernel: [<ffffffff811e9ca9>] free_pages_check_bad+0xfc/0x101 > kernel: [<ffffffff811ee516>] free_hot_cold_page+0x135/0x5de > kernel: [<ffffffff811eea26>] __free_pages+0x67/0x72 > kernel: [<ffffffff81227c63>] release_freepages+0x13a/0x191 > kernel: [<ffffffff8122b3c2>] compact_zone+0x845/0x1155 > kernel: [<ffffffff8122ab7d>] ? compaction_suitable+0x76/0x76 > kernel: [<ffffffff8122bdb2>] compact_zone_order+0xe0/0x167 > ke...
2015 Jul 07
12
[RFCv3 0/5] enable migration of driver pages
From: Gioh Kim <gurugio at hanmail.net> Hello, This series try to enable migration of non-LRU pages, such as driver's page. My ARM-based platform occured severe fragmentation problem after long-term (several days) test. Sometimes even order-3 page allocation failed. It has memory size 512MB ~ 1024MB. 30% ~ 40% memory is consumed for graphic processing and 20~30 memory is reserved for
2015 Jul 07
12
[RFCv3 0/5] enable migration of driver pages
From: Gioh Kim <gurugio at hanmail.net> Hello, This series try to enable migration of non-LRU pages, such as driver's page. My ARM-based platform occured severe fragmentation problem after long-term (several days) test. Sometimes even order-3 page allocation failed. It has memory size 512MB ~ 1024MB. 30% ~ 40% memory is consumed for graphic processing and 20~30 memory is reserved for
2015 Jul 31
1
[PATCH 2/4] mm/compaction: enable mobile-page migration
...abstraction for non-LRU page to migrate but PageBalloon check in here breaks your goal. > +} > + > +static inline bool isolate_mobilepage(struct page *page, isolate_mode_t mode) > +{ > + bool ret = false; > + > + /* > + * Avoid burning cycles with pages that are yet under __free_pages(), > + * or just got freed under us. > + * > + * In case we 'win' a race for a mobile page being freed under us and > + * raise its refcount preventing __free_pages() from doing its job > + * the put_page() at the end of this block will take care of > + * release thi...
2015 Jul 31
1
[PATCH 2/4] mm/compaction: enable mobile-page migration
...abstraction for non-LRU page to migrate but PageBalloon check in here breaks your goal. > +} > + > +static inline bool isolate_mobilepage(struct page *page, isolate_mode_t mode) > +{ > + bool ret = false; > + > + /* > + * Avoid burning cycles with pages that are yet under __free_pages(), > + * or just got freed under us. > + * > + * In case we 'win' a race for a mobile page being freed under us and > + * raise its refcount preventing __free_pages() from doing its job > + * the put_page() at the end of this block will take care of > + * release thi...
2023 Mar 28
1
[PATCH net-next 1/8] virtio_net: mergeable xdp: put old page immediately
...VIRTIO_XDP_REDIR; - if (unlikely(xdp_page != page)) - put_page(page); rcu_read_unlock(); goto xdp_xmit; default: @@ -1321,9 +1321,6 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, goto err_xdp_frags; } err_xdp_frags: - if (unlikely(xdp_page != page)) - __free_pages(xdp_page, 0); - if (xdp_buff_has_frags(&xdp)) { shinfo = xdp_get_shared_info_from_buff(&xdp); for (i = 0; i < shinfo->nr_frags; i++) { -- 2.32.0.3.g01195cf9f
2015 Jul 07
0
[RFCv3 2/5] mm/compaction: enable mobile-page migration
...uct page *page) +{ + return page->mapping && page->mapping->a_ops && + (PageMobile(page) || PageBalloon(page)); +} + +static inline bool isolate_mobilepage(struct page *page, isolate_mode_t mode) +{ + bool ret; + + /* + * Avoid burning cycles with pages that are yet under __free_pages(), + * or just got freed under us. + * + * In case we 'win' a race for a mobile page being freed under us and + * raise its refcount preventing __free_pages() from doing its job + * the put_page() at the end of this block will take care of + * release this page, thus avoiding a nasty...
2015 Jul 13
0
[PATCH 2/4] mm/compaction: enable mobile-page migration
...tatic inline bool mobile_page(struct page *page) +{ + return page->mapping && (PageMobile(page) || PageBalloon(page)); +} + +static inline bool isolate_mobilepage(struct page *page, isolate_mode_t mode) +{ + bool ret = false; + + /* + * Avoid burning cycles with pages that are yet under __free_pages(), + * or just got freed under us. + * + * In case we 'win' a race for a mobile page being freed under us and + * raise its refcount preventing __free_pages() from doing its job + * the put_page() at the end of this block will take care of + * release this page, thus avoiding a nasty...
2023 Mar 31
1
[PATCH net-next 1/8] virtio_net: mergeable xdp: put old page immediately
...t; > default: > @@ -1321,9 +1321,6 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, > goto err_xdp_frags; > } > err_xdp_frags: > - if (unlikely(xdp_page != page)) > - __free_pages(xdp_page, 0); > - > if (xdp_buff_has_frags(&xdp)) { > shinfo = xdp_get_shared_info_from_buff(&xdp); > for (i = 0; i < shinfo->nr_frags; i++) { > -- > 2.32.0.3.g01195cf9f >
2007 Nov 10
1
[PATCH] virtio_pci updates
...p_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN); /* create the vring */ @@ -297,9 +310,7 @@ static struct virtqueue *vp_find_vq(struct virtio_device *vdev, unsigned index, out_activate_queue: iowrite32(0, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN); - kunmap(info->queue); -out_alloc_pages: - __free_pages(info->pages, get_order(info->n_pages)); + kfree(info->queue); out_info: kfree(info); return ERR_PTR(err); @@ -319,10 +330,9 @@ static void vp_del_vq(struct virtqueue *vq) /* Select and deactivate the queue */ iowrite16(info->queue_index, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_S...
2007 Nov 10
1
[PATCH] virtio_pci updates
...p_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN); /* create the vring */ @@ -297,9 +310,7 @@ static struct virtqueue *vp_find_vq(struct virtio_device *vdev, unsigned index, out_activate_queue: iowrite32(0, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN); - kunmap(info->queue); -out_alloc_pages: - __free_pages(info->pages, get_order(info->n_pages)); + kfree(info->queue); out_info: kfree(info); return ERR_PTR(err); @@ -319,10 +330,9 @@ static void vp_del_vq(struct virtqueue *vq) /* Select and deactivate the queue */ iowrite16(info->queue_index, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_S...
2007 Apr 18
0
[PATCH] lguest: Compile hypervisor.S into the lg module directly
...y.segment = LGUEST_CS; printk("lguest: mapped hypervisor at %p\n", hypervisor_vma->addr); @@ -124,10 +134,12 @@ free_vma: free_vma: vunmap(hypervisor_vma->addr); free_pages: - i = ARRAY_SIZE(hype_page); + i = TOTAL_HYPE_PAGES; free_some_pages: for (--i; i >= 0; i--) __free_pages(hype_page[i], 0); + kfree(hype_page); +out: return err; } @@ -136,7 +148,7 @@ static __exit void unmap_hypervisor(void unsigned int i; vunmap(hypervisor_vma->addr); - for (i = 0; i < ARRAY_SIZE(hype_page); i++) + for (i = 0; i < TOTAL_HYPE_PAGES; i++) __free_pages(hype_page[i...