From patchwork Fri Aug 8 11:22:45 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antonio Quartulli X-Patchwork-Id: 4695511 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 520219F377 for ; Fri, 8 Aug 2014 11:23:36 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id D69972016C for ; Fri, 8 Aug 2014 11:23:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3EC2A20160 for ; Fri, 8 Aug 2014 11:23:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756379AbaHHLXb (ORCPT ); Fri, 8 Aug 2014 07:23:31 -0400 Received: from dev-nolb.cloudtrax.com ([54.203.245.161]:35486 "EHLO dev-nolb.cloudtrax.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755194AbaHHLXa (ORCPT ); Fri, 8 Aug 2014 07:23:30 -0400 Received: from [192.168.1.253] (93-43-192-91.ip93.fastwebnet.it [93.43.192.91]) by dev-nolb.cloudtrax.com (Postfix) with ESMTPSA id 8F1A46077B; Fri, 8 Aug 2014 11:27:46 +0000 (UTC) Message-ID: <53E4B305.8050500@open-mesh.com> Date: Fri, 08 Aug 2014 13:22:45 +0200 From: Antonio Quartulli User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Ben Greear CC: Felix Fietkau , linux-wireless@vger.kernel.org, linville@tuxdriver.com Subject: Re: [PATCH] ath9k: fix aggregation session lockup References: <1406122854-60239-1-git-send-email-nbd@openwrt.org> <53D6B87D.6080007@candelatech.com> <53D6BC7F.2020002@openwrt.org> <53D7C661.2040107@candelatech.com> <53DF8A36.1040402@open-mesh.com> <53DFE9B5.8040706@candelatech.com> In-Reply-To: <53DFE9B5.8040706@candelatech.com> X-Enigmail-Version: 1.6 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_TVD_MIME_EPI, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On 04/08/14 22:14, Ben Greear wrote: > On 08/04/2014 06:27 AM, Antonio Quartulli wrote: > > >> On 29/07/14 18:05, Ben Greear wrote: >>> On 07/28/2014 02:11 PM, Felix Fietkau wrote: >>>> Interesting. Maybe you should ask Antonio for an updated version of the patch that he used to debug this issue. If you give me the output of it while >>>> it's locked up, I might be able to figure out what's going on in your setup. >>> >>> What is the easiest upstream tree for you to debug? > >> Sorry for the late reply but I was pretty "disconnected" in the last days. > >> Is the debugging patch still required? If so, I can dig in my buildroot and retrieve it. > > I would appreciate it if you could post the patch. I'd like to > see if I can get the bug fixed once and for all..... > > Thanks, > Ben Ben, attached you have the patches we have been using during our debug. They create a new debugfs file that you can read when the wifi is stuck in order to gather some information about the queues/tids status. The file is located in the ath9k debugfs folder and its name is "nodes". I hope it can help. Cheers, diff -urw compat-wireless-2014-05-22.orig/drivers/net/wireless/ath/ath9k/debug.c compat-wireless-2014-05-22/drivers/net/wireless/ath/ath9k/debug.c --- compat-wireless-2014-05-22.orig/drivers/net/wireless/ath/ath9k/debug.c 2014-07-23 00:44:26.713083838 +0200 +++ compat-wireless-2014-05-22/drivers/net/wireless/ath/ath9k/debug.c 2014-07-23 00:56:13.615066352 +0200 @@ -715,14 +715,20 @@ static void ath9k_debug_print_skb(struct sk_buff_head *skb_head) { + struct ieee80211_tx_info *tx_info; struct ath_frame_info *fi; struct ath_buf *bf; struct sk_buff *skb; skb_queue_walk(skb_head, skb) { + tx_info = IEEE80211_SKB_CB(skb); + nodes_len += snprintf(nodes_buf + nodes_len, + nodes_size - nodes_len, + "skb tx_info->flags = %#.8x\n", + tx_info->flags); + fi = get_frame_info(skb); bf = fi->bf; - if (!bf) { nodes_len += snprintf(nodes_buf + nodes_len, nodes_size - nodes_len, "no bf\n"); continue;