Re: [PATCH 3/3] Virtio draft IV: the net driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am Mittwoch, 4. Juli 2007 schrieb Rusty Russell:
> +static void try_fill_recv(struct virtnet_info *vi)
> +{
> +	struct sk_buff *skb;
> +	struct scatterlist sg[MAX_SKB_FRAGS];
> +	int num, err;
> +
> +	for (;;) {
> +		skb = netdev_alloc_skb(vi->ndev, MAX_PACKET_LEN);
> +		if (unlikely(!skb))
> +			break;
> +
> +		skb_put(skb, MAX_PACKET_LEN);
> +		num = skb_to_sgvec(skb, sg, 0, skb->len);
> +		skb_queue_head(&vi->recv, skb);
> +
> +		err = vi->vq_recv->ops->add_buf(vi->vq_recv, sg, 0, num, skb);
> +		if (err) {
> +			skb_unlink(skb, &vi->recv);
> +			kfree_skb(skb);
> +			break;
> +		}
> +		vi->num++;
> +	}

Hmm, so it allocates skbs until oom or until add_buf fails, right?

Do you expect the add_buf call to fail if we have enough buffers? Who defines 
the amount of buffers we can add via add_buf?


-- 
IBM Deutschland Entwicklung GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Herbert Kircher 
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/virtualization

[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux