Date: Mon, 30 May 2016 10:40:15 +0200 From: Yuri Iozzelli <y.iozzelli@gmail.com> To: soc-status@freebsd.org Subject: Fwd: High Performance P4 Software Switch - Week 1 Message-ID: <CAPSqqEmL%2BZ_zRm1tqvK9XX5JjtWmMNerVB8AK5qiCtPUOfBu1w@mail.gmail.com> In-Reply-To: <CAPSqqEnr9iT4fPyS2zxQ%2BsBuuMxxJZ2xuNJBKeRzuKJOSMMHig@mail.gmail.com> References: <CAPSqqEnr9iT4fPyS2zxQ%2BsBuuMxxJZ2xuNJBKeRzuKJOSMMHig@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Project summary ======================== In this project I would like to implement a modified version of the reference p4 (http://p4.org) switch on FreeBSD, which uses netmap for faster packet I/O: the goal would be reaching the 1 Mpps order-of-magnitude speed (current reference implementation is limited to 150 Kpps for a simple l2 switch with 2 hosts). Week 1 ============================================================== All the dependencies are available on FreeBSD, but the software does not compile due to the lack of support for non-POD thread_local variables in clang (only on freeBSD, in linux it works). Relevant bug: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192320#c2 I looked at glibc implementation (explained here: https://sourceware.org/glibc/wiki/Destructor%20support%20for%20thread_local%20variables), and decided that for my case I don't need to implement support for dynamic libraries unloading, but just make sure that destructors are called at thread exit. The code now compiles, but it crashes at runtime. I am not sure it is because of my implementation of this function, because when the crash occurs no thread has exited yet. I also fixed a bug in the original code (pull request: https://github.com/p4lang/behavioral-model/pull/133). Links: Wiki page: https://wiki.freebsd.org/SummerOfCode2016/HighPerformanceP4SoftwareSwitch#preview Code (gsoc-* brances): https://github.com/zarghul/behavioral-model Regards, Yuri Iozzelli
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPSqqEmL%2BZ_zRm1tqvK9XX5JjtWmMNerVB8AK5qiCtPUOfBu1w>