Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp733750ybz; Sat, 25 Apr 2020 03:08:58 -0700 (PDT) X-Google-Smtp-Source: APiQypJDJ3obMyGsRq05uLiEjoOTJ7Qo2gJaMddxaCKA3zS3ABZE0eZXtJLxp2xtbhkzP0of7bpE X-Received: by 2002:a05:6402:319c:: with SMTP id di28mr11570925edb.185.1587809338699; Sat, 25 Apr 2020 03:08:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587809338; cv=none; d=google.com; s=arc-20160816; b=MdReHKYSoSWrvD2g43eNQua8CYKDWSqjmAdN/iOKDHTts727ty6eokFgqNMio48T48 0tNuVErUGHRlsJTZ34vn9PmHugQk42RZ/+pz1IBcAIk9vTFCRikkVy8v3XmHjUBagd9x gIBwSeLZXHsU8vJEAMolUa1rmCuuESKopG4CkxU1WTa5Thz78IspuqgKsevlGh7yEXbz 5zMS8ZH05LvHrfJfT4V8WjEPCFIASnWk8m5bKEdeBu0MnLd91sAhyhQUSMwV0vb+2hV8 Wo5J6C7HvFlJb4bKdBiGXyHEbTOotSlErSw7RCcmPwDcRUJSYUsKrFdaKhqKYyvgRJ3n 0xGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:subject:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:cc:to:from; bh=9gz/OmLAzUpwjhyzSOF5G8qtB2SlPYPR4Hs9PRaBo8A=; b=czg1A7pUh7mXhVjxAKko6amQdSAJlvsdQ5W6rU4kL1fauA37l/nGpXv99Nt+vWR0v5 PfMMOpejYQ6Lt0zDrKQZ9Ua8lAdZuS4dfKux260tyuQya/uxX18YuKWPTZNYPBy1Ju+f YanSV3nVfWhYdE8zi7FwpRC5oDIfkUlYIWQkQ6GFGhK43F8VRagcX0MHgNVtAas2RzwD RNET9h5NmFqdwkjlklSpliSRvnwR82Yan1+HbQqBH3efkXlVwxZUE8fmT17kJwPtbaU6 5ptMjwHnrA7P9jIY/Cv9TIGK8kAPZ8HI/5xQeSyZQsNvAG25LpKTZetGZbIjrIoObhIS T2vA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f21si4520108edc.246.2020.04.25.03.08.35; Sat, 25 Apr 2020 03:08:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726296AbgDYKFM (ORCPT + 99 others); Sat, 25 Apr 2020 06:05:12 -0400 Received: from paleale.coelho.fi ([176.9.41.70]:58218 "EHLO farmhouse.coelho.fi" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726116AbgDYKFM (ORCPT ); Sat, 25 Apr 2020 06:05:12 -0400 Received: from 91-156-6-193.elisa-laajakaista.fi ([91.156.6.193] helo=redipa.ger.corp.intel.com) by farmhouse.coelho.fi with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1jSHgM-000P3t-CX; Sat, 25 Apr 2020 13:05:10 +0300 From: Luca Coelho To: kvalo@codeaurora.org Cc: linux-wireless@vger.kernel.org Date: Sat, 25 Apr 2020 13:04:50 +0300 Message-Id: X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200425100459.2778317-1-luca@coelho.fi> References: <20200425100459.2778317-1-luca@coelho.fi> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on farmhouse.coelho.fi X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, TVD_RCVD_IP autolearn=ham autolearn_force=no version=3.4.4 Subject: [PATCH 02/11] iwlwifi: mvm: attempt to allocate smaller queues Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Johannes Berg We currently attempt to allocate queues that are 512 entries long, but that requires 32 KiB memory, which may not be available, at least not contiguously. If we fail to allocate, attempt to use a smaller queue all the way down to 16 entries (which fit into a single page). Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho --- drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 23 +++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c index 1a210292f56c..3e16bd4190ff 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c @@ -744,16 +744,23 @@ static int iwl_mvm_tvqm_enable_txq(struct iwl_mvm *mvm, size = max_t(u32, IWL_MGMT_QUEUE_SIZE, mvm->trans->cfg->min_txq_size); } - queue = iwl_trans_txq_alloc(mvm->trans, - cpu_to_le16(TX_QUEUE_CFG_ENABLE_QUEUE), - sta_id, tid, SCD_QUEUE_CFG, size, timeout); - if (queue < 0) { - IWL_DEBUG_TX_QUEUES(mvm, - "Failed allocating TXQ for sta %d tid %d, ret: %d\n", - sta_id, tid, queue); + do { + __le16 enable = cpu_to_le16(TX_QUEUE_CFG_ENABLE_QUEUE); + + queue = iwl_trans_txq_alloc(mvm->trans, enable, + sta_id, tid, SCD_QUEUE_CFG, + size, timeout); + + if (queue < 0) + IWL_DEBUG_TX_QUEUES(mvm, + "Failed allocating TXQ of size %d for sta %d tid %d, ret: %d\n", + size, sta_id, tid, queue); + size /= 2; + } while (queue < 0 && size >= 16); + + if (queue < 0) return queue; - } IWL_DEBUG_TX_QUEUES(mvm, "Enabling TXQ #%d for sta %d tid %d\n", queue, sta_id, tid); -- 2.26.2