Re: [RFC 18/18] proc: present VM_LOCKED memory in /proc/self/maps

From: Topi Miettinen
Date: Mon Jun 13 2016 - 16:52:30 EST


On 06/13/16 20:43, Kees Cook wrote:
> On Mon, Jun 13, 2016 at 10:44:25PM +0300, Topi Miettinen wrote:
>> Add a flag to /proc/self/maps to show that the memory area is locked.
>>
>> Signed-off-by: Topi Miettinen <toiwoton@xxxxxxxxx>
>> ---
>> fs/proc/task_mmu.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
>> index 4648c7f..8229509 100644
>> --- a/fs/proc/task_mmu.c
>> +++ b/fs/proc/task_mmu.c
>
> If you change the maps format, you'll need to update task_nommu.c too.
>
>> @@ -313,13 +313,14 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
>> end -= PAGE_SIZE;
>>
>> seq_setwidth(m, 25 + sizeof(void *) * 6 - 1);
>
> I think the width needs to be adjusted for the new character.
>
>> - seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu ",
>> + seq_printf(m, "%08lx-%08lx %c%c%c%c%c %08llx %02x:%02x %lu ",
>
> Have you checked that no userspace tools that parse "maps" will break with
> this flag addition?
>
>> start,
>> end,
>> flags & VM_READ ? 'r' : '-',
>> flags & VM_WRITE ? 'w' : '-',
>> flags & VM_EXEC ? 'x' : '-',
>> flags & VM_MAYSHARE ? 's' : 'p',
>> + flags & VM_LOCKED ? 'l' : '-',
>
> IIUC, the smaps file already includes the locked information in VmFlags as
> "lo" (see show_smap_vma_flags), so I think you probably don't want this
> patch at all.

Yes. the amount of locked memory is also shown:
Locked: 8 kB
VmFlags: rd wr mr mw me lo ac sd

Sorry, I didn't notice that. I'll drop the patch.

-Topi

>
> -Kees
>
>> pgoff,
>> MAJOR(dev), MINOR(dev), ino);
>>
>> --
>> 2.8.1
>