From owner-freebsd-wireless@FreeBSD.ORG Fri Feb 15 23:03:14 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 BB35C6F2 for ; Fri, 15 Feb 2013 23:03:14 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by mx1.freebsd.org (Postfix) with ESMTP id 51B22CB5 for ; Fri, 15 Feb 2013 23:03:13 +0000 (UTC) Received: by mail-wi0-f176.google.com with SMTP id hm14so1733363wib.3 for ; Fri, 15 Feb 2013 15:03:13 -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=pPOsVJTmuFqRYSH7meBa1CZQ2tG66sPDxCFFXc9UBLg=; b=rz4Q75BVBLoV0th6+TYfeKahjwAzFia9Le+lVJ/TcYoUDgAfiWcMYCxoN2mWZ9l/Kh uQT2dlz8zt2NwQsbAvhlT8HCqtElBP43HUCiCytGYEiiOYKKjiS//r9X4DVDnb4KzsrM 4MeZXrRiMKeMARQKyca3P+l5lav//X8OKzRBRdJmJRbJrlt3i4UN0AjhXoUVTIfapn0o LvFy98XxMeh+s+jmtW4KEbhy6nMtnzUXwIUP3Sb22w8GxzSByi0G2dlgMwumEV17zNgh 0wJaZPqRMEwTEuyjGyKlEVXLcvhpbb5+UTDVqHGR23x7HR/shk8oF7T9JytZuv9AW/9F n8lg== MIME-Version: 1.0 X-Received: by 10.194.161.135 with SMTP id xs7mr7192788wjb.41.1360969393065; Fri, 15 Feb 2013 15:03:13 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.216.236.88 with HTTP; Fri, 15 Feb 2013 15:03:12 -0800 (PST) In-Reply-To: References: Date: Fri, 15 Feb 2013 15:03:12 -0800 X-Google-Sender-Auth: kq9aoKPpte5wbMhJkzKb7xNnKfA 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: Fri, 15 Feb 2013 23:03:14 -0000 The (many) problems include the two TX paths - one is via _start / _transmit, and one is the raw xmit path. So in the short term it'll be easier (!) to just wrap all TX entry points with a VAP TX lock. Once that's done and we've debugged it, we can look at breaking it into a queue with a taskqueue thread for deferred transmit. How's that sound? Adrian