non-temporal copyin/copyout?
Andrew Gallatin
gallatin at cs.duke.edu
Sat Feb 18 14:04:20 PST 2006
Joseph Koshy writes:
> The code in question "/usr/src/sys/amd64/amd64/support.S" has:
> 216 ENTRY(copyout)
> ...
> 249 shrq $3,%rcx
> 250 cld
> 251 rep
> 252 movsq
> 253 movb %dl,%cl
> 254 andb $7,%cl
> 255 rep
> 256 movsb
>
> i.e., it doesn't handle the case where the `from_kernel'
> or `to_user' addresses are misaligned to their natural
> boundaries. IIRC `rep movsq' works best if both the source
> and destination addresses are 8-byte aligned.
>
> If we are going to use `movntq' then we may as well take
> care of alignment issues too.
Is this just a matter as adding code to get the bulk
of the copy aligned before entering the tight loop?
If you can do a patch, I'd be happy to test it.
Drew
More information about the freebsd-amd64
mailing list