[patch] Adding optimized kernel copying support - Part III

Suleiman Souhlal ssouhlal at FreeBSD.org
Wed May 31 13:19:15 PDT 2006

Hello Attilio,

Attilio Rao wrote:
> Hi,
> this is the last release which is rather finished and complete for the 
> project.
> I tested for consistency for a long time and the FPU handling
> mechanism seems very robust so as copyin/copyout do.

Nice work. Any chance you could also port it to amd64? :-)

> What I'm looking for, at this point, are testers for peroformances.
> What is proposed in the patch is one of the better solutions for UP
> archs (not running with PREEMPTION) but more general cases might be
> handled with time.

Does that mean it won't work with SMP and PREEMPTION?

> I hope that somebody wants to play with him, giving suggestions and
> doing different benchmarks.

What kind of performance improvements did you see in your benchmarks?

> The code can be found here:
> http://users.gufi.org/~rookie/works/patches/xmmcopy_6_1.diff
> and is for RELEASE_6_1 in order to have a wider range of testers (a
> diff against HEAD will be available ASAP).
> Please keep in mind that this is not a complete rip of DflyBSD code
> beacause it is different in a lot of parts.
> For any kind of tecnical questions, please mail me.

I wonder if we could get rid of the memcpy_vector (copyin/copyout_vector 
before this patch), bzero_vector and bcopy_vector function pointers and 
do boot-time patching of the callers to the right version.

I have a linux-inspired proof-of-concept demo of this boot-time patching 
at http://people.freebsd.org/~ssouhlal/testing/bootpatch-20060527.diff. 
It prefetches the next element in the *_FOREACH() macros in sys/queue.h. 
The patching that it does is to use PREFETCH instruction instead of 
PREFETCHNTA if the cpu is found to support SSE2.

-- Suleiman

More information about the freebsd-hackers mailing list