Time to post some patches?

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

 



Rusty Russell wrote:
> On Mon, 2006-07-31 at 01:50 -0700, Zachary Amsden wrote:
>   
>> Rusty Russell wrote:
>>     
>>>>     fixmap-bootparam.patch    
>>>>         
>>> While this would justify the above patch, it is IMHO, the wrong approach
>>> for adding a paravirt module later: a module shouldn't fail to load
>>> because you forgot a boot cmdline param.  I really think a #ifdef
>>> CONFIG_XXX_MODULE would be clearer.
>>>       
>> We can't rely on a compile time kernel option - we really must have a 
>> boot parameter.  This is not the wrong approach.  If you forgot to add 
>> the boot parameter, so be it.  You reboot and the paravirt module can 
>> load.  The whole approach only makes sense if you can fully virtualize 
>> the kernel boot, so this is a completely plausible scenario.
>>     
>
> The approach also makes sense for booting a kernel on native hardware,
> then inserting a hypervisor later (ie. turning it into dom0).  I'll not
> be relying on an obscure cmdline boot option for that...
>   

But surely, you would provide room for it?  I don't care how obscure it 
is, I just care that it is possible.

>> What we don't want to do is force Linux to have to move the fixmap at 
>> runtime.  I think that could be very, very messy.  Course, it may be 
>> possible (with a dynamic fixmap, it moves into that realm).  But to 
>> completely remove the boot parameter without the ability to change the 
>> fixmap at runtime makes dynamic loading of a hypervisor module impossible.
>>     
>
> No, because if they compiled the kernel with (say) CONFIG_VMI=m, the
> fixmap would always be low even for "native".  No cmdline option
> necessary...
>   

Sure, this is much cleaner - with a nicely configured kernel.

>> Besides, it is useful for testing the performance impact of reducing 
>> lowmem - which I don't think has been adequately benchmarked to this 
>> day, and is still an area of investigation.
>>     
>
> Sure, but that hardly has to go into the mainline...
>
> This is a change only useful for paravirtualization, yet it's not #ifdef
> CONFIG_PARAVIRT'ed.  I feel it's a little dishonest (and mission
> creepish) to push this as some kind of general change, when a three-line
> patch will do what we need for now...
>   

I have no problem waiting to push this change, but I think we absolutely 
must have it.  The point is, without this patch, it is possible to 
compile a kernel in such a way that the kernel will never be able to 
relocate the fixmap to provide room for a post-boot-time hypervisor.  In 
which case, the kernel is limited to the set of compiled in boot-time 
hypervisors, which may not be sufficient.  If someone decides to drop 
vendor X's hypervisor support from the compiled in set in distro Y, 
vendor X has no way to run distro Y paravirtualized.  If a new vendor 
emerges on the scene in 2 years time, and supporting VMs that run Linux 
kernel 2.6.19 with high performance is of critical importance, that 
vendor is locked out of the market.

Having configuration time chosen hypervisors leaves room to start this 
type of compatibility war, and with multiple emerging hypervisor 
vendors, I think that is something we really do not want to see.  We 
want end users to be able to use the full functionality and performance 
that paravirtualization can provide, regardless of which hypervisor or 
distro they are using.  Paravirtualization should be a _feature_ the 
kernel provides, not a mechanism to limit compatibility to a particular 
set of software.  That is the subtle point I am pushing for with this 
change.

Zach


[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux