On Mon, May 26, 2014 at 11:47 AM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote: > On Mon, May 26, 2014 at 11:13 AM, Emmanuel Grumbach <egrumbach@xxxxxxxxx> wrote: >>>>>> >>>>>> diff --git a/drivers/net/wireless/iwlwifi/dvm/power.c >>>>>> b/drivers/net/wireless/iwlwifi/dvm/power.c >>>>>> index f2c1439..e5a6b70 100644 >>>>>> --- a/drivers/net/wireless/iwlwifi/dvm/power.c >>>>>> +++ b/drivers/net/wireless/iwlwifi/dvm/power.c >>>>>> @@ -288,6 +288,9 @@ static void iwl_power_build_cmd(struct iwl_priv *priv, >>>>>> bool enabled = priv->hw->conf.flags & IEEE80211_CONF_PS; >>>>>> int dtimper; >>>>>> >>>>>> + iwl_power_sleep_cam_cmd(priv, cmd); >>>>>> + return; >>>>>> + >>>>>> dtimper = priv->hw->conf.ps_dtim_period ?: 1; >>>>>> >>>>>> if (priv->wowlan) >>>>> >>>>> This patch has survived for about 15 minutes on 3.15-rc. It certainly >>>>> has some effect: pinging from the AP to the STA now takes a consistent >>>>> ~3.8ms instead of taking varying amounts of time between 5 and 200 ms >>>>> or so. >>>>> >>>>> I wonder if this is something 802.11n/802.11ac-specific? I remember >>>>> having all kinds of problems with 802.11n on this laptop that were >>>>> resolved by turning off 11n or turning off power saving. >>>>> >>>> >>>> well... my patch really turns off power saving. The hard way. >>>> But since you are having issues - I guess I'll post it and disable >>>> power save for these devices. Note that today most of the power save >>>> features are disabled anyway. >>> >>> Would it make sense to do this only when connected to a VHT-supporting >>> AP or whatever AP feature is probably triggering the problem? >> >> I am not sure it is related to some "VHT / whatever" feature. From >> your logs, I'd say this bug could have happened with any AP. It is >> down there in the PCI layer. >> >>> >>> *sigh* I'd just plug in a new PCIe wireless card, except that I think >>> that my evil BIOS will refuse to boot if I do that. >>> >> I can recommend 7260 :) > > http://www.thinkwiki.org/wiki/Problem_with_unauthorized_MiniPCI_network_card > > I'm not sure how I feel about flashing my BIOS with random things off > the internet :( > >> Before you do that, can you check this one? >> >> diff --git a/drivers/net/wireless/iwlwifi/dvm/power.c >> b/drivers/net/wireless/iwlwifi/dvm/power.c >> index f2c1439..047112c 100644 >> --- a/drivers/net/wireless/iwlwifi/dvm/power.c >> +++ b/drivers/net/wireless/iwlwifi/dvm/power.c >> @@ -292,6 +292,8 @@ static void iwl_power_build_cmd(struct iwl_priv *priv, >> >> if (priv->wowlan) >> iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, dtimper); >> + if (!enabled) >> + iwl_power_sleep_cam_cmd(priv, cmd); >> else if (!priv->lib->no_idle_support && >> priv->hw->conf.flags & IEEE80211_CONF_IDLE) >> iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, 20); >> @@ -299,9 +301,7 @@ static void iwl_power_build_cmd(struct iwl_priv *priv, >> /* in thermal throttling low power state */ >> iwl_static_sleep_cmd(priv, cmd, >> iwl_tt_current_power_mode(priv), dtimper); >> - } else if (!enabled) >> - iwl_power_sleep_cam_cmd(priv, cmd); >> - else if (priv->power_data.debug_sleep_level_override >= 0) >> + } else if (priv->power_data.debug_sleep_level_override >= 0) >> iwl_static_sleep_cmd(priv, cmd, >> >> priv->power_data.debug_sleep_level_override, >> dtimper); >> >> This is the final version I want to send. > > I'll test it tonight. I'm away from both the network and the laptop right now. No good :( I got the same issue again, but it still sames rarer than unpatched. It looks like your patch allows both: iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, dtimper); and iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, 20); I don't know whether that's a problem. Also, is this bad? iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control lspci seems to think that L1 is enabled (see attached logs). --Andy
Attachment:
iwl_stall_2.txt.xz
Description: application/xz