Subject: Re: remplacing page mappings behind uvm
To: None <bouyer@antioche.eu.org>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 12/01/2007 23:27:11
> On Sat, Dec 01, 2007 at 10:23:40PM +0900, YAMAMOTO Takashi wrote:
> > i think the easiest fix for the problem which started this thread
> > is making libxc (back) to use non-anonymous mapping.
> > as far as you mmap a valid object (either kernfs file or device,
> > i prefer the latter), uvm_unmap calls pmap_remove for you.
>
> I agree that we should have a valid object (at last a valid map entry,
> which, as things are now, probably means a valid object). But I'm not sure
> at all that mmaping a device to get the object at mmap time rather than
> ioctl time makes things easiers.
it makes things easier because we don't need to make vm provide
a functionality to replace existing vm entries.
more importantly, it's less hackish. :)
> This doesn't fix the problems with the
> ioctl,
the problem with the ioctl is that it replaces the existing mapping.
if you mmap the device, you can control the existing mapping.
> and introduce some more issues (like, we can't provide physical
> addresses to udv_attach() or udv_fault() because these are not physical
> adresses, and we don't even have them at the time of mmap).
as far as ioctl does pmap_enter_ma by itself, udv_fault implies
an error of user.
> And this issue also needs to be solved in netbsd-4, I want to keep
> binary compatibility here.
>
> --
> Manuel Bouyer <bouyer@antioche.eu.org>
> NetBSD: 26 ans d'experience feront toujours la difference
> --
i personally don't think it's worth to keep bug-to-bug compatibility for
this. if it was for a linux-compatibility thing which we can't
control, i can understand. but it's a netbsd specific interface.
it isn't the first time this interface is changed without keeping
binary compatibility. (it's a little ironic that this "replace anonymous
mapping" thing was introduced by the last change which didn't keep binary
compatibility.)
YAMAMOTO Takashi