[Patch v2 1/2] powerpc: Send SIGBUS on unaligned copy and paste
Balbir Singh
bsingharora at gmail.com
Mon Jun 20 13:06:01 AEST 2016
On 20/06/16 09:48, Chris Smart wrote:
> On Fri, Jun 17, 2016 at 05:20:05PM +1000, Balbir Singh wrote:
>>
>>
>> On 17/06/16 09:33, Chris Smart wrote:
>
> [snip]
>
>>> +
>>> + /*
>>> + * ISA 3.0 (such as P9) copy, copy_first, paste and paste_last alignment
>>> + * check.
>>> + *
>>> + * Send a SIGBUS to the process that caused the fault.
>>> + *
>>> + * We do not emulate these because paste may contain additional metadata
>>> + * when pasting to a co-processor. Furthermore, paste_last is the
>>> + * synchronisation point for preceding copy/paste sequences.
>>> + */
>>> + if ((instruction & 0xfc0006fe) == PPC_INST_COPY)
>>> + return -EIO;
>>
>> Should this all be under cpu_has_feature(CPU_FTR_ARCH_300)?
>>
>
> I'm not sure we should or not. That instruction only exists on those
> machines so is it worth adding an additional check when the next check
> will fail anyway?
>
> I guess it would reduce non ISA 3.0 machines to just a single check rather
> than two, but increases ISO 3.0 machines to three.
>
Ideally we can do features and fixups, but that today works mostly for the
assembly code we have. In this case we might get away by doing the if and "&",
I would recommend adding a branch hint
if (unlikely(...))
Balbir Singh
More information about the Linuxppc-dev
mailing list