From owner-freebsd-wireless@FreeBSD.ORG Sat Feb 16 23:23:04 2013 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 92CDD190 for ; Sat, 16 Feb 2013 23:23:04 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-wi0-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by mx1.freebsd.org (Postfix) with ESMTP id 2FB01F63 for ; Sat, 16 Feb 2013 23:23:03 +0000 (UTC) Received: by mail-wi0-f177.google.com with SMTP id hm14so2350502wib.10 for ; Sat, 16 Feb 2013 15:22:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=wejPdDjZl/5+L+QFkjYjXD/rQzfR6g6r5UHID2Y5Vg8=; b=dCD+K7SGA/YH3D9E3749fku/YDj38TtZFDb8/Hxd0Ah9nV/gaNYAlrKsGPvManSMOH eVCz9xDK3QL6x2VAAPD6okJOtFq0ymV/ZlAcN0TEDaSt70CLotc+PgijK4qUr6UC/p8K CQVDk++d988337f58bXHCX+aGY8le+rZd24buB6rriztwBTlhkSWJtm5DYFfkObzt9r6 RzbM+PCz0UEei46xEbR0Wa939sTOaboWhPjDogiTMJS+ABWM20hqVVJMRwZ37Z/8AF4m 6EYugNFN7Rb4Otjb0SjuJdRKg+jhqG52ZCw7FBNZ5cTodjOoJDIEQz101/ZWTStdvOt3 VdDA== MIME-Version: 1.0 X-Received: by 10.180.81.164 with SMTP id b4mr10943747wiy.34.1361056977541; Sat, 16 Feb 2013 15:22:57 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.216.236.88 with HTTP; Sat, 16 Feb 2013 15:22:57 -0800 (PST) In-Reply-To: References: Date: Sat, 16 Feb 2013 15:22:57 -0800 X-Google-Sender-Auth: a0BBtQTXf9yYSjZq5iwGGoRVMFY Message-ID: Subject: Re: [RFC] serialising net80211 TX From: Adrian Chadd To: PseudoCylon Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Feb 2013 23:23:04 -0000 Yeah - gluing TX into a single send queue is going to work, but there's definite queuing / QoS issues. You really want the management frames to be able to go out even if there's a _large_ amount of data frames going out. That's a side-issue though. I have a test patch that just wraps the output, mgmt_output and encapsulation/send routines with a TX lock. I can't wrap the whole TX path in a lock because there's some re-entrant behaviour going on (specifically net80211_start -> ampdu check -> send addba -> mgmt_output -> (re) grab TX lock). Thanks, Adrian