On 16.07.2013, at 00:23, Scott Wood wrote:

> On 07/15/2013 03:55:08 PM, Alexander Graf wrote:
>> On 15.07.2013, at 22:52, Scott Wood wrote:
>> > On 07/15/2013 03:28:46 PM, Alexander Graf wrote:
>> >> On 15.07.2013, at 20:21, Scott Wood wrote:
>> >> > On 07/15/2013 10:16:41 AM, Bhushan Bharat-R65777 wrote:
>> >> >> > >>> +        printk("error: system reset returned with error %ld\n", 
>> >> >> > >>> ret);
>> >> >> > >>
>> >> >> > >> So we should fall back to the normal reset handler here.
>> >> >> > >
>> >> >> > > Do you mean return normally from here, no BUG() etc?
>> >> >> >
>> >> >> > If we guard the patching against everything, we can treat a broken 
>> >> >> > hcall as BUG.
>> >> >> > However, if we don't we want to fall back to the normal guts based 
>> >> >> > reset.
>> >> >> Will let Scott comment on this?
>> >> >> But ppc_md.restart can point to only one handler and during paravirt 
>> >> >> patching we changed this to new handler. So we cannot jump back to 
>> >> >> guts type handler
>> >> >
>> >> > I don't think it's worth implementing a fall-back scheme -- if KVM 
>> >> > advertises that the reset hcall exists, then it had better exist.
>> >> If we also check for kvm_para_available() I agree. Otherwise QEMU might 
>> >> advertise the reset hcall, but the guest kernel may not implement KVM 
>> >> hypercalls. In that case the device tree check will succeed, but the 
>> >> actual hypercall will not.
>> >
>> > Wouldn't that be a bug in QEMU?  Or in KVM for exposing the hcall 
>> > capability without implementing them?
>> No, because it would be the guest that doesn't know how to handle kvm 
>> hypercalls.
> 
> Oh, I misread "guest kernel" as "host kernel". :-P
> 
> Still, I'm not sure what sort of error you're thinking of.  If the guest 
> didn't support the hcall mechanism we would have returned from the function 
> by that point.  In fact, seeing kvm,has-reset on a different hypervisor ought 
> to mean that that hypervisor is emulating KVM in this particular respect.

Imagine we're running on KVM with this reset hcall support. Now if the guest 
has CONFIG_EPAPR_PARAVIRT enabled but CONFIG_KVM_GUEST disabled, we would patch 
the callback, but kvm_hypercall0() would be implemented as a nop.


Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to