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...