Re: HPMC in lba_pat_out8 on rp3440

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le 17 nov. 10 à 16:33, Kyle McMartin a écrit :
On Wed, Nov 17, 2010 at 09:38:08AM -0500, John David Anglin wrote:
I also agree that the kernel shouldn't fix unaligned accesses occuring
in the kernel.  It allows for sloppy coding and the fixup can be a
major performance hit on strict alignment machines like sparc and hppa.

It would appear handle_unaligned can't always fixup kernel accesses.
At least, emulate_ldd causes a hpmc attempting to fixup the ldd in
init_page_buffers.  This may be because this is a wrong code error
and the address is in someway invalid.  Maybe more address checking
is needed.


I'll take a look at emulate_ldd. It's entirely possible that it's broken
and we just haven't noticed because we would so rarely hit one in
userspace. (The only PA2.0 code I know of was the code Thibaut wrote to
do ffmpeg in pa2.0 asm. I imagine something like that wouldn't take
unaligned traps if performance was desired... ;-)

Don't imagine too much when it comes to me, you'll always be surprised ;-) Since my initial code (which stayed at this stage, for lack of any field use) was only trying to get the asm right in the first place (you can see the code here, btw: http://www.parisc-linux.org/~varenet/dsputils_parisc.c.html ) I didn't bother doing unaligned accesses handling when I first tried it, so it's actually very likely I did hit emulate_ldd quite a lot. Fun fact, despite lots of unaligned accesses, that code performed on par (and even slightly faster, IIRC) with the C implementation :^)

HTH

T-Bone

--
Thibaut VARÈNE
http://www.parisc-linux.org/~varenet/

--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux