Re: [PATCH v7 25/27] mm/mmap: Add Shadow stack pages to memory accounting

From: Dave Hansen
Date: Tue Jun 11 2019 - 14:00:11 EST


On 6/6/19 1:06 PM, Yu-cheng Yu wrote:
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -1703,6 +1703,9 @@ static inline int accountable_mapping(struct file *file, vm_flags_t vm_flags)
> if (file && is_file_hugepages(file))
> return 0;
>
> + if (arch_copy_pte_mapping(vm_flags))
> + return 1;
> +
> return (vm_flags & (VM_NORESERVE | VM_SHARED | VM_WRITE)) == VM_WRITE;
> }
>
> @@ -3319,6 +3322,8 @@ void vm_stat_account(struct mm_struct *mm, vm_flags_t flags, long npages)
> mm->stack_vm += npages;
> else if (is_data_mapping(flags))
> mm->data_vm += npages;
> + else if (arch_copy_pte_mapping(flags))
> + mm->data_vm += npages;
> }

This classifies shadow stack as data instead of stack. That seems a wee
bit counterintuitive. Why did you make this choice?