Search Linux Wireless

Re: [PATCH v7] mac80211: Switch to a virtual time-based airtime scheduler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi "Toke,

I love your patch! Perhaps something to improve:

[auto build test WARNING on mac80211-next/master]
[also build test WARNING on next-20210505]
[cannot apply to mac80211/master v5.12]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Toke-H-iland-J-rgensen/mac80211-Switch-to-a-virtual-time-based-airtime-scheduler/20210505-224557
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: i386-randconfig-s002-20210505 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # https://github.com/0day-ci/linux/commit/4ff38b3940e58b3d8e44594f44f2f700e5b930b5
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Toke-H-iland-J-rgensen/mac80211-Switch-to-a-virtual-time-based-airtime-scheduler/20210505-224557
        git checkout 4ff38b3940e58b3d8e44594f44f2f700e5b930b5
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)
>> net/mac80211/tx.c:4020:6: sparse: sparse: context imbalance in 'ieee80211_txq_may_transmit' - wrong count at exit

vim +/ieee80211_txq_may_transmit +4020 net/mac80211/tx.c

3ace10f5b5ad94 Kan Yan                2019-11-18  4019  
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18 @4020  bool ieee80211_txq_may_transmit(struct ieee80211_hw *hw,
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4021  				struct ieee80211_txq *txq)
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4022  {
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4023  	struct txq_info *first_txqi = NULL, *txqi = to_txq_info(txq);
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4024  	struct ieee80211_local *local = hw_to_local(hw);
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4025  	struct airtime_sched_info *air_sched;
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4026  	struct airtime_info *air_info;
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4027  	struct rb_node *node = NULL;
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4028  	bool ret = false;
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4029  	u64 now;
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4030  
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4031  
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4032  	if (!ieee80211_txq_airtime_check(hw, txq))
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4033  		return false;
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4034  
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4035  	air_sched = &local->airtime[txq->ac];
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4036  	spin_lock_bh(&air_sched->lock);
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4037  
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4038  	if (RB_EMPTY_NODE(&txqi->schedule_order))
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4039  		goto out;
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4040  
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4041  	now = ktime_get_boottime_ns();
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4042  
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4043  	/* Like in ieee80211_next_txq(), make sure the first station in the
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4044  	 * scheduling order is eligible for transmission to avoid starvation.
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4045  	 */
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4046  	node = rb_first_cached(&air_sched->active_txqs);
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4047  	if (node) {
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4048  		first_txqi = container_of(node, struct txq_info,
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4049  					  schedule_order);
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4050  		air_info = to_airtime_info(&first_txqi->txq);
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4051  
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4052  		if (air_sched->v_t < air_info->v_t)
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4053  			airtime_catchup_v_t(air_sched, air_info->v_t, now);
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4054  	}
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4055  
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4056  	air_info = to_airtime_info(&txqi->txq);
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4057  	if (air_info->v_t <= air_sched->v_t) {
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4058  		air_sched->last_schedule_activity = now;
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4059  		ret = true;
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4060  	}
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4061  
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4062  	spin_unlock_bh(&air_sched->lock);
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4063  out:
4ff38b3940e58b Toke Høiland-Jørgensen 2021-05-05  4064  	return ret;
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4065  }
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4066  EXPORT_SYMBOL(ieee80211_txq_may_transmit);
b4809e9484da14 Toke Høiland-Jørgensen 2018-12-18  4067  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- kbuild@xxxxxxxxxxxx
To unsubscribe send an email to kbuild-leave@xxxxxxxxxxxx

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux