Re: 3.4-rc ath9k regression (Re: [ath9k-devel] 3.3.1 ath9kregression)

From: Michael Leun
Date: Mon Apr 09 2012 - 11:33:07 EST


On Mon, 9 Apr 2012 19:52:45 +0530
Mohammed Shafi <shafi.wireless@xxxxxxxxx> wrote:

> On Mon, Apr 9, 2012 at 7:33 PM, Michael Leun
> <lkml20120218@xxxxxxxxxxxxxxx> wrote:
> > On Mon, 9 Apr 2012 12:25:49 +0200
> > Michael Leun <lkml20120218@xxxxxxxxxxxxxxx> wrote:
> >
> >> On Mon, 9 Apr 2012 11:58:06 +0530
> >> Mohammed Shafi <shafi.wireless@xxxxxxxxx> wrote:
> >>
> >> > On Mon, Apr 9, 2012 at 4:38 AM, Michael Leun
> >> > <lkml20120218@xxxxxxxxxxxxxxx> wrote:
> >> > > After an suspend to disk / resume cycle (in kernel suspend to
> >> > > disk, openSuSE) with 3.4-rc2 my ath9k wireless does not ping
> >> > > anymore.
> >> > >
> >> > > Output of iwconfig wlan0 looks just as usual (associated to
> >> > > AP).
> >> > >
> >> > > iwconfig wlan0 essid <myssid> fixes this (causes an
> >> > > deauthenticate/authenticate with AP) - then connectivity is
> >> > > there again.
> >> > >
> >> > > Guess what: "Of course" does not happen when reverting
> >> > > c1afdaff90538ef085b756454f12b29575411214 ath9k: fix going to
> >> > > full-sleep on PS idle.
> >> > >
> >> > > So, in my opinion it should be seriously considered to revert
> >> > > that patch until it is fully understood what is going on and
> >> > > why.
> >> >
> >> > please try with the attached patch to see if it helps.
> >>
> >> Yes, this patch helps with the issue I see in 3.4-rc2 described
> >> above.
> >
> > Sorry, but I have to partially rectify that:
> >
> > It works, if the time the machine was suspended is short, as it was
> > when I did that testing.
> >
> > But I noticed it failing, when the machine was hibernated for some
> > hours.
> >
> > I easily can reproduce that, when I reboot the AP while the
> > notebook is down (btw: AP is TP-LINK TL-WR1043ND running OpenWRT
> > backfire 10.03.1, also using ath9k).
> >
> > When I do this (hibernate notebook, reboot AP, resume notebook check
> > connectivity) with 3.4-rc2 and your test.patch it fails in 100% of
> > cases.
>
> the test.patch is nothing but it reverts back to the code something
> back 3.1.1 and there is something else is also there
> , where we need to fix. unfortunately i cannot reproduce the issue in
> 3.4-rc2 which you guys can easily recreate it. i should try with
> 3.3.1 tomorrow. i will go home today and see if i can find some thing
> with my analysis.

Please do not mix up things. What I described above I see in 3.4-rc2,
the thing in 3.3.1 looks different (altough it may (or may not) have the
same root cause).

Between your test.patch and reverting
c1afdaff90538ef085b756454f12b29575411214 is this diff:

@@ -118,13 +118,13 @@
if (--sc->ps_usecount != 0)
goto unlock;

- if (sc->ps_idle && (sc->ps_flags & PS_WAIT_FOR_TX_ACK))
+ if (sc->ps_idle)
mode = ATH9K_PM_FULL_SLEEP;
else if (sc->ps_enabled &&
!(sc->ps_flags & (PS_WAIT_FOR_BEACON |
PS_WAIT_FOR_CAB |
- PS_WAIT_FOR_PSPOLL_DATA |
- PS_WAIT_FOR_TX_ACK)))
+ PS_WAIT_FOR_TX_ACK |
+ PS_WAIT_FOR_PSPOLL_DATA)))
mode = ATH9K_PM_NETWORK_SLEEP;
else
goto unlock;


Seems obvious to me, that this line

if (sc->ps_idle && (sc->ps_flags & PS_WAIT_FOR_TX_ACK))

makes the real difference.


>
> i was also thinking about the code, when the chip goes to FULL_SLEEP
> then in ath9k_tx we might need to chip reset to actually tx. my guess
> is there is something dependent there. i think i can add a patch with
> some of our debug messages which helps us what is happening for you
>
> reverting breaks unassociated power save case :(
>
> >
> > With 3.4-rc2 and c1afdaff90538ef085b756454f12b29575411214 reverted
> > the same works in 100% of cases.
> >
> >> But I agree with Ben and Sergio that it does NOT help with the
> >> issue in 3.3.1 we all see.
> >
> > I mixed up some mails and actually thought Ben had already answered
> > regarding your patch, but that is not true.
> >
> > --
> > MfG,
> >
> > Michael Leun
> >
>
>
>
> --
> thanks,
> shafi
>


--
MfG,

Michael Leun

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/