All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hagen Paul Pfeifer <hagen@jauu.net>
To: Ben Greear <greearb@candelatech.com>
Cc: Arnd Bergmann <arnd@arndb.de>, netdev@vger.kernel.org
Subject: Re: [net-next 2/2] macvlan:  Enable qdisc backoff logic.
Date: Wed, 25 Aug 2010 21:38:00 +0200	[thread overview]
Message-ID: <20100825193800.GA9118@nuttenaction> (raw)
In-Reply-To: <4C756EAF.9090704@candelatech.com>

* Ben Greear | 2010-08-25 12:27:43 [-0700]:

>>I suppose we need to do something in macvtap to handle this as
>>well, right? A guest trying to send a frame through qemu
>>or vhost net into macvtap needs to be prevented from sending
>>more when we get into this path. Right now, we just ignore
>>the return value of macvlan_start_xmit.
>
>I have a similar, though slightly more complex, patch for 802.1q
>vlans, but I haven't looked at macvtap at all.
>
>If these two patches are accepted, I'll post the .1q patch as well.

I do not completely understand the benefit for macvlan. I think this BUSY logic
shifts functionality and make upper level code more complicated (e.g. handle
NET_XMIT_SUCCESS and skb bookkeeping). At the end it boils down to two
scenarios:

a) the congestion is temporary
b) the congestion is for a longer period

For a), a increased link queue length can bridge a longer period too. There is
no need to shift the logic in the upper layer. For b): at the end the upper
layer must also drop skb's - there is no alternative. Or require qemu other,
special handling? (e.g. sleep until the queue is free again).

For case a) the shift in the upper layers _can_ be superior because it can
dynamically increase the skb buffer, whatever. But why not implementing a more
clever, dynamic fifo. E.g. pfifo_dynamic (not really serious)? Is this
functionality qemu centric or are there any other use cases?

Hagen


  reply	other threads:[~2010-08-25 19:38 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-25 19:00 [net-next 1/2] qdisc: Allow qdiscs to provide backpressure up the stack Ben Greear
2010-08-25 19:00 ` [net-next 2/2] macvlan: Enable qdisc backoff logic Ben Greear
2010-08-25 19:24   ` Arnd Bergmann
2010-08-25 19:27     ` Ben Greear
2010-08-25 19:38       ` Hagen Paul Pfeifer [this message]
2010-08-25 19:49         ` Ben Greear
2010-08-25 19:59       ` Arnd Bergmann
2010-08-25 20:49         ` Ben Greear
2010-08-26 13:55           ` Arnd Bergmann
2010-08-26 15:33             ` Ben Greear
2010-08-26 17:45             ` Ben Greear
2010-08-27 13:16               ` Arnd Bergmann
2010-08-25 20:44 ` [net-next 1/2] qdisc: Allow qdiscs to provide backpressure up the stack Stephen Hemminger
2010-08-25 20:56   ` Ben Greear
2010-08-26 22:59 ` David Miller
2010-08-27  4:14   ` Ben Greear
2010-08-27  4:34     ` David Miller
2010-08-27  5:22       ` Ben Greear
2010-08-27  5:36         ` David Miller
2010-08-27  5:58           ` Ben Greear
2010-08-27  6:11             ` David Miller
2010-08-27 15:26               ` Ben Greear
2010-08-27 15:59                 ` Eric Dumazet
2010-08-27 17:00                   ` Ben Greear

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100825193800.GA9118@nuttenaction \
    --to=hagen@jauu.net \
    --cc=arnd@arndb.de \
    --cc=greearb@candelatech.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.