From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33405) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X2Y0a-0001qV-D3 for qemu-devel@nongnu.org; Wed, 02 Jul 2014 23:48:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X2Y0U-0003Ts-T1 for qemu-devel@nongnu.org; Wed, 02 Jul 2014 23:48:28 -0400 Received: from mail-pd0-f176.google.com ([209.85.192.176]:40826) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X2Y0U-0003Tg-KE for qemu-devel@nongnu.org; Wed, 02 Jul 2014 23:48:22 -0400 Received: by mail-pd0-f176.google.com with SMTP id ft15so13063978pdb.21 for ; Wed, 02 Jul 2014 20:48:21 -0700 (PDT) Message-ID: <53B4D27F.3050502@ozlabs.ru> Date: Thu, 03 Jul 2014 13:48:15 +1000 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <1404117329-7899-1-git-send-email-nikunj@linux.vnet.ibm.com> <53B4D0E8.5070600@ozlabs.ru> In-Reply-To: <53B4D0E8.5070600@ozlabs.ru> Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5] ppc: spapr-rtas - implement os-term rtas call List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Nikunj A Dadhania , qemu-devel@nongnu.org Cc: Tyrel Datwyler , Benjamin Herrenschmidt , qemu-ppc@nongnu.org, Anton Blanchard , Alexander Graf On 07/03/2014 01:41 PM, Alexey Kardashevskiy wrote: > On 06/30/2014 06:35 PM, 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 ibm,os-term when extended property of os-term is set. >> This makes sure that a return to the linux kernel is gauranteed. >> >> CC: Benjamin Herrenschmidt >> CC: Anton Blanchard >> CC: Alexander Graf >> CC: Tyrel Datwyler >> Signed-off-by: Nikunj A Dadhania >> >> --- >> >> v2: rebase to ppcnext >> v3: Do not stop the VM, and update comments >> v4: update spapr_register_rtas and qapi_event changes >> v5: set ibm,extended-os-term as null encoded property >> --- >> hw/ppc/spapr.c | 9 +++++++++ >> hw/ppc/spapr_rtas.c | 15 +++++++++++++++ >> include/hw/ppc/spapr.h | 1 - >> 3 files changed, 24 insertions(+), 1 deletion(-) >> >> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c >> index 307c58d..e6c9014 100644 >> --- a/hw/ppc/spapr.c >> +++ b/hw/ppc/spapr.c >> @@ -520,6 +520,15 @@ static void *spapr_create_fdt_skel(hwaddr initrd_base, >> >> _FDT((fdt_property_cell(fdt, "rtas-error-log-max", RTAS_ERROR_LOG_MAX))); >> >> + /* >> + * 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. Set this property. >> + */ >> + _FDT((fdt_property(fdt, "ibm,extended-os-term", NULL, 0))); >> + >> _FDT((fdt_end_node(fdt))); >> >> /* interrupt controller */ >> diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c >> index 9ba1ba6..2ec2a8e 100644 >> --- a/hw/ppc/spapr_rtas.c >> +++ b/hw/ppc/spapr_rtas.c >> @@ -277,6 +277,19 @@ 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); >> +} >> + >> static struct rtas_call { >> const char *name; >> spapr_rtas_fn fn; >> @@ -404,6 +417,8 @@ static void core_rtas_register_types(void) >> spapr_rtas_register(RTAS_IBM_SET_SYSTEM_PARAMETER, >> "ibm,set-system-parameter", >> rtas_ibm_set_system_parameter); >> + spapr_rtas_register(RTAS_IBM_OS_TERM, "ibm,os-term", >> + rtas_ibm_os_term); >> } >> >> type_init(core_rtas_register_types) >> diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h >> index bbba51a..4e96381 100644 >> --- a/include/hw/ppc/spapr.h >> +++ b/include/hw/ppc/spapr.h >> @@ -382,7 +382,6 @@ int spapr_allocate_irq_block(int num, bool lsi, bool msi); >> #define RTAS_GET_SENSOR_STATE (RTAS_TOKEN_BASE + 0x1D) >> #define RTAS_IBM_CONFIGURE_CONNECTOR (RTAS_TOKEN_BASE + 0x1E) >> #define RTAS_IBM_OS_TERM (RTAS_TOKEN_BASE + 0x1F) >> -#define RTAS_IBM_EXTENDED_OS_TERM (RTAS_TOKEN_BASE + 0x20) > > > So we never ever going to implement this RTAS call? > I'd keep the number. ah, it is in ppc-next-2.2 already. Never mind :) > > >> >> #define RTAS_TOKEN_MAX (RTAS_TOKEN_BASE + 0x21) >> >> > > -- Alexey