From owner-freebsd-wireless@FreeBSD.ORG Fri Feb 3 07:09:26 2012 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C6FE106564A; Fri, 3 Feb 2012 07:09:26 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 3A4D08FC1A; Fri, 3 Feb 2012 07:09:25 +0000 (UTC) Received: by vcmm1 with SMTP id m1so3722857vcm.13 for ; Thu, 02 Feb 2012 23:09:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=KnDEhU32vp1me1wa8bt8wtfG1962IMqtisvB01nhKww=; b=GV53YlFzmgoNpQORCL42/4+SQ2UHzp9f9ATAwHc6heTWd4Yg9Xq6FFutTOA5/Tgopu TkpsfxTZLALx/A5yjAc+Jo9wGIE4rey/IawyV2QLYEesDceHOjSGSR1d/Ru14em2nqaA vs7eyhit1eqH3lv2EdNpxOU+h/RCnVy/FqPG0= MIME-Version: 1.0 Received: by 10.52.66.166 with SMTP id g6mr2773872vdt.34.1328252965224; Thu, 02 Feb 2012 23:09:25 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.52.172.37 with HTTP; Thu, 2 Feb 2012 23:09:25 -0800 (PST) In-Reply-To: <1167992329.20120203110304@serebryakov.spb.ru> References: <743722267.20120202195757@serebryakov.spb.ru> <1292923023.20120202232810@serebryakov.spb.ru> <208667374.20120203002726@serebryakov.spb.ru> <1167992329.20120203110304@serebryakov.spb.ru> Date: Thu, 2 Feb 2012 23:09:25 -0800 X-Google-Sender-Auth: q4HEmSYazi30aH7Y79uBvEZE2gk Message-ID: From: Adrian Chadd To: lev@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: "ath0: device timeout" when environment is clear X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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, 03 Feb 2012 07:09:26 -0000 Hi, I'm not really able to suggest any specific diagnosis. I'd just be debugging it and trying to figure out why exactly it's occuring. There's only two places where TX "starts" - ath_start() and ath_raw_xmit(). The watchdog timer is bumped there. The questions are: * is it being bumped but no frame is being queued (eg because aggregation is somehow hanging); * is it being bumped but not cleared correctly; * is it being bumped but the TX interrupt is being missed (which would show up as frames in the TX queue, which you would've seen in previous debugging); * is there a race condition between ath_start( )/ath_raw_xmit() and the TX completion task, which is causing it to be set whe nthere's no frames queued (due to a lack of locking there..) I'm still knee deep in work code (hi radars and DFS!) so I can't really dedicate any further time to figuring this stuff out. But there's a lot of weird and wonderful locking issues in ath and net80211. Sigh. Is this running on a multi-core/CPU box, or is it single-core? Adrian