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