Re: [PATCH RFC v2] mm: Add f_ops->populate()

2022-03-07 Thread Jarkko Sakkinen
On Mon, Mar 07, 2022 at 07:29:22AM -0800, Dave Hansen wrote: > On 3/7/22 03:27, Jarkko Sakkinen wrote: > > But e.g. in __mm_populate() anything with (VM_IO | VM_PFNMAP) gets > > filtered out and never reach that function. > > > > I don't know unorthodox that'd be but could we perhaps have a VM > >

Re: [PATCH RFC v2] mm: Add f_ops->populate()

2022-03-07 Thread Jarkko Sakkinen
On Mon, Mar 07, 2022 at 02:37:48PM +, Matthew Wilcox wrote: > On Sun, Mar 06, 2022 at 03:41:54PM -0800, Dave Hansen wrote: > > In short: page faults stink. The core kernel has lots of ways of > > avoiding page faults like madvise(MADV_WILLNEED) or mmap(MAP_POPULATE). > > But, those only work

Re: [PATCH RFC v2] mm: Add f_ops->populate()

2022-03-07 Thread Dave Hansen
On 3/7/22 03:27, Jarkko Sakkinen wrote: > But e.g. in __mm_populate() anything with (VM_IO | VM_PFNMAP) gets > filtered out and never reach that function. > > I don't know unorthodox that'd be but could we perhaps have a VM > flag for SGX? SGX only works on a subset of the chips from one vendor o

Re: [PATCH RFC v2] mm: Add f_ops->populate()

2022-03-07 Thread Matthew Wilcox
On Sun, Mar 06, 2022 at 03:41:54PM -0800, Dave Hansen wrote: > In short: page faults stink. The core kernel has lots of ways of > avoiding page faults like madvise(MADV_WILLNEED) or mmap(MAP_POPULATE). > But, those only work on normal RAM that the core mm manages. > > SGX is weird. SGX memory i

Re: [PATCH RFC v2] mm: Add f_ops->populate()

2022-03-07 Thread Jarkko Sakkinen
On Sun, Mar 06, 2022 at 03:24:56PM -0800, Andrew Morton wrote: > On Sun, 6 Mar 2022 05:26:55 +0200 Jarkko Sakkinen wrote: > > > Sometimes you might want to use MAP_POPULATE to ask a device driver to > > initialize the device memory in some specific manner. SGX driver can use > > this to request

Re: [PATCH RFC v2] mm: Add f_ops->populate()

2022-03-07 Thread Jarkko Sakkinen
On Sun, Mar 06, 2022 at 03:41:54PM -0800, Dave Hansen wrote: > On 3/6/22 15:24, Andrew Morton wrote: > > On Sun, 6 Mar 2022 05:26:55 +0200 Jarkko Sakkinen > > wrote: > > > >> Sometimes you might want to use MAP_POPULATE to ask a device driver to > >> initialize the device memory in some specifi

Re: [PATCH RFC v2] mm: Add f_ops->populate()

2022-03-06 Thread Dave Hansen
On 3/6/22 15:24, Andrew Morton wrote: > On Sun, 6 Mar 2022 05:26:55 +0200 Jarkko Sakkinen wrote: > >> Sometimes you might want to use MAP_POPULATE to ask a device driver to >> initialize the device memory in some specific manner. SGX driver can use >> this to request more memory by issuing ENCLS

Re: [PATCH RFC v2] mm: Add f_ops->populate()

2022-03-06 Thread Andrew Morton
On Sun, 6 Mar 2022 05:26:55 +0200 Jarkko Sakkinen wrote: > Sometimes you might want to use MAP_POPULATE to ask a device driver to > initialize the device memory in some specific manner. SGX driver can use > this to request more memory by issuing ENCLS[EAUG] x86 opcode for each > page in the addr

[PATCH RFC v2] mm: Add f_ops->populate()

2022-03-05 Thread Jarkko Sakkinen
Sometimes you might want to use MAP_POPULATE to ask a device driver to initialize the device memory in some specific manner. SGX driver can use this to request more memory by issuing ENCLS[EAUG] x86 opcode for each page in the address range. Add f_ops->populate() with the same parameters as f_ops-