LINUX.ORG.RU

kernel patch for Intel Ultimate N-6300


0

4

Здравствуйте, совственно говоря, есть сабжевая карточка, которая на частоте 5GHz (на 2.4 все ок) вылетает (не сразу, в среднем раз в 2-6 часов) с криком «fail to flush all tx fifo queues» + 40 строк о том как ей нехорошо. И есть небольшой патчик с которым она продержалась уже 1.5 дня. Между тем, наверняка не со всеми карточками дела обстоят так паршиво, и вполне может быть, что этот патч внесет кому-то регрессию. Но я не считаю правильным патчить каждое новое ядро, поэтому хочу внести патч в дерево ядра, но 3 «но»:
1. хотелось бы удостовериться, что патч не принесет плохих ништяков, если карточка не N6300
2. кому (Линусу или Грегу) послать патч?
3. и как блин это сделать? %) тупо написать на lkml.org?

ну так вот, ищутся добрые самаритяне с wifi-карточками интела в их ноутбуках и желающие помочь протестировать патч :) (естественно, упоминание в списке тестеров гарантируется)
сам патчик успешно накладывается на 3.{12,13,14} (на более старых не пробовал)
~/devel/linux-3.14-rc1$ patch -p0 < iwlwifi.patch

--- drivers/net/wireless/iwlwifi/dvm/tx.c-orig  2014-02-06 08:48:31.635741095 +0400
+++ drivers/net/wireless/iwlwifi/dvm/tx.c       2014-02-06 09:10:15.491772083 +0400
@@ -1185,13 +1185,6 @@
                        next_reclaimed = ssn;
                }
 
-               if (tid != IWL_TID_NON_QOS) {
-                       priv->tid_data[sta_id][tid].next_reclaimed =
-                               next_reclaimed;
-                       IWL_DEBUG_TX_REPLY(priv, "Next reclaimed packet:%d\n",
-                                                 next_reclaimed);
-               }
-
                iwl_trans_reclaim(priv->trans, txq_id, ssn, &skbs);
 
                iwlagn_check_ratid_empty(priv, sta_id, tid);
@@ -1239,8 +1232,11 @@
                                info->flags |= IEEE80211_TX_STAT_AMPDU_NO_BACK;
                        iwlagn_set_tx_status(priv, IEEE80211_SKB_CB(skb),
                                     tx_resp);
-                       if (!is_agg)
+                       if (!is_agg) {
                                iwlagn_non_agg_tx_status(priv, ctx, hdr->addr1);
+                               if (status == TX_STATUS_FAIL_FIFO_FLUSHED)
+                                       next_reclaimed = ((hdr->seq_ctrl + 0x10) & IEEE80211_SCTL_SEQ) >> 4;
+                       }
 
                        freed++;
                }

не, это все фигня - при изменении минорной версии ядра посыпались баги и отвалился интерфейс :-\

metawishmaster ★★★★★
() автор топика
Ответ на: комментарий от val-amart

да это ошибка фирмвари, при которой seq_ctrl не обновляются, когда сбрасываются очереди. Тут берется он из самого пакета.

а глюк Advanced-N 6205 у меня вылечился тем, что я поставил «Power managment and ACPI options»->«CPU Frequency scaling»->«x86 CPU frequency scaling drivers»->«Intel P-state control» (у меня проц как-раз SandyBridge)

metawishmaster ★★★★★
() автор топика
Ответ на: комментарий от val-amart

хм... это может зависеть от того, что у Вас другой governor на управление питанием устройств, но я особо не пробовал играться с настройками power_saving'a...

metawishmaster ★★★★★
() автор топика
Ответ на: комментарий от val-amart

та версия, что сверху падала у меня сегодня на другом ядре (3.12.10), но я нашел аналогияный патч давностью около года, которых забраковали из-за того, что у людей жутко падала скорость. По-сути у меня была ошибка, но я посмотроел как было у тех друзей и сейчас патч не падает, скорость тоже стабильна насколько так можно сказать о скоростях wifi. Проверьте, пожалуйста у себя на 6205 :)

// тут форматирование патча слегка ломается, поэтому http://pastebin.com/CGV6HViw

metawishmaster ★★★★★
() автор топика
Последнее исправление: metawishmaster (всего исправлений: 1)
Ответ на: комментарий от val-amart

%)

у меня есть stable
[code=sh]
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux-stable
git checkout -b stable v3.13.2
[/code]

или в хеде что-то поменяли?

metawishmaster ★★★★★
() автор топика
Последнее исправление: metawishmaster (всего исправлений: 1)
Ответ на: комментарий от metawishmaster

место

сейчас набегут и скажут о COW.

короче форкай и не бойся.

ZuBB ★★★★★
()

ТС, у меня на вот этой ерунде

Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)

НетворкМанагер перестал подключаться к половине сетей, мне твой патч поможет?

Stil ★★★★★
()
Ответ на: комментарий от Stil


НетворкМанагер перестал подключаться к половине сетей, мне твой патч поможет?


если причины дисконнектов те же, что и причины по которым не получается подрубиться к сетке, то может помочь

metawishmaster ★★★★★
() автор топика
Ответ на: комментарий от Stil

спасибо :)

но на моих тестах в итоге все-таки сетка валится... :(

metawishmaster ★★★★★
() автор топика

не... таки эта фигня работает только на 3.12.9 :(
что-то еще сделали в 3.13, будем надеяться на лучшее! :)

metawishmaster ★★★★★
() автор топика

вобщем вотъ...


commit 63f1809aa672dc439e7750b551ff9926a79312e0
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date: Tue Feb 11 09:34:50 2014 +0200

iwlwifi: disable TX AMPDU by default for iwldvm

We have had a bug in TX AMPDU in iwldvm for a very long
time. This bug has been raised in many bugzillas and threads
on linux-wireless mailing list.

The bug is in firmware and we won't be able to fix it in the
near future. Hence, we prefer to disable TX AMPDU by default
in iwldvm. This doesn't affect iwlmvm which supports 7160 /
3160 and up.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>

metawishmaster ★★★★★
() автор топика
Ответ на: комментарий от ZuBB

git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git
изначально for-john, но сегодня им предложили перебраться в master

может разработчик той фирмвари помер внезапно, вот и «не могут в ближайшее время» %)

metawishmaster ★★★★★
() автор топика
Последнее исправление: metawishmaster (всего исправлений: 2)
Ответ на: комментарий от metawishmaster

слушай, раз ты уже «там», маякни в этот тред когда сей фикс попадет в мастер и в какую версию. спасибо.

metawishmaster, в любом случае респект тебе

ZuBB ★★★★★
()
Ответ на: комментарий от ZuBB

сегодня пришло:


>
> git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next.git
> for-john
>
> for you to fetch changes up to
8e305d171ab58dbd79ad8e13d93db2237fde5749:
>
> iwlwifi: mvm: remove duplicate assignment to ap_ibss_active
> (2014-02-03 22:43:53 +0200)

Pulling now...

Apparently, you pulled master branch instead of for-john branch. Not a big deal for me, you just saved me a bit of work :)



а на тему топика:
«Optimize AMPDU aggregation» - опция в роутере
iwlwifi крешится (комментарий)

metawishmaster ★★★★★
() автор топика
Ответ на: комментарий от metawishmaster

не, я про такое (например)

коммит iwlwifi: mvm: remove duplicate assignment to ap_ibss_active был смерджен в linux-torvalds и будет доступен в релизе 3.13.4

ZuBB ★★★★★
()
Ответ на: комментарий от ZuBB

этот инновационый workaround хотят в ветке 3.14


One single patch for this pull request for 3.14.

As explicitly written in the commit message, we prefer to disable Tx
AMPDU on NICs supported by iwldvm. This feature gives a big boost in Tx
performance, but the firmware is buggy and we can't rely on it.
Our hope is that most of the users out there want wifi to surf on the
web which means that they care more for Rx traffic than for Tx.
People who want to enable it can do so with the help of a module parameter.

Please pull - thanks.

emmanuel


The following changes since commit c512865446e6dd5b6e91e81187e75b734ad7cfc7:

iwlwifi: mvm: don't allow A band if SKU forbids it (2014-02-02
11:08:42 +0200)

are available in the git repository at:


git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes.git
master

for you to fetch changes up to 205e2210daa975d92ace485a65a31ccc4077fe1a:

iwlwifi: disable TX AMPDU by default for iwldvm (2014-02-13 15:24:35
+0200)

----------------------------------------------------------------
Emmanuel Grumbach (1):
iwlwifi: disable TX AMPDU by default for iwldvm

drivers/net/wireless/iwlwifi/dvm/mac80211.c | 22 ++++++++++++++++++++--
drivers/net/wireless/iwlwifi/iwl-drv.c | 2 +-
drivers/net/wireless/iwlwifi/iwl-modparams.h | 11 +++++++----
drivers/net/wireless/iwlwifi/mvm/mac80211.c | 22 ++++++++++++++++++++--
4 files changed, 48 insertions(+), 9 deletions(-)

metawishmaster ★★★★★
() автор топика
Ответ на: комментарий от ZuBB

только что появилось в git'e linux-3.14-pre3+

sbauer@metabook ~/devel/kernel-works/linux.git$ git pull
remote: Counting objects: 699, done.
remote: Compressing objects: 100% (71/71), done.
remote: Total 478 (delta 407), reused 478 (delta 407)
Receiving objects: 100% (478/478), 79.75 KiB | 88 KiB/s, done.
Resolving deltas: 100% (407/407), completed with 171 local objects.
From git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
   91c6c8d..b0d3f6d  master     -> origin/master
Updating 91c6c8d..b0d3f6d
Fast-forward
<skip>
drivers/net/wireless/iwlwifi/dvm/mac80211.c           |   22 +++++-
drivers/net/wireless/iwlwifi/iwl-drv.c                |    2 +-
drivers/net/wireless/iwlwifi/iwl-modparams.h          |   11 +--
<skip>

sbauer@metabook ~/devel/kernel-works/linux.git$ git log drivers/net/wireless/iwlwifi/
ommit 205e2210daa975d92ace485a65a31ccc4077fe1a
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Wed Feb 12 15:15:05 2014 +0200

    iwlwifi: disable TX AMPDU by default for iwldvm
    
    NICs supported by iwldvm don't handle well TX AMPDU.
    Disable it by default, still leave the possibility to
    the user to force enable it with a debug parameter.
    
    NICs supported by iwlmvm don't suffer from the same issue,
    leave TX AMPDU enabled by default for these.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
<skip>

по-умолчанию TX aggregation будет отрублен, включаться будет параметром модуля 11n_disable=8

metawishmaster ★★★★★
() автор топика
26 марта 2014 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.