hacked 4.4.6+, 10.4.3 firmware, Running out of ring-index for pipe-id 3 (WMI).

Ben Greear greearb at candelatech.com
Mon Mar 28 12:01:37 PDT 2016


I'm seeing the ring-full messages below when running 35 stations on
modified 10.4.3 firmware.  I also have serial console logging enabled, so
things are running a bit slow...this seems to exacerbate the issue.

[   91.108923] ath10k_pci 0000:05:00.0: htc failed hif-tx-sq: -105 eid: 2 credits: 1 ep->tx_credits: 1  credit-flow-enabled: 1
[   91.108932] ath10k_pci 0000:05:00.0: could not request stats (type 128 ret -105)
[   91.108942] ath10k_pci 0000:05:00.0: hif-tx-sg, full, nentries_mask: 0x1f  write_idx: 2 sw-idx: 3  n_items: 1 pipe-id: 3
[   91.108944] ath10k_pci 0000:05:00.0: htc failed hif-tx-sq: -105 eid: 2 credits: 1 ep->tx_credits: 1  credit-flow-enabled: 1
[   91.108952] ath10k_pci 0000:05:00.0: could not request stats (type 1 ret -105)
[   91.108953] ath10k_pci 0000:05:00.0: failed to get fw stats for ethtool: -105
[   91.109039] ath10k_pci 0000:05:00.0: hif-tx-sg, full, nentries_mask: 0x1f  write_idx: 2 sw-idx: 3  n_items: 1 pipe-id: 3
[   91.109041] ath10k_pci 0000:05:00.0: htc failed hif-tx-sq: -105 eid: 2 credits: 1 ep->tx_credits: 1  credit-flow-enabled: 1
[   91.109050] ath10k_pci 0000:05:00.0: could not request stats (type 128 ret -105)
[   91.109060] ath10k_pci 0000:05:00.0: hif-tx-sg, full, nentries_mask: 0x1f  write_idx: 2 sw-idx: 3  n_items: 1 pipe-id: 3
[   91.109062] ath10k_pci 0000:05:00.0: htc failed hif-tx-sq: -105 eid: 2 credits: 1 ep->tx_credits: 1  credit-flow-enabled: 1
[   91.109070] ath10k_pci 0000:05:00.0: could not request stats (type 1 ret -105)
[   91.109072] ath10k_pci 0000:05:00.0: failed to get fw stats for ethtool: -105
[   91.109157] ath10k_pci 0000:05:00.0: hif-tx-sg, full, nentries_mask: 0x1f  write_idx: 2 sw-idx: 3  n_items: 1 pipe-id: 3
[   91.109160] ath10k_pci 0000:05:00.0: htc failed hif-tx-sq: -105 eid: 2 credits: 1 ep->tx_credits: 1  credit-flow-enabled: 1


I am struggling to understand how the pipe can be full since we have tx-credits logic
enabled for the WMI pipe.

Any suggestions on what sort of bugs could cause this?

And, should the ath10k_wmi_cmd_send retry when we get a -105 return
code in hopes it will free up shortly instead of just failing and leaving
the system in invalid state?


Debug message comes from the warning I added below:

static int ath10k_pci_hif_tx_sg(struct ath10k *ar, u8 pipe_id,
				struct ath10k_hif_sg_item *items, int n_items)
{
	struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
	struct ath10k_pci_pipe *pci_pipe = &ar_pci->pipe_info[pipe_id];
	struct ath10k_ce_pipe *ce_pipe = pci_pipe->ce_hdl;
	struct ath10k_ce_ring *src_ring = ce_pipe->src_ring;
	unsigned int nentries_mask;
	unsigned int sw_index;
	unsigned int write_index;
	int err, i = 0;

	spin_lock_bh(&ar_pci->ce_lock);

	nentries_mask = src_ring->nentries_mask;
	sw_index = src_ring->sw_index;
	write_index = src_ring->write_index;

	if (unlikely(CE_RING_DELTA(nentries_mask,
				   write_index, sw_index - 1) < n_items)) {
		ath10k_warn(ar, "hif-tx-sg, full, nentries_mask: 0x%x  write_idx: %d sw-idx: %d  n_items: %d pipe-id: %d\n",
			    nentries_mask, write_index, sw_index, n_items, pipe_id);
		err = -ENOBUFS;
		goto err;
	}

Thanks,
Ben

-- 
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc  http://www.candelatech.com




More information about the ath10k mailing list