[Cbe-oss-dev] GCC inline memcpy() from local store causes bad page fault
Segher Boessenkool
segher at kernel.crashing.org
Thu Mar 22 03:37:46 EST 2007
>> > I looked it up, and indeed both multiple load/store and
>> > sign extending load insns to cache-inhibited space cause
>> > an alignment exception.
>>
>> Where does the architecture say that lha and/or lwa to cache-inhibited
>> space cause an alignment exception? I looked for that just now and
>> didn't find it.
>
> I don't think the Power architecture says it, though it say it could
> with cache-inhibited space in general.
I only see where it (2.03 is what I looked at) says that
for dcbz and larx/stcx. insns (in 6.5.8, Book III-S). Maybe
somewhere else it says certain implementations can generate
an alignment exception for some other conditions; I didn't
find where but I didn't look very hard. Certainly many CPUs
do so, perhaps a note needs to be added to the arch books.
> The Cell handbook says what
> the cell does and lha/lwa cause an alignment exception with
> cache-inhibited memory.
And with load/store string/multiple insns to CI space too.
For userland, we could fix all these by having the kernel
emulate the insns. Or compile the few affected userland
apps/libs with the right compiler flags (which means adding
a flag to disable lha/lwa generation). Or both. Which
solution is preferred?
Segher
More information about the cbe-oss-dev
mailing list