[patch] Adding optimized kernel copying support - Part III
ssouhlal at FreeBSD.org
Wed May 31 13:19:09 PDT 2006
Attilio Rao wrote:
> this is the last release which is rather finished and complete for the
> 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:
> 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
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.
More information about the freebsd-arch