Re: [PATCH 3/5] v2 seccomp_filters: Enable ftrace-based system call filtering

Avi Kivity
2011-05-26T18:07:35Z

On 05/26/2011 02:38 PM, Ingo Molnar wrote:
> * Avi Kivity<avi@redhat.com> wrote:
>
> > > The biggest amount of RAM is the guest RAM image - but if that is
> > > mmap(SHARED) and mapped using hugepages then the pte overhead
> > > from a process model is largely mitigated.
> >
> > That doesn't work with memory hotplug.
>
> Why not, if we do the sensible thing and restrict the size
> granularity and alignment of plugged/unplugged memory regions to 2MB?

Once forked, you cannot have new shared anonymous memory, can you?

> We can fix guest Linux as well to not be stupid about the sizing of
> memory hotplug requests. It does hotplug based on the memory map we
> pass to it anyway.
>
> Am i missing something obvious here?

Yes, the new mmap() will be only visible in the calling process.

> > > Maybe even the isolation and per device access control of
> > > *same-class* devices from each other is possible: with careful
> > > implementation of the subsystem shared data structures. (which
> > > isnt much really)
> >
> > Right, hardly at all in fact. The problem comes from the side-band
> > issues like reset, interrupts, hotplug, and whatnot.
>
> Yeah. There are two good aspects here i think:
>
> - The sideband IPC overhead does not matter much, it's a side band.
>
> - Spending the effort to isolate configuration details is worth it:
> sideband code is a primary breeding ground for bugs and security
> holes.
>
> The main worry to me would be the maintainability difference: does it
> result in much more complex code? As always i'm cautiously optimistic
> about that: i think once we try it we can find a suitable model ...
> It might even turn out to be more readable and more flexible in the
> end.

I also believe it will be more maintainable, especially if written in a
language that has explicit support for message passing (e.g. Erlang).
This is because it is more similar to how hardware actually works.
However it needs to be designed in, it's not just a matter of switching
a thread to a process.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.