On 12/11/2017 06:45 AM, Noralf Trønnes wrote:
Den 11.12.2017 04.28, skrev David Lechner:
I'm using drm-misc/drm-misc-next and occasionally getting errors as seen in the stack traces below. I'm not really sure what to make of it. Any ideas?
I'm starting to wonder if there is some sort of race condition involved. I only get this warning on some boots, but when I do, it happens multiple times. Also, when I was debugging a an unrelated problem, I enabled some of the spin lock checking kernel options that really slow down the kernel. When I did this, I got this warning all of the time.
Would it be sensible to allocate a dummy RX buffer once instead of letting SPI allocate a new one for every transfer?
The spi controller driver has told the spi core to allocate dummy buffers for tx/rx: spi_sync -> __spi_pump_messages -> spi_map_msg -> krealloc -> __do_krealloc -> kmalloc_track_caller
order:4 means it's trying to allocate 2^4*PAGE_SIZE = 64kB, which probably is the max DMA limit. So this is a pixel data transfer.
On my Raspberry Pi I've got 43 chunks of 64kB available if I have understood this right:
$ sudo cat /proc/buddyinfo Node 0, zone Normal 40 68 66 51 43 46 13 1 3 3 75
I don't know what those dummy buffers are used for.
Noralf.