2015-03-26 13:38:04

by Cedric VONCKEN

[permalink] [raw]
Subject: [mac80211]synchronize_net call in ieee_tx_ba_session_handle_start

The synchronize_net called in function ieee_tx_ba_session_handle_start
generate a jiter after the association. I can observe a long period
(100ms or more) where no data are sent because mac80211 is blocked in
synchronize_net.

My product has several network interface and processor with 4 cores.

If I understood correctly, in case we use the ath9k driver, the function
drv_ampdu_action will call the ath_tx_aggr_start and this function will
flush the tx pending packet and return the next sequence number. So in
this case it is not necessary to call this function.

Is it possible to remove this function, or I need to consider another
case?

Thanks for your help.

Cedric Voncken.



2015-03-30 07:58:52

by Johannes Berg

[permalink] [raw]
Subject: Re: [mac80211]synchronize_net call in ieee_tx_ba_session_handle_start

On Thu, 2015-03-26 at 14:17 +0100, Cedric VONCKEN wrote:
> The synchronize_net called in function ieee_tx_ba_session_handle_start
> generate a jiter after the association. I can observe a long period
> (100ms or more) where no data are sent because mac80211 is blocked in
> synchronize_net.
>
> My product has several network interface and processor with 4 cores.
>
> If I understood correctly, in case we use the ath9k driver, the function
> drv_ampdu_action will call the ath_tx_aggr_start and this function will
> flush the tx pending packet and return the next sequence number. So in
> this case it is not necessary to call this function.
>
> Is it possible to remove this function, or I need to consider another
> case?

I believe you need to consider concurrent TX processing inside mac80211.

johannes