Search Linux Wireless

Re: 4.19-rc[23] iwlwifi: BUG in swiotlb

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

 



On Mon, 2018-09-10 at 19:17 -0700, Randy Dunlap wrote:
> Hi,
> 
> Any ideas?

Hmm. Is this new?

> 2018-09-10T18:47:54.532837-07:00 dragon kernel: [   31.472371] kernel BUG at ../kernel/dma/swiotlb.c:521!

        nslots = ALIGN(size, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT;
	[...]
	BUG_ON(!nslots)

> 2018-09-10T18:47:54.613655-07:00 dragon kernel: [   31.490325]  swiotlb_alloc+0x88/0x170
> 2018-09-10T18:47:54.613656-07:00 dragon kernel: [   31.490329]  ? __kmalloc+0x1cc/0x200
> 2018-09-10T18:47:54.613657-07:00 dragon kernel: [   31.491652]  iwl_pcie_txq_alloc+0x1d4/0x3b0 [iwlwifi]

There are two calls to dma_alloc_coherent() here, should those even hit
swiotlb? The sizes of those should be
 * 256 x 128 (32k)
 * 32 x 256 (8k) [TFH, unlikely to be the case here]
 * 256 x 256 (65k) [TFH]
 * 32 x 64 (2k)
 * 256 x 64 (16k)


IO_TLB_SHIFT is 11, so we get 2k alignment, so even the smallest size
(32*64) should result in nslots being 1?

In fact, unless the driver passed *ZERO* as the size, this should never
happen (hence the BUG_ON), since ALIGN() would take care of rounding up
any smaller allocation here.

Presumably you can reproduce this pretty easily (and I don't know what
specific model of NIC you have etc.), so perhaps you can do something
like this?

https://p.sipsolutions.net/aa0dccd7a60fe176.txt

johannes



[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