All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexey Kardashevskiy <aik@au1.ibm.com>
To: Aravinda Prasad <aravinda@linux.vnet.ibm.com>,
	Alexander Graf <agraf@suse.de>
Cc: benh@au1.ibm.com, qemu-ppc@nongnu.org, qemu-devel@nongnu.org,
	paulus@samba.org
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH v2 3/4] target-ppc: Build error log
Date: Thu, 11 Sep 2014 11:23:52 +1000	[thread overview]
Message-ID: <5410F9A8.3010401@au1.ibm.com> (raw)
In-Reply-To: <54097418.6040101@linux.vnet.ibm.com>

On 09/05/2014 06:28 PM, Aravinda Prasad wrote:
> 
> 
> On Friday 05 September 2014 01:34 PM, Alexander Graf wrote:
>>
>>
>> On 04.09.14 13:13, Aravinda Prasad wrote:
>>> Whenever there is a physical memory error due to bit
>>> flips, which cannot be corrected by hardware, the error
>>> is passed on to the kernel. If the memory address in
>>> error belongs to guest address space then guest kernel
>>> is responsible to take action. Hence the error is passed
>>> on to guest via KVM by invoking 0x200 NMI vector.
>>>
>>> However, guest OS, as per PAPR, expects an error log
>>> upon such error. This patch registers a new hcall
>>> which is issued from 0x200 interrupt vector and builds
>>> the error log, copies the error log to rtas space and
>>> passes the address of the error log to guest
>>>
>>> Enhancement to KVM to perform above functionality is
>>> already in upstream kernel.
>>>
>>> Signed-off-by: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
>>> ---
>>>  hw/ppc/spapr_hcall.c   |  154 ++++++++++++++++++++++++++++++++++++++++++++++++
>>>  include/hw/ppc/spapr.h |    4 +
>>>  2 files changed, 157 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
>>> index 01650ba..c3aa448 100644
>>> --- a/hw/ppc/spapr_hcall.c
>>> +++ b/hw/ppc/spapr_hcall.c
>>> @@ -14,6 +14,88 @@ struct SPRSyncState {
>>>      target_ulong mask;
>>>  };
>>>  
>>> +/* Offset from rtas-base where error log is placed */
>>> +#define RTAS_ERROR_OFFSET       (TARGET_PAGE_SIZE)
>>
>> You can't assume this. Please compute the value at the same place you
>> compute the rtas-size.
> 
> sure
> 
> 
>>
>>> +
>>> +#define RTAS_ELOG_SEVERITY_SHIFT         0x5
>>> +#define RTAS_ELOG_DISPOSITION_SHIFT      0x3
>>> +#define RTAS_ELOG_INITIATOR_SHIFT        0x4
>>> +
>>> +/*
>>> + * Only required RTAS event severity, disposition, initiator
>>> + * target and type are copied from arch/powerpc/include/asm/rtas.h
>>> + */
>>> +
>>> +/* RTAS event severity */
>>> +#define RTAS_SEVERITY_ERROR_SYNC    0x3
>>> +
>>> +/* RTAS event disposition */
>>> +#define RTAS_DISP_NOT_RECOVERED     0x2
>>> +
>>> +/* RTAS event initiator */
>>> +#define RTAS_INITIATOR_MEMORY       0x4
>>> +
>>> +/* RTAS event target */
>>> +#define RTAS_TARGET_MEMORY          0x4
>>> +
>>> +/* RTAS event type */
>>> +#define RTAS_TYPE_ECC_UNCORR        0x09
>>> +
>>> +/*
>>> + * Currently KVM only passes on the uncorrected machine
>>> + * check memory error to guest. Other machine check errors
>>> + * such as SLB multi-hit and TLB multi-hit are recovered
>>> + * in KVM and are not passed on to guest.
>>> + *
>>> + * DSISR Bit for uncorrected machine check error. Based
>>> + * on arch/powerpc/include/asm/mce.h
>>
>> Please don't include Linux code. This file is GPLv2+ licensed and I
>> don't want to taint it as GPLv2 only just for the sake of mce.
> 
> Hmm.. ok.  In that case I should not copy rtas_error_log structure below
> from kernel source as well.


I double checked with Alex and since arch/powerpc/include/asm/mce.h is
GPL2+ and spapr_hcall.c does not have a license so it is what QEMU's
license is (which is also GPL2+), copying is fine here.



-- 
Alexey Kardashevskiy
IBM OzLabs, LTC Team

e-mail: aik@au1.ibm.com
notes: Alexey Kardashevskiy/Australia/IBM

  parent reply	other threads:[~2014-09-11  1:24 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-04 11:13 [Qemu-devel] [PATCH v2 0/4] target-ppc: Add FWNMI support in qemu for powerKVM guests Aravinda Prasad
2014-09-04 11:13 ` [Qemu-devel] [PATCH v2 1/4] target-ppc: Extend rtas-blob Aravinda Prasad
2014-09-05  7:42   ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-09-05  7:56     ` Aravinda Prasad
2014-09-04 11:13 ` [Qemu-devel] [PATCH v2 2/4] target-ppc: Register and handle HCALL to receive updated RTAS region Aravinda Prasad
2014-09-04 11:13 ` [Qemu-devel] [PATCH v2 3/4] target-ppc: Build error log Aravinda Prasad
2014-09-05  2:14   ` Alexey Kardashevskiy
2014-09-05  8:07     ` Aravinda Prasad
2014-09-05  8:04   ` [Qemu-devel] [Qemu-ppc] " Alexander Graf
2014-09-05  8:28     ` Aravinda Prasad
2014-09-05  8:39       ` Alexander Graf
2014-09-11  1:23       ` Alexey Kardashevskiy [this message]
2014-09-04 11:13 ` [Qemu-devel] [PATCH v2 4/4] target-ppc: Handle ibm, nmi-register RTAS call Aravinda Prasad

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5410F9A8.3010401@au1.ibm.com \
    --to=aik@au1.ibm.com \
    --cc=agraf@suse.de \
    --cc=aravinda@linux.vnet.ibm.com \
    --cc=benh@au1.ibm.com \
    --cc=paulus@samba.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.