Skip site navigation (1)Skip section navigation (2)
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>