Re: [PATCH v2] powerpc/traps: Enhance readability for trap types

From: Xiongwei Song
Date: Mon Apr 05 2021 - 08:03:50 EST



> On Apr 2, 2021, at 12:11 AM, Segher Boessenkool <segher@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Thu, Apr 01, 2021 at 10:55:58AM +0800, Xiongwei Song wrote:
>> Segher Boessenkool <segher@xxxxxxxxxxxxxxxxxxx> 于2021年4月1日周四 上午6:15写道:
>>
>>> On Wed, Mar 31, 2021 at 08:58:17PM +1100, Michael Ellerman wrote:
>>>> So perhaps:
>>>>
>>>> EXC_SYSTEM_RESET
>>>> EXC_MACHINE_CHECK
>>>> EXC_DATA_STORAGE
>>>> EXC_DATA_SEGMENT
>>>> EXC_INST_STORAGE
>>>> EXC_INST_SEGMENT
>>>> EXC_EXTERNAL_INTERRUPT
>>>> EXC_ALIGNMENT
>>>> EXC_PROGRAM_CHECK
>>>> EXC_FP_UNAVAILABLE
>>>> EXC_DECREMENTER
>>>> EXC_HV_DECREMENTER
>>>> EXC_SYSTEM_CALL
>>>> EXC_HV_DATA_STORAGE
>>>> EXC_PERF_MONITOR
>>>
>>> These are interrupt (vectors), not exceptions. It doesn't matter all
>>> that much, but confusing things more isn't useful either! There can be
>>> multiple exceptions that all can trigger the same interrupt.
>>>
>>> When looking at the reference manual of e500 and e600 from NXP
>> official, they call them as interrupts.While looking at the "The
>> Programming Environments"
>> that is also from NXP, they call them exceptions. Looks like there is
>> no explicit distinction between interrupts and exceptions.
>
> The architecture documents have always called it interrupts. The PEM
> says it calls them exceptions instead, but they are called interrupts in
> the architecture (and the PEM says that, too).
>
>> Here is the "The Programming Environments" link:
>> https://www.nxp.com.cn/docs/en/user-guide/MPCFPE_AD_R1.pdf
>
> That document is 24 years old. The architecture is still published,
> new versions regularly.
>
>> As far as I know, the values of interrupts or exceptions above are defined
>> explicitly in reference manual or the programming environments.
>
> They are defined in the architecture.
>
>> Could
>> you please provide more details about multiple exceptions with the same
>> interrupts?
>
> The simplest example is 700, program interrupt. There are many causes
> for it, including all the exceptions in FPSCR: VX, ZX, OX, UX, XX, and
> VX is actually divided into nine separate cases itself. There also are
> the various causes of privileged instruction type program interrupts,
> and the trap type program interrupt, but the FEX ones are most obvious
> here.

Thanks for the explanation.

Regards,
Xiongwei

>
>
> Segher