2010-04-18 08:57:29

by Richard Z

[permalink] [raw]
Subject: rc80211_minstrel.c:70 WARNING with 2.6.34-rc4

Hi,

I am getting tons of these http://www.kerneloops.org/submitresult.php?number=3048061,
appears every packet triggers that.

Can provide lots of debugging info.

Richard


2010-04-19 16:34:16

by Pavel Roskin

[permalink] [raw]
Subject: Re: rc80211_minstrel.c:70 WARNING with 2.6.34-rc4

On Sun, 2010-04-18 at 10:56 +0200, Richard Zidlicky wrote:
> Hi,
>
> I am getting tons of these http://www.kerneloops.org/submitresult.php?number=3048061,
> appears every packet triggers that.

The warning comes from the function rix_to_ndx() in rc80211_minstrel.c:

/* convert mac80211 rate index to local array index */
static inline int
rix_to_ndx(struct minstrel_sta_info *mi, int rix)
{
int i = rix;
for (i = rix; i >= 0; i--)
if (mi->r[i].rix == rix)
break;
WARN_ON(i < 0);
return i;
}

> Can provide lots of debugging info.

My impression is that WARN_ON is not warranted in that function, but it
would be interesting to know how you got to that point.

What driver are you using? What is the mode for the interface? What is
your hardware? Is there anything unusual you do that triggers the
warning? Are you using 5 GHz band by any chance? Are you using
2.6.34-rc4 or it's compat-wireless compiled for another kernel?

--
Regards,
Pavel Roskin

2010-04-19 17:41:40

by Felix Fietkau

[permalink] [raw]
Subject: Re: rc80211_minstrel.c:70 WARNING with 2.6.34-rc4

On 2010-04-19 7:41 PM, Richard Zidlicky wrote:
>
> Hi,
>
>> > I am getting tons of these http://www.kerneloops.org/submitresult.php?number=3048061,
>> > appears every packet triggers that.
>>
>> The warning comes from the function rix_to_ndx() in rc80211_minstrel.c:
>>
>> /* convert mac80211 rate index to local array index */
>> static inline int
>> rix_to_ndx(struct minstrel_sta_info *mi, int rix)
>> {
>> int i = rix;
>> for (i = rix; i >= 0; i--)
>> if (mi->r[i].rix == rix)
>> break;
>> WARN_ON(i < 0);
>> return i;
>> }
>>
>> > Can provide lots of debugging info.
>>
>> My impression is that WARN_ON is not warranted in that function, but it
>> would be interesting to know how you got to that point.
>
> I am using the rt73usb, WEP, adhoc, fixed rate(11M) on both ends:
>
> wlan0 IEEE 802.11bg ESSID:"XXXXXXXX"
> Mode:Ad-Hoc Frequency:2.442 GHz Cell: F6:B2:CB:FC:62:6C
> Tx-Power=20 dBm
> Retry long limit:7 RTS thr:off Fragment thr:off
> Encryption key: XXXXXXXXXX
> Power Management:on
>
> It is 2.6.34-rc4, no compat-wireless.
>
> As of unusual circumstances - the rt73usb driver has some bug that causes
> very high retransmit rates. On the opposite end the ath5k driver complains "cant
> handle jumbo frames".
> I had it perfectly working some time ago but need to figure out which off the many
> patches did it and apply it to the new kernel.
> This might stress minstrel more than needed but otoh it was my impression that the
> warning was triggered by every single packet.
>
> Let me know if you want any more info.
This warning typically shows up, whenever the driver reports a rate to
minstrel in the tx status that is not part of the supported/negotiated
rate set - that's the reason the index lookup above fails.

- Felix

2010-04-22 22:13:12

by Richard Z

[permalink] [raw]
Subject: Re: rc80211_minstrel.c:70 WARNING with 2.6.34-rc4

