On the rockpro64 as well as on the rpi4 if too much swapping occurs
biowait() returns an error (B_ERROR) in both cases it seems to come
from sdmmc_complete_xs().  I see the following:

sdmmc_complete_xs: write error = 35
sdmmc_complete_xs: read error = 35
c++: B_ERROR after biowait()
c++: error 4 from uvmfault_anonget()
udata_abort: error 13
sdmmc_complete_xs: read error = 35
c++: B_ERROR after biowait()
c++: error 4 from uvmfault_anonget()
udata_abort: error 13

And:

sdmmc_complete_xs: read error = 60
c++: B_ERROR after biowait()
c++: error 4 from uvmfault_anonget()
udata_abort: error 13

kettenis@ suggested the kernel thread in the sdmmc stack cannot run
because the page daemon is holding the KERNEL_LOCK() which makes the
transfers time out...

Reply via email to