From owner-freebsd-net@FreeBSD.ORG Tue Dec 25 01:02:01 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 14C1252A for ; Tue, 25 Dec 2012 01:02:01 +0000 (UTC) (envelope-from rysto32@gmail.com) Received: from mail-vc0-f175.google.com (mail-vc0-f175.google.com [209.85.220.175]) by mx1.freebsd.org (Postfix) with ESMTP id B65AE8FC0C for ; Tue, 25 Dec 2012 01:02:00 +0000 (UTC) Received: by mail-vc0-f175.google.com with SMTP id fy7so7696078vcb.6 for ; Mon, 24 Dec 2012 17:01:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=B3gsJxMrzqn+cfpVWoKcbp9E+3HXmdL584DGGi4+zJg=; b=duIUXIp1LUUxjOEe6asKPKYuJEIvxYjzDv/uoAOoZFgETqB8YRUoM7X+iwM8GireA6 g/4nOxHX4Zsu96t/w9gXn0wLh68q5adLJBO7aqJcjrAdcV3djVaB8Ot1L0lNrlk9D9Ff 4CEkevtMJq2e/cuGdz08+KM5/j5TpkZ8zqkWj3JswgsMS+1DjbhWaLAdL3eLgn8Vs5Na EzEe4Fy0PruoBKYHrjDQPU/COcmrVb3lw6cIF8Kg5nDvyhLg10jeTAFo33NmcqFl7Dcg Elpp4KuOm5Vfz0ftAw+oHDb+c83yq4nDBKIOkDKMAWmhLcXeheWWBMO6zoFyf2GBeHF4 GBfA== MIME-Version: 1.0 Received: by 10.52.90.241 with SMTP id bz17mr30729410vdb.40.1356397314542; Mon, 24 Dec 2012 17:01:54 -0800 (PST) Received: by 10.58.161.83 with HTTP; Mon, 24 Dec 2012 17:01:54 -0800 (PST) Received: by 10.58.161.83 with HTTP; Mon, 24 Dec 2012 17:01:54 -0800 (PST) In-Reply-To: <50D7F61A.5020304@extrim.it> References: <50D45282.5080708@extrim.it> <50D7F61A.5020304@extrim.it> Date: Mon, 24 Dec 2012 20:01:54 -0500 Message-ID: Subject: Re: 'no buffer space available' after switch goes down on freeBSD 7.3 From: Ryan Stone To: Tsaregorodtsev Denis Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: freebsd-net X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Dec 2012 01:02:01 -0000 I don't believe that this is fixed in later versions of the driver. The problem is that when the interface loses link the transmit queue can fill up. Once that happens the driver never gets any more calls from the network stack to make it send packets. Pinging the interface fixes it because the driver processes rx.and tx from the same context, so when it receives a packet it starts transmitting again. The patch that I sent fixes the problem by forcing the driver to process the tx queue when ever links goes from down to up.