On Wed, Oct 3, 2018 at 6:29 PM Michal Hocko <mhocko@xxxxxxxxxx> wrote: > > On Sat 29-09-18 03:36:11, Jann Horn wrote: > > commit 7a9cdebdcc17 ("mm: get rid of vmacache_flush_all() entirely") > > removed the VMACACHE_FULL_FLUSHES statistics, but didn't remove the > > corresponding entry in vmstat_text. This causes an out-of-bounds access in > > vmstat_show(). > > > > Luckily this only affects kernels with CONFIG_DEBUG_VM_VMACACHE=y, which is > > probably very rare. > > > > Having two gigantic arrays that must be kept in sync isn't exactly robust. > > To make it easier to catch such issues in the future, add a BUILD_BUG_ON(). > > > > Fixes: 7a9cdebdcc17 ("mm: get rid of vmacache_flush_all() entirely") > > Cc: stable@xxxxxxxxxxxxxxx > > Signed-off-by: Jann Horn <jannh@xxxxxxxxxx> > > Those could be two separate patches but anyway > Acked-by: Michal Hocko <mhocko@xxxxxxxx> > > to both changes. I have burned myself on this in the past as well. Build > bugon would save me a lot of debugging. I actually sent a v2 that splits this into two patches, and adds another fix for nr_tlb_remote_flush and nr_tlb_remote_flush_received for systems with CONFIG_VM_EVENT_COUNTERS=y && CONFIG_DEBUG_TLBFLUSH=y && CONFIG_SMP=n. akpm has already added the v2 patches to the mm tree.