On Thu, Apr 22, 2010 at 05:38:41PM -0400, Pavel Roskin wrote:
> On Mon, 2010-04-19 at 20:00 +0200, Felix Fietkau wrote:
>
> > > can that happen when both ends are configured to a fixed rate of 11M?
> > No idea. I've never used fixed-rate. I guess it could, if it uses 11M
> > for communicating with a peer that it for some reason did not enable
> > this rate for.
>
> I think if there is a legitimate condition when it can happen, we should
> not be using WARN_ON.

certainly there must be rate limitting before it hits any stable kernel.

Richard


2010-04-19 18:00:11

by Felix Fietkau

[permalink] [raw]
Subject: Re: rc80211_minstrel.c:70 WARNING with 2.6.34-rc4

On 2010-04-19 7:55 PM, Richard Zidlicky wrote:
> On Mon, Apr 19, 2010 at 07:41:32PM +0200, Felix Fietkau wrote:
>
>
>> This warning typically shows up, whenever the driver reports a rate to
>> minstrel in the tx status that is not part of the supported/negotiated
>> rate set - that's the reason the index lookup above fails.
>
> can that happen when both ends are configured to a fixed rate of 11M?
No idea. I've never used fixed-rate. I guess it could, if it uses 11M
for communicating with a peer that it for some reason did not enable
this rate for.

- Felix

2010-04-19 17:53:52

by Richard Z

[permalink] [raw]
Subject: Re: rc80211_minstrel.c:70 WARNING with 2.6.34-rc4

On Mon, Apr 19, 2010 at 07:41:32PM +0200, Felix Fietkau wrote:


> This warning typically shows up, whenever the driver reports a rate to
> minstrel in the tx status that is not part of the supported/negotiated
> rate set - that's the reason the index lookup above fails.

can that happen when both ends are configured to a fixed rate of 11M?

Richard

2010-04-22 21:38:48

by Pavel Roskin

[permalink] [raw]
Subject: Re: rc80211_minstrel.c:70 WARNING with 2.6.34-rc4

On Mon, 2010-04-19 at 20:00 +0200, Felix Fietkau wrote:

> > can that happen when both ends are configured to a fixed rate of 11M?
> No idea. I've never used fixed-rate. I guess it could, if it uses 11M
> for communicating with a peer that it for some reason did not enable
> this rate for.

I think if there is a legitimate condition when it can happen, we should
not be using WARN_ON.

--
Regards,
Pavel Roskin

2010-04-19 17:38:39

by Richard Z

[permalink] [raw]
Subject: Re: rc80211_minstrel.c:70 WARNING with 2.6.34-rc4


Hi,

> > I am getting tons of these http://www.kerneloops.org/submitresult.php?number=3048061,
> > appears every packet triggers that.
>
> The warning comes from the function rix_to_ndx() in rc80211_minstrel.c:
>
> /* convert mac80211 rate index to local array index */
> static inline int
> rix_to_ndx(struct minstrel_sta_info *mi, int rix)
> {
> int i = rix;
> for (i = rix; i >= 0; i--)
> if (mi->r[i].rix == rix)
> break;
> WARN_ON(i < 0);
> return i;
> }
>
> > Can provide lots of debugging info.
>
> My impression is that WARN_ON is not warranted in that function, but it
> would be interesting to know how you got to that point.

I am using the rt73usb, WEP, adhoc, fixed rate(11M) on both ends:

wlan0 IEEE 802.11bg ESSID:"XXXXXXXX"
Mode:Ad-Hoc Frequency:2.442 GHz Cell: F6:B2:CB:FC:62:6C
Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key: XXXXXXXXXX
Power Management:on

It is 2.6.34-rc4, no compat-wireless.

As of unusual circumstances - the rt73usb driver has some bug that causes
very high retransmit rates. On the opposite end the ath5k driver complains "cant
handle jumbo frames".
I had it perfectly working some time ago but need to figure out which off the many
patches did it and apply it to the new kernel.
This might stress minstrel more than needed but otoh it was my impression that the
warning was triggered by every single packet.

Let me know if you want any more info.

Richard