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