search for: data_end

Displaying 20 results from an estimated 73 matches for "data_end".

2007 Feb 27
7
[Xen-ia64-devel] [PATCH 0/3][IA64] Accelerate IDE PIO on HVM/IA64
Hi, This set of patches remarkably accelerates IDE PIO on HVM/IA64. I got a throughput of 2.11MB/sec in disk read performance. Without it, it was only 64kB/sec. I posted the prototype once. http://lists.xensource.com/archives/html/xen-devel/2006-12/msg00077.html The basic idea is to add a buffering mechanism in a hypervisor. I know this approach is not sophisticated. But there is no other good
2019 Jul 24
0
virtio BPF offers incorrect packet length
Hi, I suspect that the virtio network driver calls some skb BPF programs with skb->data_end - skb->data != skb->len, but only for forwarded packets. For instance, the attached sched_cls tc program prints skb->data, skb->data_end and skb->len for each packet: <idle>-0 [000] ..s. 491.561727: 0: data: 3110080576 data_end: 3110080704 len: 262 &...
2020 May 06
6
[PATCH net-next 1/2] virtio-net: don't reserve space for vnet header for XDP
...eceive_small(struct net_device *dev, page = xdp_page; } - xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; - xdp.data = xdp.data_hard_start + xdp_headroom; + xdp.data_hard_start = buf + VIRTNET_RX_PAD; + xdp.data = xdp.data_hard_start + xdp_headroom + vi->hdr_len; xdp.data_end = xdp.data + len; xdp.data_meta = xdp.data; xdp.rxq = &rq->xdp_rxq; @@ -845,7 +845,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, * the descriptor on if we get an XDP_TX return code. */ data = page_address(xdp_page) + offset; - xdp.data_hard_start = d...
2020 May 06
6
[PATCH net-next 1/2] virtio-net: don't reserve space for vnet header for XDP
...eceive_small(struct net_device *dev, page = xdp_page; } - xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; - xdp.data = xdp.data_hard_start + xdp_headroom; + xdp.data_hard_start = buf + VIRTNET_RX_PAD; + xdp.data = xdp.data_hard_start + xdp_headroom + vi->hdr_len; xdp.data_end = xdp.data + len; xdp.data_meta = xdp.data; xdp.rxq = &rq->xdp_rxq; @@ -845,7 +845,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, * the descriptor on if we get an XDP_TX return code. */ data = page_address(xdp_page) + offset; - xdp.data_hard_start = d...
2018 Sep 06
2
[PATCH net-next 06/11] tuntap: split out XDP logic
...mp; !*skb_xdp) { > + if (xdp_prog) { > struct xdp_buff xdp; > - void *orig_data; > u32 act; > > xdp.data_hard_start = buf; > @@ -1695,33 +1732,14 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun, > xdp_set_data_meta_invalid(&xdp); > xdp.data_end = xdp.data + len; > xdp.rxq = &tfile->xdp_rxq; > - orig_data = xdp.data; > - act = bpf_prog_run_xdp(xdp_prog, &xdp); > - > - switch (act) { > - case XDP_REDIRECT: > - err = xdp_do_redirect(tun->dev, &xdp, xdp_prog); > - xdp_do_flush_map(); > -...
2018 Sep 06
2
[PATCH net-next 06/11] tuntap: split out XDP logic
...mp; !*skb_xdp) { > + if (xdp_prog) { > struct xdp_buff xdp; > - void *orig_data; > u32 act; > > xdp.data_hard_start = buf; > @@ -1695,33 +1732,14 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun, > xdp_set_data_meta_invalid(&xdp); > xdp.data_end = xdp.data + len; > xdp.rxq = &tfile->xdp_rxq; > - orig_data = xdp.data; > - act = bpf_prog_run_xdp(xdp_prog, &xdp); > - > - switch (act) { > - case XDP_REDIRECT: > - err = xdp_do_redirect(tun->dev, &xdp, xdp_prog); > - xdp_do_flush_map(); > -...
2016 Dec 23
0
[PATCH net 9/9] virtio-net: XDP support for small buffers
...nd leave csum up to XDP layers */ - hdr = xdp->data; - memset(hdr, 0, vi->hdr_len); + if (vi->mergeable_rx_bufs) { + /* Zero header and leave csum up to XDP layers */ + hdr = xdp->data; + memset(hdr, 0, vi->hdr_len); + + num_sg = 1; + sg_init_one(sq->sg, xdp->data, xdp->data_end - xdp->data); + } else { /* small buffer */ + struct sk_buff *skb = data; - num_sg = 1; - sg_init_one(sq->sg, xdp->data, xdp->data_end - xdp->data); + /* Zero header and leave csum up to XDP layers */ + hdr = skb_vnet_hdr(skb); + memset(hdr, 0, vi->hdr_len); + + num_sg = 2;...
2020 May 06
2
[PATCH net-next 1/2] virtio-net: don't reserve space for vnet header for XDP
...} >> >> - xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; >> - xdp.data = xdp.data_hard_start + xdp_headroom; >> + xdp.data_hard_start = buf + VIRTNET_RX_PAD; >> + xdp.data = xdp.data_hard_start + xdp_headroom + vi->hdr_len; >> xdp.data_end = xdp.data + len; >> xdp.data_meta = xdp.data; >> xdp.rxq = &rq->xdp_rxq; >> @@ -845,7 +845,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, >> * the descriptor on if we get an XDP_TX return code. >> */ >> data =...
2020 May 06
2
[PATCH net-next 1/2] virtio-net: don't reserve space for vnet header for XDP
...} >> >> - xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; >> - xdp.data = xdp.data_hard_start + xdp_headroom; >> + xdp.data_hard_start = buf + VIRTNET_RX_PAD; >> + xdp.data = xdp.data_hard_start + xdp_headroom + vi->hdr_len; >> xdp.data_end = xdp.data + len; >> xdp.data_meta = xdp.data; >> xdp.rxq = &rq->xdp_rxq; >> @@ -845,7 +845,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, >> * the descriptor on if we get an XDP_TX return code. >> */ >> data =...
2017 Dec 31
1
[bpf-next V3 PATCH 11/14] virtio_net: setup xdp_rxq_info
...ame of this receive queue: input.$index */ char name[40]; + + struct xdp_rxq_info xdp_rxq; }; struct virtnet_info { @@ -559,6 +562,7 @@ static struct sk_buff *receive_small(struct net_device *dev, xdp.data = xdp.data_hard_start + xdp_headroom; xdp_set_data_meta_invalid(&xdp); xdp.data_end = xdp.data + len; + xdp.rxq = &rq->xdp_rxq; orig_data = xdp.data; act = bpf_prog_run_xdp(xdp_prog, &xdp); @@ -692,6 +696,8 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, xdp.data = data + vi->hdr_len; xdp_set_data_meta_invalid(&xdp); xdp.data...
2018 Sep 06
0
[PATCH net-next 06/11] tuntap: split out XDP logic
...nce(tun->xdp_prog); - if (xdp_prog && !*skb_xdp) { + if (xdp_prog) { struct xdp_buff xdp; - void *orig_data; u32 act; xdp.data_hard_start = buf; @@ -1695,33 +1732,14 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun, xdp_set_data_meta_invalid(&xdp); xdp.data_end = xdp.data + len; xdp.rxq = &tfile->xdp_rxq; - orig_data = xdp.data; - act = bpf_prog_run_xdp(xdp_prog, &xdp); - - switch (act) { - case XDP_REDIRECT: - err = xdp_do_redirect(tun->dev, &xdp, xdp_prog); - xdp_do_flush_map(); - if (err) - goto err_xdp; - goto out;...
2020 May 06
2
[PATCH net-next 1/2] virtio-net: don't reserve space for vnet header for XDP
...} >> >> - xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; >> - xdp.data = xdp.data_hard_start + xdp_headroom; >> + xdp.data_hard_start = buf + VIRTNET_RX_PAD; >> + xdp.data = xdp.data_hard_start + xdp_headroom + vi->hdr_len; >> xdp.data_end = xdp.data + len; >> xdp.data_meta = xdp.data; >> xdp.rxq = &rq->xdp_rxq; >> @@ -845,7 +845,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, >> * the descriptor on if we get an XDP_TX return code. >> */ >> data =...
2020 May 06
2
[PATCH net-next 1/2] virtio-net: don't reserve space for vnet header for XDP
...} >> >> - xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; >> - xdp.data = xdp.data_hard_start + xdp_headroom; >> + xdp.data_hard_start = buf + VIRTNET_RX_PAD; >> + xdp.data = xdp.data_hard_start + xdp_headroom + vi->hdr_len; >> xdp.data_end = xdp.data + len; >> xdp.data_meta = xdp.data; >> xdp.rxq = &rq->xdp_rxq; >> @@ -845,7 +845,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, >> * the descriptor on if we get an XDP_TX return code. >> */ >> data =...
2018 Sep 07
0
[PATCH net-next 06/11] tuntap: split out XDP logic
...{ >> struct xdp_buff xdp; >> - void *orig_data; >> u32 act; >> >> xdp.data_hard_start = buf; >> @@ -1695,33 +1732,14 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun, >> xdp_set_data_meta_invalid(&xdp); >> xdp.data_end = xdp.data + len; >> xdp.rxq = &tfile->xdp_rxq; >> - orig_data = xdp.data; >> - act = bpf_prog_run_xdp(xdp_prog, &xdp); >> - >> - switch (act) { >> - case XDP_REDIRECT: >> - err = xdp_do_redirect(tun->dev, &xdp, xdp_prog); >&g...
2013 Sep 24
1
[LLVMdev] possible dwarf regression
In compiling perlbench in SPEC2006 today, I get the following asm code: .4byte ($debug_loc2280) .4byte 1 .4byte PerlIO_fd_refcnt $set1406 = ($.bss_end)-PerlIO_fd_refcnt .4byte ($set1406) .4byte PerlIO_perlio $set1407 = ($.data_end)-PerlIO_perlio .4byte ($set1407) .4byte ($func_begin0) $set1408 = ($.text_end)-($func_begin0) .4byte ($set1408) Gas complains: perlio.s: Assembler messages: perlio.s:43549: Error: operation combines symbols in different segments clang: error: assembler command failed with...
2020 May 06
0
[PATCH net-next 1/2] virtio-net: don't reserve space for vnet header for XDP
...; page = xdp_page; > } > > - xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; > - xdp.data = xdp.data_hard_start + xdp_headroom; > + xdp.data_hard_start = buf + VIRTNET_RX_PAD; > + xdp.data = xdp.data_hard_start + xdp_headroom + vi->hdr_len; > xdp.data_end = xdp.data + len; > xdp.data_meta = xdp.data; > xdp.rxq = &rq->xdp_rxq; > @@ -845,7 +845,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, > * the descriptor on if we get an XDP_TX return code. > */ > data = page_address(xdp_page) + offs...
2020 May 06
0
[PATCH net-next 1/2] virtio-net: don't reserve space for vnet header for XDP
...gt; - xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; > > > - xdp.data = xdp.data_hard_start + xdp_headroom; > > > + xdp.data_hard_start = buf + VIRTNET_RX_PAD; > > > + xdp.data = xdp.data_hard_start + xdp_headroom + vi->hdr_len; > > > xdp.data_end = xdp.data + len; > > > xdp.data_meta = xdp.data; > > > xdp.rxq = &rq->xdp_rxq; > > > @@ -845,7 +845,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, > > > * the descriptor on if we get an XDP_TX return code. > > &gt...
2018 Jan 03
0
[bpf-next V4 PATCH 11/14] virtio_net: setup xdp_rxq_info
...ame of this receive queue: input.$index */ char name[40]; + + struct xdp_rxq_info xdp_rxq; }; struct virtnet_info { @@ -559,6 +562,7 @@ static struct sk_buff *receive_small(struct net_device *dev, xdp.data = xdp.data_hard_start + xdp_headroom; xdp_set_data_meta_invalid(&xdp); xdp.data_end = xdp.data + len; + xdp.rxq = &rq->xdp_rxq; orig_data = xdp.data; act = bpf_prog_run_xdp(xdp_prog, &xdp); @@ -692,6 +696,8 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, xdp.data = data + vi->hdr_len; xdp_set_data_meta_invalid(&xdp); xdp.data...
2020 May 06
0
[PATCH net-next 1/2] virtio-net: don't reserve space for vnet header for XDP
...; page = xdp_page; > } > > - xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; > - xdp.data = xdp.data_hard_start + xdp_headroom; > + xdp.data_hard_start = buf + VIRTNET_RX_PAD; > + xdp.data = xdp.data_hard_start + xdp_headroom + vi->hdr_len; > xdp.data_end = xdp.data + len; > xdp.data_meta = xdp.data; > xdp.rxq = &rq->xdp_rxq; > @@ -845,7 +845,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, > * the descriptor on if we get an XDP_TX return code. > */ > data = page_address(xdp_page) + offs...
2020 May 06
0
[PATCH net-next 1/2] virtio-net: don't reserve space for vnet header for XDP
...gt; - xdp.data_hard_start = buf + VIRTNET_RX_PAD + vi->hdr_len; > > > - xdp.data = xdp.data_hard_start + xdp_headroom; > > > + xdp.data_hard_start = buf + VIRTNET_RX_PAD; > > > + xdp.data = xdp.data_hard_start + xdp_headroom + vi->hdr_len; > > > xdp.data_end = xdp.data + len; > > > xdp.data_meta = xdp.data; > > > xdp.rxq = &rq->xdp_rxq; > > > @@ -845,7 +845,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev, > > > * the descriptor on if we get an XDP_TX return code. > > &gt...