[LEDE-DEV] MMAP memory out of sync on AR71xx Rambutan (8devices) board.

Daniel Danzberger daniel at dd-wrt.com
Sun May 6 03:52:52 PDT 2018


MMAP'ed memory that has been allocated via 'get_zeroed_page(GFP_KERNEL)' or
'vmalloc()' doesn't always contain the same data when accessed from userspace.

This means all userspace programs using mmap to access kernel memory aren't
always working properly on the Rambutan board. I am currently testing if other
ar71xx devices are affected as well.

I first noticed this when using ALSA's mmap api to capture audio.

Here is the feed for a kmod + userpace util to reproduce the issue:
git at github.com:dddaniel/mmaptest.git

The kernel module simply allocates a page and initializes it with 0xff.
The userspace application then mmap's and reads this page 10 times with a 500ms
delay an checks if all data is 0xff.

---
root at OpenWrt:/# mmaptest-user
mmap addr: 0x77a04000
[  760.464968] mmap page 7573000 at va 87573000
check memory ...FAIL (at byte 0)
check memory ...FAIL (at byte 96)
check memory ...FAIL (at byte 96)
check memory ...FAIL (at byte 96)
check memory ...FAIL (at byte 128)
---

I have no idea whats causing it. Does anybody have a hint on how to fix this ?

-- 
Regards

Daniel Danzberger
embeDD GmbH, Alter Postplatz 2, CH-6370 Stans



More information about the Lede-dev mailing list