All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Lobakin <alobakin@dlink.ru>
To: David Miller <davem@davemloft.net>
Cc: pabeni@redhat.com, johannes@sipsolutions.net,
	ecree@solarflare.com, nicholas.johnson-opensource@outlook.com.au,
	jiri@mellanox.com, edumazet@google.com, idosch@mellanox.com,
	petrm@mellanox.com, sd@queasysnail.net, f.fainelli@gmail.com,
	jaswinder.singh@linaro.org, ilias.apalodimas@linaro.org,
	linux-kernel@vger.kernel.org, emmanuel.grumbach@intel.com,
	luciano.coelho@intel.com, linuxwifi@intel.com,
	kvalo@codeaurora.org, netdev@vger.kernel.org,
	linux-wireless@vger.kernel.org
Subject: Re: [PATCH v2 net-next] net: core: use listified Rx for GRO_NORMAL in napi_gro_receive()
Date: Wed, 27 Nov 2019 10:47:26 +0300	[thread overview]
Message-ID: <4cb1abfb7cbd137151f024405f7b0678@dlink.ru> (raw)
In-Reply-To: <20191126.155746.627765091618337419.davem@davemloft.net>

David Miller wrote 27.11.2019 02:57:
> From: Alexander Lobakin <alobakin@dlink.ru>
> Date: Mon, 25 Nov 2019 15:02:24 +0300
> 
>> Paolo Abeni wrote 25.11.2019 14:42:
>>> For -net, I *think* something as dumb and hacky as the following 
>>> could
>>> possibly work:
>>> ----
>>> diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
>>> b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
>>> index 4bba6b8a863c..df82fad96cbb 100644
>>> --- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
>>> +++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
>>> @@ -1527,7 +1527,7 @@ static void iwl_pcie_rx_handle(struct iwl_trans
>>> *trans, int queue)
>>>                 iwl_pcie_rxq_alloc_rbs(trans, GFP_ATOMIC, rxq);
>>>         if (rxq->napi.poll)
>>> -               napi_gro_flush(&rxq->napi, false);
>>> +               napi_complete_done(&rxq->napi, 0);
>>>         iwl_pcie_rxq_restock(trans, rxq);
>>>  }
>>> ---
>> 
>> napi_complete_done(napi, 0) has an equivalent static inline
>> napi_complete(napi). I'm not sure it will work without any issues
>> as iwlwifi doesn't _really_ turn NAPI into scheduling state.
>> 
>> I'm not very familiar with iwlwifi, but as a work around manual
>> napi_gro_flush() you can also manually flush napi->rx_list to
>> prevent packets from stalling:
>> 
>> diff -Naur a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
>> b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
>> --- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c 2019-11-25
>> --- 14:55:03.610355230 +0300
>> +++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c 2019-11-25
>> 14:57:29.399556868 +0300
>  ...
> 
> Thanks to everyone for looking into this.
> 
> Can I get some kind of fix in the next 24 hours?  I want to send a 
> quick
> follow-on pull request to Linus to deal with all of the fallout, and in
> particular fix this regression.

If Intel guys and others will agree, I'll send a patch which will add
manual napi->rx_list flushing in iwlwifi driver in about ~2-3 hours.

Anyway, this driver should get a proper NAPI in future releases to
prevent problems like this one.

> Thanks!

Regards,
ᚷ ᛖ ᚢ ᚦ ᚠ ᚱ

  reply	other threads:[~2019-11-27  7:47 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-14  8:00 [PATCH v2 net-next] net: core: use listified Rx for GRO_NORMAL in napi_gro_receive() Alexander Lobakin
2019-10-16  1:16 ` David Miller
2019-10-16  7:31   ` Alexander Lobakin
2019-11-25  7:29     ` Nicholas Johnson
2019-11-25  7:54       ` Alexander Lobakin
2019-11-25  8:25         ` Alexander Lobakin
2019-11-25  9:09           ` Nicholas Johnson
2019-11-25 10:31             ` Edward Cree
2019-11-25 10:58               ` Alexander Lobakin
2019-11-25 11:05                 ` Johannes Berg
2019-11-25 11:42                   ` Paolo Abeni
2019-11-25 12:02                     ` Alexander Lobakin
2019-11-25 13:21                       ` Edward Cree
2019-11-25 13:39                         ` Alexander Lobakin
2019-11-26 23:57                       ` David Miller
2019-11-27  7:47                         ` Alexander Lobakin [this message]
2019-11-27  8:30                           ` Johannes Berg
2019-11-27  9:47                         ` Alexander Lobakin
2019-11-25 12:11                     ` Kalle Valo
2019-11-25 13:07                     ` Nicholas Johnson
2019-11-25 13:11               ` Nicholas Johnson
2020-06-24 21:06 ` Jason A. Donenfeld
2020-06-24 21:28   ` Jason A. Donenfeld
2020-06-25 14:25   ` Edward Cree

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4cb1abfb7cbd137151f024405f7b0678@dlink.ru \
    --to=alobakin@dlink.ru \
    --cc=davem@davemloft.net \
    --cc=ecree@solarflare.com \
    --cc=edumazet@google.com \
    --cc=emmanuel.grumbach@intel.com \
    --cc=f.fainelli@gmail.com \
    --cc=idosch@mellanox.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jaswinder.singh@linaro.org \
    --cc=jiri@mellanox.com \
    --cc=johannes@sipsolutions.net \
    --cc=kvalo@codeaurora.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linuxwifi@intel.com \
    --cc=luciano.coelho@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=nicholas.johnson-opensource@outlook.com.au \
    --cc=pabeni@redhat.com \
    --cc=petrm@mellanox.com \
    --cc=sd@queasysnail.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.