[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240726134646.000046e3@Huawei.com>
Date: Fri, 26 Jul 2024 13:46:46 +0100
From: Jonathan Cameron <Jonathan.Cameron@...wei.com>
To: Markus Armbruster <armbru@...hat.com>
CC: Mauro Carvalho Chehab <mchehab+huawei@...nel.org>, Shiju Jose
<shiju.jose@...wei.com>, "Michael S. Tsirkin" <mst@...hat.com>, Ani Sinha
<anisinha@...hat.com>, Dongjiu Geng <gengdongjiu1@...il.com>, Eric Blake
<eblake@...hat.com>, Igor Mammedov <imammedo@...hat.com>, Michael Roth
<michael.roth@....com>, Paolo Bonzini <pbonzini@...hat.com>, Peter Maydell
<peter.maydell@...aro.org>, <linux-kernel@...r.kernel.org>,
<qemu-arm@...gnu.org>, <qemu-devel@...gnu.org>
Subject: Re: [PATCH v3 4/7] acpi/ghes: Add a logic to handle block addresses
and FW first ARM processor error injection
A few quick replies from me.
I'm sure Mauro will add more info.
> > + 'tlb-error',
> > + 'bus-error',
> > + 'micro-arch-error']
> > +}
> > +
> > +##
> > +# @arm-inject-error:
> > +#
> > +# Inject ARM Processor error.
> > +#
> > +# @errortypes: ARM processor error types to inject
> > +#
> > +# Features:
> > +#
> > +# @unstable: This command is experimental.
> > +#
> > +# Since: 9.1
> > +##
> > +{ 'command': 'arm-inject-error',
> > + 'data': { 'errortypes': ['ArmProcessorErrorType'] },
>
> Please separate words with dashes: 'error-types'.
>
> > + 'features': [ 'unstable' ]
> > +}
>
> Is this used only with TARGET_ARM?
>
> Why is being able to inject multiple error types at once useful?
It pokes a weird corner of the specification that I think previously
tripped up Linux.
>
> I'd expect at least some of these errors to come with additional
> information. For instance, I imagine a bus error is associated with
> some address.
Absolutely agree that in sane case you wouldn't have multiple errors
but we want to hit the insane ones :(
There is only prevision for one set of data in the record despite
it providing a bitmap for the type of error.
>
> If we encode the the error to inject as an enum value, adding more will
> be hard.
>
> If we wrap the enum in a struct
>
> { 'struct': 'ArmProcessorError',
> 'data': { 'type': 'ArmProcessorErrorType' } }
>
> we can later extend it like
>
> { 'union': 'ArmProcessorError',
> 'base: { 'type': 'ArmProcessorErrorType' }
> 'data': {
> 'bus-error': 'ArmProcessorBusErrorData' } }
>
> { 'struct': 'ArmProcessorBusErrorData',
> 'data': ... }
>
> > diff --git a/qapi/meson.build b/qapi/meson.build
> > index e7bc54e5d047..5927932c4be3 100644
> > --- a/qapi/meson.build
> > +++ b/qapi/meson.build
> > @@ -22,6 +22,7 @@ if have_system or have_tools or have_ga
> > endif
> >
> > qapi_all_modules = [
> > + 'arm-error-inject',
> > 'authz',
> > 'block',
> > 'block-core',
> > diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json
> > index b1581988e4eb..479a22de7e43 100644
> > --- a/qapi/qapi-schema.json
> > +++ b/qapi/qapi-schema.json
> > @@ -81,3 +81,4 @@
> > { 'include': 'vfio.json' }
> > { 'include': 'cryptodev.json' }
> > { 'include': 'cxl.json' }
> > +{ 'include': 'arm-error-inject.json' }
>
>
Powered by blists - more mailing lists