RE: [RESEND RFC PATCH 0/5] Remote mapping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Fri, Sep 04, 2020 at 02:18:37PM +0000, Mircea CIRJALIU - MELIU wrote:
> > > This seems really sketchy, get_user_pages is sensitive to the VMA,
> > > what happens when VMA flags are different/etc?
> >
> > A debugger shouldn't complain if a portion of the debuggee is
> > read-only, just overwrite the data.
> 
> At this point the kernel API here is so incredibly limited you may as well use a
> memfd for passing the shared address space instead of trying to do and
> maintain this complexity.
> 
> Your use case is only qemu, so what is the problem to replace the allocator
> backing VM memory in userspace? Other people have been talking about
> doing a memfd already for different reasons - and memfd can already be
> shared as this scheme desires.

KSM doesn't work on shmem.
Once you replace the allocator you render KSM useless.

Besides that, I had a mail once from Paolo Bonzini:
>> Hi,
>>
>> here at FOSDEM we discussed having a way for a parent process to 
>> split parts of an mmap range with one or more child processes.  This 
>> turns out to be a generalization of the remote memory mapping concept 
>> that BitDefender proposed for virtual machine introspection ( 
>> https://patchwork.kernel.org/patch/11284561/).  So far the patches 
>> haven't had a great reception from the MM people, but it shouldn't be 
>> hard to adjust the API according to the sketch below.  I am also 
>> including Mircea who is the author.
>>
>> The proposed API is a new pidfd system call, through which the parent 
>> can map portions of its virtual address space into a file descriptor 
>> and then pass that file descriptor to a child.
(the rest can be found in the cover letter)

Therefore I had to do a module that peeks into anon process memory.
And be compatible with KSM. This was among the requirements for the first
version of remote mapping, which ended up non-scalable.

Figures out it can peek into any kind of memory involving pages.
Also it doesn't have the overhead associated with mapping a page in a VMA.
And compared to ptrace(), it can keep the pages resident as long as needed.

Mircea




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux