lkml.org 
[lkml]   [2012]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] vfio powerpc: enabled on powernv platform
From
Date
On Thu, 2012-12-13 at 13:57 +1100, Benjamin Herrenschmidt wrote:
> On Wed, 2012-12-12 at 16:30 -0700, Alex Williamson wrote:
> > Locked page accounting in this version is very, very broken. How do
> > powerpc folks feel about seemingly generic kernel iommu interfaces
> > messing with the current task mm? Besides that, more problems
> > below...
>
> After a second look & thought...
>
> This whole accounting business is fucked. First, we simply can't just
> randomly return errors from H_PUT_TCE because the process reached some
> rlimit. This is not a proper failure mode. That means that the guest
> will probably panic() ... possibly right in the middle of some disk
> writeback or god knows what. Not good.
>
> Also the overhead of doing all that crap on every TCE map/unmap is
> ridiculous.
>
> Finally, it's just not going to work for real mode which we really want,
> since we can't take the mmap-sem in real mode anyway, so unless we
> convert that counter to an atomic, we can't do it.
>
> I'd suggest just not bothering, or if you want to bother, check once
> when creating a TCE table that the rlimit is enough to bolt as many
> pages as can be populated in that table and fail to create *that*. The
> failure mode is much better, ie, qemu failing to create a PCI bus due to
> insufficient rlimits.

I agree, we don't seem to be headed in the right direction. x86 needs
to track rlimits or else a user can exploit the interface to pin all the
memory in the system. On power, only the iova window can be pinned, so
it's a fixed amount. I could see it as granting access to a group
implicitly grants access to pinning the iova window. We can still make
it more explicit by handling the rlimit accounting upfront. Thanks,

Alex



\
 
 \ /
  Last update: 2012-12-13 05:01    [W:0.085 / U:0.444 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site