Re: [PATCH] proc: do not show VmExe bigger than total executable virtual memory

From: Andrew Morton
Date: Tue Oct 10 2017 - 18:25:10 EST


On Fri, 06 Oct 2017 14:32:34 +0300 Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx> wrote:

> If start_code / end_code pointers are screwed then "VmExe" could be bigger
> than total executable virtual memory and "VmLib" becomes negative:
>
> VmExe: 294320 kB
> VmLib: 18446744073709327564 kB
>
> VmExe and VmLib documented as text segment and shared library code size.
>
> Now their sum will be always equal to mm->exec_vm which sums size of
> executable and not writable and not stack areas.

When does this happen? What causes start_code/end_code to get "screwed"?

When these pointers are screwed, the result of end_code-start_code can
still be wrong while not necessarily being negative, yes? In which
case we'll still display incorrect output?