Page table leak on TP-Link TD-W8980 with OpenWRT 18.06.2

I have recently resurrected a TP-Link TD-W8980 that I was last using about 18 months ago. The first thing I did before setting it up was I upgraded to OpenWRT 18.06.2. I foolishly didn't take note of the image I was using before, but I think it might have been from LEDE 17.01.

I've noticed that there appears to be a page table leak, of about 20MB per 12 hours. The page table usage is as reported by /proc/meminfo. I've tried removing the ath9k modules and the issue still persists. The individual process memory usage reported in /proc//status doesn't appear to indicate any process that's consuming all these page tables.

My first though was to try installing the last LEDE 17.01 image and see if the problem persists, but I realised I should probably just build the latest OpenWRT and enable some debugging options to narrow down the issue. It's been a couple of years since I did any Linux kernel development, so was looking for any suggestions on suggested config options.

Is kmemleak likely to be sufficient or are there some other methods that are more likely to show where the issue is?

Did you install/update any extra packages?

fwiw, I only read of one other report of memory leak in 18.06.2 with a HH5A which uses same Lantiq SoC as TD-W8980. The issue didn't exist in 18.06.1.

The only user-installed packages are muninlite and xinetd so that I could monitor why the router would stop responding about once a day and the memory graph from munin made it fairly clear:

The drops in that graph are from the script I added that reboots every time page table usage reported by /proc/meminfo exceeds 20MB.

I'll try building a custom OpenWRT image tonight with kmemleak and page owner support in the kernel and see if they show anything interesting.

Upgrading to a build of the latest master for OpenWRT (so kernel version 4.14.131) has fixed this.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.