Tyrel Datwyler <turtle.in.the.ker...@gmail.com> writes: > On 06/27/2014 12:37 AM, Nikunj A Dadhania wrote: >> PAPR compliant guest calls this in absence of kdump. This finally >> reaches the guest and can be handled according to the policies set by >> higher level tools(like taking dump) for further analysis by tools like >> crash. >> >> Linux kernel calls this only when the extended version of os,term is >> implemented to make sure that a return to the linux kernel is gauranteed. >> >> CC: Benjamin Herrenschmidt <b...@au1.ibm.com> >> CC: Anton Blanchard <an...@samba.org> >> CC: Alexander Graf <ag...@suse.de> >> Signed-off-by: Nikunj A Dadhania <nik...@linux.vnet.ibm.com> >> >> --- >> >> v2: rebase to ppcnext >> v3: Do not stop the VM, and update comments >> v4: update spapr_register_rtas and qapi_event changes >> --- >> hw/ppc/spapr_rtas.c | 36 ++++++++++++++++++++++++++++++++++++ >> 1 file changed, 36 insertions(+) >> >> diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c >> index 9ba1ba6..b11de41 100644 >> --- a/hw/ppc/spapr_rtas.c >> +++ b/hw/ppc/spapr_rtas.c >> @@ -277,6 +277,38 @@ static void rtas_ibm_set_system_parameter(PowerPCCPU >> *cpu, >> rtas_st(rets, 0, ret); >> } >> >> +static void rtas_ibm_os_term(PowerPCCPU *cpu, >> + sPAPREnvironment *spapr, >> + uint32_t token, uint32_t nargs, >> + target_ulong args, >> + uint32_t nret, target_ulong rets) >> +{ >> + target_ulong ret = 0; >> + >> + qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_PAUSE, &error_abort); >> + >> + rtas_st(rets, 0, ret); >> +} >> + >> +/* >> + * According to PAPR, rtas ibm,os-term, does not gaurantee a return >> + * back to the guest cpu. >> + * >> + * While an additional ibm,extended-os-term property indicates that >> + * rtas call return will always occur. Below function implements a >> + * place holder for the same. >> + */ > > PAPR defines ibm,extended-os-term as a null encoded property not a rtas > function. It should be added to the device tree in the > spapr_create_fdt_skel function under the "rtas" node. The following > should suffice. > > _FDT((fdt_property(fdt, "ibm,extended-os-term", NULL, 0))); >
Sure, I can do that, much better. Regards Nikunj