Re: performance: memcpy vs. __copy_tofrom_user
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2008-10-14 02:49:47
There should definitely be a nice API for an in-kernel AltiVec context save/restore. When preemption happens doesn't it do some equivalent of the userspace context switch? Why can't the preemption system take care of it? At worst case you make the worst case latency bigger, but at best case you gain performance across the board.
Do you ? Can you prove this assertion with numbers ?
One thing which is worrying me is that now that Ben has thrown down the gauntlet (note, I'm not going to be coding a line, but I know a man who can :) how on earth do we benchmark the differences here?
Precisely :-) So again, let's start by having somebody pick up something that you believe is worth altivec-ifying, eat the preempt_disable/enable for now, and if we see that indeed, it's worth the pain, then we can look into adding a way to context switch altivec in a kernel thread upon explicit request or something like that. As to how to benchmark the difference ? Well, I would suggest first a couple of very simple things that give a good indication, and from there, if it looks promising, we can torture more and see whether we can find regressions etc.. For example, I personally use kernel compile times (with make -jN on SMP), I find it a good overall exercise, but if you feel like a network benchmark might be better at advertising your improvements, then go for that too, though expect us to also do some other tests to verify they didn't regress. Cheers, Ben.