From owner-freebsd-net@FreeBSD.ORG Mon Sep 17 17:45:13 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4275E106564A; Mon, 17 Sep 2012 17:45:13 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id 0EDAD8FC08; Mon, 17 Sep 2012 17:45:12 +0000 (UTC) Received: by pbbrp2 with SMTP id rp2so10183005pbb.13 for ; Mon, 17 Sep 2012 10:45:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=viJvVX16tiayV6P2uYnBEHYxJ3Q15NlcE3cQgQK3mqg=; b=UNwp3odszTEU01reHyBmuLvqQ3CnPJJ1FbkjLY3Tr06DEfOkF8IuY+AqQGqMfhwVgz JYg9PR7Xdh+R5P1LwV9P/0aICBe583abIQBbzNKIlAabQvoVOu7e5Uz8hmP76if63Ug0 G+mRm8Uw/rzRcISH2z/BfarY3oAef4j+c8oBjGH9Ud557Oovqg1XMXUAZZRLky333484 MpJHgUaK/8ULFBOPBQ5P+2QwMwTdhKApb+OPQsCp2Xng0At4Ijc4ydho4mna8Hgoen9u htAZlXra77wssyUBagUqhAOs/ydS/6g/uRXudQb9g6QbHKq9bR7bGT5NnEFp7P659KAi pPaQ== MIME-Version: 1.0 Received: by 10.68.189.70 with SMTP id gg6mr23996936pbc.125.1347903912291; Mon, 17 Sep 2012 10:45:12 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.68.36.106 with HTTP; Mon, 17 Sep 2012 10:45:12 -0700 (PDT) In-Reply-To: <201209171316.45029.jhb@freebsd.org> References: <201209171316.45029.jhb@freebsd.org> Date: Mon, 17 Sep 2012 10:45:12 -0700 X-Google-Sender-Auth: KGGbdjWExcwKBnhBLcakggKJyi8 Message-ID: From: Adrian Chadd To: John Baldwin Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-net@freebsd.org, Ryan Stone Subject: Re: What's the latest on fixing IFF_DRV_OACTIVE/if_start/etc? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Sep 2012 17:45:13 -0000 On 17 September 2012 10:16, John Baldwin wrote: > I think for if_bridge the fix is that it no longer uses if_start. :) :) > For real hardware you will get some sort of TX completion interrupt that will > restart the transmit queue. Virtual software-only interfaces such as vlan(4) > and if_bridge(4) don't have that luxury though, and the best bet for them is > to probably have them use if_transmit instead. vlan(4) and if_bridge(4) are > already fixed for that (if_bridge was only fixed a week or so ago in HEAD). I'm still not convinced that going the if_start route (with process-to-completion) is going to work well when forwarding gobs of packets on anything bar ${BIG_IRON}, but that aside.. It may be nice to introduce a virtual TX completion callback? Ie, a child driver could signal that it's successfully drained its TX queue, notifying any parent drivers that they can send more? adrian