From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx1.redhat.com ([209.132.183.28]:62661 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751022Ab3HSKcn (ORCPT ); Mon, 19 Aug 2013 06:32:43 -0400 Date: Mon, 19 Aug 2013 12:33:00 +0200 From: Stanislaw Gruszka To: "Grumbach, Emmanuel" Cc: "ilw@linux.intel.com" , "linux-wireless@vger.kernel.org" Subject: Re: [Ilw] Question about iwl_pcie_rxq_inc_wr_ptr Message-ID: <20130819103300.GA10723@redhat.com> (sfid-20130819_123246_555891_DD603B0A) References: <20130802084235.GD8566@redhat.com> <0BA3FCBA62E2DC44AF3030971E174FB301A2954B@HASMSX103.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <0BA3FCBA62E2DC44AF3030971E174FB301A2954B@HASMSX103.ger.corp.intel.com> Sender: linux-wireless-owner@vger.kernel.org List-ID: On Mon, Aug 19, 2013 at 09:32:58AM +0000, Grumbach, Emmanuel wrote: > > > > I would like to ask if below change is safe (I'm considering to do that change > > on iwlegacy): > > > > diff --git a/drivers/net/wireless/iwlwifi/pcie/rx.c > > b/drivers/net/wireless/iwlwifi/pcie/rx.c > > index 567e67a..1ebdb83 100644 > > --- a/drivers/net/wireless/iwlwifi/pcie/rx.c > > +++ b/drivers/net/wireless/iwlwifi/pcie/rx.c > > @@ -183,7 +183,7 @@ static void iwl_pcie_rxq_inc_wr_ptr(struct iwl_trans > > *trans, struct iwl_rxq *q) > > } else { > > /* Device expects a multiple of 8 */ > > q->write_actual = (q->write & ~0x7); > > - iwl_write_direct32(trans, FH_RSCSR_CHNL0_WPTR, > > + iwl_write32(trans, FH_RSCSR_CHNL0_WPTR, > > q->write_actual); > > } > > } > > > > This register seems to be only read by firmware, so maybe we can modify it > > without grab nic access. We are doing that on iwl_pcie_txq_inc_wr_ptr(). > > > > I am not sure... > I am not sure what would be the behavior: not updating the value at all, or having the HW use an old value for a while. > Does this cost you so much CPU that it justifies such a change? I have those bug reports: https://bugzilla.redhat.com/show_bug.cgi?id=863386 https://bugzilla.redhat.com/show_bug.cgi?id=889467 https://bugzilla.redhat.com/show_bug.cgi?id=895650 https://bugzilla.redhat.com/show_bug.cgi?id=989025 All are 4965 specific - I haven't seen similar traces on iwlwifi. On some cases use nohz=off boot option helped with the problem, so this could be also some kernel issue when udelay() is not working as expected. Anyway I'm considering to remove grab_nic_access from that path and would like to know possible consequences from firmware perspective. Stanislaw