search for: alloc_skb

Displaying 20 results from an estimated 131 matches for "alloc_skb".

2004 Sep 29
3
Oops from netlink or what?
...0 00000645 c40de2e0 c40de2e0 c61e00c0 00000645 Sep 27 19:02:58 rebecca kernel: Call Trace: Sep 27 19:02:58 rebecca kernel: [tc_dump_tfilter+180/608] tc_dump_tfilter+0xb4/0x260 Sep 27 19:02:58 rebecca kernel: [handle_mm_fault+224/336] handle_mm_fault+0xe0/0x150 Sep 27 19:02:58 rebecca kernel: [alloc_skb+71/240] alloc_skb+0x47/0xf0 Sep 27 19:02:58 rebecca kernel: [netlink_dump+89/464] netlink_dump+0x59/0x1d0 Sep 27 19:02:58 rebecca kernel: [netlink_dump_start+167/240] netlink_dump_start+0xa7/0xf0 Sep 27 19:02:58 rebecca kernel: [rtnetlink_rcv+911/976] rtnetlink_rcv+0x38f/0x3d0 Sep 27 19:02:58...
2013 Nov 19
5
[PATCH net] virtio-net: fix page refcnt leaking when fail to allocate frag skb
...gt; > while (--num_buf) { > buf = virtqueue_get_buf(rq->vq, &len); > if (!buf) > break; > put_page(virt_to_head_page(buf)); > } > > ? > > Let me explain what worries me in your suggestion: struct sk_buff *nskb = alloc_skb(0, GFP_ATOMIC); if (unlikely(!nskb)) { head_skb->dev->stats.rx_dropped++; return -ENOMEM; } is this the failure case we are talking about? I think this is a symprom of a larger pr...
2013 Nov 19
5
[PATCH net] virtio-net: fix page refcnt leaking when fail to allocate frag skb
...gt; > while (--num_buf) { > buf = virtqueue_get_buf(rq->vq, &len); > if (!buf) > break; > put_page(virt_to_head_page(buf)); > } > > ? > > Let me explain what worries me in your suggestion: struct sk_buff *nskb = alloc_skb(0, GFP_ATOMIC); if (unlikely(!nskb)) { head_skb->dev->stats.rx_dropped++; return -ENOMEM; } is this the failure case we are talking about? I think this is a symprom of a larger pr...
2019 Jul 17
0
[PATCH v4 4/5] vhost/vsock: split packets to send using multiple buffers
...tio_transport_common.c +++ b/net/vmw_vsock/virtio_transport_common.c @@ -97,8 +97,17 @@ static struct sk_buff *virtio_transport_build_skb(void *opaque) struct virtio_vsock_pkt *pkt = opaque; struct af_vsockmon_hdr *hdr; struct sk_buff *skb; + size_t payload_len; + void *payload_buf; - skb = alloc_skb(sizeof(*hdr) + sizeof(pkt->hdr) + pkt->len, + /* A packet could be split to fit the RX buffer, so we can retrieve + * the payload length from the header and the buffer pointer taking + * care of the offset in the original packet. + */ + payload_len = le32_to_cpu(pkt->hdr.len); + payload...
2018 Nov 15
7
[RFC] Discuss about an new idea "Vsock over Virtio-net"
...-------+ | | +------------------------------------------------------------------+ |VSOCK Core Module | |ops->sendmsg; (vsock_stream_sendmsg) | | -> alloc_skb; /* it will packet a skb buffer, and include vsock | | * hdr and payload */ | | -> dev_queue_xmit(); /* it will call start_xmit(virtio-net.c) */| |vsock hdr and payload, and then call | +-----------------------------------...
2018 Nov 15
7
[RFC] Discuss about an new idea "Vsock over Virtio-net"
...-------+ | | +------------------------------------------------------------------+ |VSOCK Core Module | |ops->sendmsg; (vsock_stream_sendmsg) | | -> alloc_skb; /* it will packet a skb buffer, and include vsock | | * hdr and payload */ | | -> dev_queue_xmit(); /* it will call start_xmit(virtio-net.c) */| |vsock hdr and payload, and then call | +-----------------------------------...
2005 Nov 09
1
kernel BUG at arch/xen/i386/mm/hypervisor.c:354, (xen_create _contiguous_region)!
...x360 Ä<c026761e>Ü net_rx_action+0x13e/0x220 Ä<c01072d9>Ü skbuff_ctor+0x69/0x70 Ä<c014d965>Ü cache_init_objs+0x55/0x90 Ä<c014db8c>Ü cache_grow+0x13c/0x240 Ä<c014deb6>Ü cache_alloc_refill+0x226/0x260 Ä<c014e14c>Ü kmem_cache_alloc+0x9c/0xb0 Ä<c02601cd>Ü alloc_skb_from_cache+0x4d/0x100 Ä<c01071cb>Ü alloc_skb+0x9b/0xc0 Ä<c025ee90>Ü sock_alloc_send_pskb+0xc0/0x1d0 Ä<c025efcd>Ü sock_alloc_send_skb+0x2d/0x40 Ä<c02aff19>Ü unix_stream_sendmsg+0x199/0x470 Ä<c02c52a2>Ü schedule+0x3f2/0x780 Ä<c025be31>Ü sock_aio_write+0x101/0...
2008 Apr 18
4
[0/6] [NET]: virtio SG/TSO patches
Hi: Here are the patches I used for testing KVM with virtio-net using TSO. There are three patches for the tun device which are basically Rusty's patches with the mmap turned into copying (for correctness). Two patches are for the virtio-net frontend, one required to support receiving SG/TSO, and the other useful for testing SG per se. The other patch is to the KVM backend to make all this
2008 Apr 18
4
[0/6] [NET]: virtio SG/TSO patches
Hi: Here are the patches I used for testing KVM with virtio-net using TSO. There are three patches for the tun device which are basically Rusty's patches with the mmap turned into copying (for correctness). Two patches are for the virtio-net frontend, one required to support receiving SG/TSO, and the other useful for testing SG per se. The other patch is to the KVM backend to make all this
2008 Jan 23
1
[PATCH 1/3] Cleanup and simplify virtnet header
1) Turn GSO on virtio net into an all-or-nothing (keep checksumming separate). Having multiple bits is a pain: if you can't support something you should handle it in software, which is still a performance win. 2) Make VIRTIO_NET_HDR_GSO_ECN a flag in the header, so it can apply to IPv6 or v4. 3) Rename VIRTIO_NET_F_NO_CSUM to VIRTIO_NET_F_CSUM (ie. means we do checksumming). 4)
2008 Jan 23
1
[PATCH 1/3] Cleanup and simplify virtnet header
1) Turn GSO on virtio net into an all-or-nothing (keep checksumming separate). Having multiple bits is a pain: if you can't support something you should handle it in software, which is still a performance win. 2) Make VIRTIO_NET_HDR_GSO_ECN a flag in the header, so it can apply to IPv6 or v4. 3) Rename VIRTIO_NET_F_NO_CSUM to VIRTIO_NET_F_CSUM (ie. means we do checksumming). 4)
2018 Nov 15
3
[RFC] Discuss about an new idea "Vsock over Virtio-net"
...gt;> | >> +------------------------------------------------------------------+ >> |VSOCK Core Module | >> |ops->sendmsg; (vsock_stream_sendmsg) | >> | -> alloc_skb; /* it will packet a skb buffer, and include vsock | >> | * hdr and payload */ | >> | -> dev_queue_xmit(); /* it will call start_xmit(virtio-net.c) */| >> |vsock hdr and payload, and then call | >>...
2018 Nov 15
3
[RFC] Discuss about an new idea "Vsock over Virtio-net"
...gt;> | >> +------------------------------------------------------------------+ >> |VSOCK Core Module | >> |ops->sendmsg; (vsock_stream_sendmsg) | >> | -> alloc_skb; /* it will packet a skb buffer, and include vsock | >> | * hdr and payload */ | >> | -> dev_queue_xmit(); /* it will call start_xmit(virtio-net.c) */| >> |vsock hdr and payload, and then call | >>...
2019 Jul 17
2
[PATCH v4 4/5] vhost/vsock: split packets to send using multiple buffers
...ck/virtio_transport_common.c > @@ -97,8 +97,17 @@ static struct sk_buff *virtio_transport_build_skb(void *opaque) > struct virtio_vsock_pkt *pkt = opaque; > struct af_vsockmon_hdr *hdr; > struct sk_buff *skb; > + size_t payload_len; > + void *payload_buf; > > - skb = alloc_skb(sizeof(*hdr) + sizeof(pkt->hdr) + pkt->len, > + /* A packet could be split to fit the RX buffer, so we can retrieve > + * the payload length from the header and the buffer pointer taking > + * care of the offset in the original packet. > + */ > + payload_len = le32_to_cpu(pk...
2019 Jul 17
2
[PATCH v4 4/5] vhost/vsock: split packets to send using multiple buffers
...ck/virtio_transport_common.c > @@ -97,8 +97,17 @@ static struct sk_buff *virtio_transport_build_skb(void *opaque) > struct virtio_vsock_pkt *pkt = opaque; > struct af_vsockmon_hdr *hdr; > struct sk_buff *skb; > + size_t payload_len; > + void *payload_buf; > > - skb = alloc_skb(sizeof(*hdr) + sizeof(pkt->hdr) + pkt->len, > + /* A packet could be split to fit the RX buffer, so we can retrieve > + * the payload length from the header and the buffer pointer taking > + * care of the offset in the original packet. > + */ > + payload_len = le32_to_cpu(pk...
2013 Aug 24
5
[Bug 847] New: Owner matching fails on listening socket
https://bugzilla.netfilter.org/show_bug.cgi?id=847 Summary: Owner matching fails on listening socket Product: netfilter/iptables Version: unspecified Platform: x86_64 OS/Version: Debian GNU/Linux Status: NEW Severity: enhancement Priority: P5 Component: ip_tables (kernel) AssignedTo:
2013 Nov 19
4
[PATCH net] virtio-net: fix page refcnt leaking when fail to allocate frag skb
...s/net/virtio_net.c @@ -322,9 +322,11 @@ static int receive_mergeable(struct receive_queue *rq, struct sk_buff *head_skb) head_skb->dev->name); len = MERGE_BUFFER_LEN; } + page = virt_to_head_page(buf); if (unlikely(num_skb_frags == MAX_SKB_FRAGS)) { struct sk_buff *nskb = alloc_skb(0, GFP_ATOMIC); if (unlikely(!nskb)) { + put_page(page); head_skb->dev->stats.rx_dropped++; return -ENOMEM; } @@ -341,7 +343,6 @@ static int receive_mergeable(struct receive_queue *rq, struct sk_buff *head_skb) head_skb->len += len; head_skb->truesize += MER...
2013 Nov 19
4
[PATCH net] virtio-net: fix page refcnt leaking when fail to allocate frag skb
...s/net/virtio_net.c @@ -322,9 +322,11 @@ static int receive_mergeable(struct receive_queue *rq, struct sk_buff *head_skb) head_skb->dev->name); len = MERGE_BUFFER_LEN; } + page = virt_to_head_page(buf); if (unlikely(num_skb_frags == MAX_SKB_FRAGS)) { struct sk_buff *nskb = alloc_skb(0, GFP_ATOMIC); if (unlikely(!nskb)) { + put_page(page); head_skb->dev->stats.rx_dropped++; return -ENOMEM; } @@ -341,7 +343,6 @@ static int receive_mergeable(struct receive_queue *rq, struct sk_buff *head_skb) head_skb->len += len; head_skb->truesize += MER...
2013 Nov 12
12
[PATCH net-next 1/4] virtio-net: mergeable buffer size should include virtio-net header
...MAX_PACKET_LEN)) { + if (unlikely(len > MERGE_BUFFER_LEN)) { pr_debug("%s: rx error: merge buffer too long\n", head_skb->dev->name); - len = MAX_PACKET_LEN; + len = MERGE_BUFFER_LEN; } if (unlikely(num_skb_frags == MAX_SKB_FRAGS)) { struct sk_buff *nskb = alloc_skb(0, GFP_ATOMIC); @@ -336,18 +339,17 @@ static int receive_mergeable(struct receive_queue *rq, struct sk_buff *head_skb) if (curr_skb != head_skb) { head_skb->data_len += len; head_skb->len += len; - head_skb->truesize += MAX_PACKET_LEN; + head_skb->truesize += MERGE_BUFFER...
2013 Nov 12
12
[PATCH net-next 1/4] virtio-net: mergeable buffer size should include virtio-net header
...MAX_PACKET_LEN)) { + if (unlikely(len > MERGE_BUFFER_LEN)) { pr_debug("%s: rx error: merge buffer too long\n", head_skb->dev->name); - len = MAX_PACKET_LEN; + len = MERGE_BUFFER_LEN; } if (unlikely(num_skb_frags == MAX_SKB_FRAGS)) { struct sk_buff *nskb = alloc_skb(0, GFP_ATOMIC); @@ -336,18 +339,17 @@ static int receive_mergeable(struct receive_queue *rq, struct sk_buff *head_skb) if (curr_skb != head_skb) { head_skb->data_len += len; head_skb->len += len; - head_skb->truesize += MAX_PACKET_LEN; + head_skb->truesize += MERGE_BUFFER...