tech-kern archive

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

Re: Lightweight virtualization - the rump approach



On Sun, 16 May 2010 16:09:03 +0300, Antti Kantee <pooka%cs.hut.fi@localhost> 
wrote:
> On Sat May 15 2010 at 22:41:29 +0200, Jean-Yves Migeon wrote:
>> Let's take an example; suppose that $somefs_support is integrated in 
>> NetBSD (like ZFS, NILFS, ...), what kind of additional work is needed
to 
>> go from mount_somefs to rump_somefs (thinking about all _KERNEL 
>> functions that are missing).
> 
> Well, first of all you're falling into the microkernel two-faceted trap
> again with your example ;)
> 
> rump_somefs is the *userspace* part.  Actually, all the rump_somefs are
> somewhat misnamed.  I think p2k_somefs would be a better name, but it's
> not really worth changing anymore.

I am probably missing something then; p2k being a translation layer, it is
shared between the different rump_* parts. As such, I considered
(wrongfully maybe?) that the interface/protocol communication is not
expected to change with regards to rump_* components. Which means that
having rump_somefs support is a matter of making its code run in userland,
and talk with the kernel through p2k (which remains untouched in this
case).

>> >Well, maybe.  That does make some sense if you already are capable
>> >of hosting domU's.  I never found Xen very convenient for my use case
>> >(occasional testing) because it needs a special dom0 kernel.  Why
isn't
>> >that stuff in GENERIC again?  IIRC there were some device support
issues
>> >years ago, but do they still remain?
>> 
>> At least for x86, key parts of MD code are handled differently, 
>> especially pmap(9), locore's boot stuff, and some bus_space code. So
you 
>> have #ifdef/inline thingies, which are, as you have noticed, not that 
>> well modular-friendly.
>> 
>> Making this MD part dynamic would need some clean up in x86+xen, and 
>> probably introduce function pointers to make the thing more dynamic and

>> "stable", like Linux and the big paravirt_ops.
>> 
>> dom0 vs domU is another story, it is basically a reduced version of 
>> dom0, cleaned from all drivers and code that are not required for a 
>> domU. May become unnecessary when kernel becomes more and more modular:
>> -rwxr-xr-x  1 root  wheel   11M Apr 28 09:21 netbsd_XEN3PAE_DOM0
>> -rwxr-xr-x  1 root  wheel  4,1M Apr 28 09:21 netbsd_XEN3PAE_DOMU
> 
> I don't care about domU differences that much (in my use case), it's the
> dom0 which is the showstopper.  Frankly, I'd love to be able to run my
> anita testing with xen instead of qemu, since unaccelerated qemu tends
> to be quite slow (and my laptop doesn't support VT-x anyway).

IIUC:
1 - you want GENERIC to be bootable directly as a dom0, just to be able to
launch Xen PV guests
2 - perform anita test on a GENERIC kernel launched within a domU

Correct?

> *) unless we're talking about the shaken cocktail with equal parts gin,
> maraschino, chartreuse and lime juice.

Heh, first time I heard from that one. Probably not the last, though ;)

-- 
Jean-Yves Migeon
jeanyves.migeon%free.fr@localhost




Home | Main Index | Thread Index | Old Index