Messages in this thread | | | Date | Wed, 12 Jan 2005 03:18:03 +0200 | From | Indrek Kruusa <> | Subject | DSP like TCP/IP processing in linux kernel |
| |
Hi!
My goal is to: - learn more about DSP like TCP/IP processing - investigate network/transport layer implementation in Linux - investigate the possibility to increase network performance by SIMD processing - maybe compile some kind of document from my work - ask lot of questions here :)
There are lot of quite basic questions to think about. The most basic is how to cope with SIMD at all.
Hardware ---------- CPU + ext. == DSP? (+) SIMD (vertical/horisontal vectorized processing) (-) (??) h/w MAC/shifter/flow control, separate x/y path
* ARM/MIPS/PowerPC/SPARC/x86 - they all have (or planned) somekind of SIMD extension but how much theory I can borrow from DSP world for SIMD CPUs? (quite a lot I think) * network processors (Intel,Broadcom etc.) - can I borrow something from there? (only maybe how/why work is distributed between multiple cores)
Software (compiler) -------------------- Is it possible at all to build a framework to cover those different ext.'s in common way? * gcc builtins for particular arch (well, arm,x86,powerpc are there) * intrinsics. only intel (?) * somekind of layer above gcc builtins? (ehh...)
Tools ------- How should I produce SIMD code? * Which tools I have to work with SIMD ext.? (umm...vim) * Which way I should choose: "look, feel and think" or pure math and modelling? (I don't like J.B.J. Fourier...)
Method ------- How to start? * tracing, profiling - squeeze out the performance hotspot and optimize it (is the underlying design suitable at all for this?) * sketch down current implementation in linux and think again about whole thing (results after one year...for me :) ) * in networking context: start with the most common part: calculate checksums for IP and TCP (I like this idea) * Forget about it: turn on -ftree-vectorize when gcc 4.x is here (no-no...) * Forget about it: this kind of tweaking is not for Linux kernel (what about RAID-6 driver? :) )
Well, before I look into Documentation/, kernelnewbies.org, source etc. I'd like to ask: is it worth to go further? At least I hope so :)
thanks, Indrek
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |