kohler / click

The Click modular router: fast modular packet processing and analysis
Other
743 stars 321 forks source link

Click on linux-3.16.7 #211

Open bjooris opened 9 years ago

bjooris commented 9 years ago

Dear all,

I would like to run click (kernel module) on an APU (pc engines) with voyage 0.10.0. Voyage 0.10.0 comes with kernel 3.16.7 but I was unable to build click against this kernel due to a kernel header errors related to linuxmodule/fixincludes.pl. (first error in config.log unable to find kconfig.h) I fixed some of the errors by adding symbolic links in the linux include dir. After three attempts I've got a bad feeling about my approach... Click perfectly builds against 3.13.

Does somebody has more insights of what might have changed in the kernel?

Thanks,

Bart

kohler commented 8 years ago

I have made some changes to the fixincludes to update for recent kernels. I am able to get a fair way through the Linux 3.19 compilation process (hiccup on fromdevice.cc). Can you let me know what's up currently?

Your specific question (“what might have changed in the kernel?”) is just hard to answer. Click needs to interpose on Linux's compilation process to create C++-compatible includes. The way it does so is a bit janky, so when the build process changes—for instance, by including things from unexpected directories—I need to make fixes. This is not fun. Also, Linux exports different interfaces and the Linux authors change their minds constantly. So the get_monotonic_coarse and monotonic_to_bootbased kernel symbols aren't exported any more I guess? And as a result someone needs to figure out what's wrong and then fix it (in this case, some janky hopefully-correct nonsense involving ktime_mono_to_any. Which will disappear later requiring another fix.

USERLEVEL IS BETTER

bcronje commented 8 years ago

I want to add my 2 cents and echo what Eddie said, use userlevel Click. It's so much more flexible, performance is great out of the box, especially with the Netmap and DPDK elements (look at what @tbarbette and his team is doing over at https://github.com/tbarbette/fastclick ).

I'm using userlevel Click exclusively nowadays and never looked back.

bjooris commented 8 years ago

Hi Eddie and Beyers,

thanks for the info! We'll switch to userlevel.

Kind regards,

Bart

On 10/20/2015 12:46 AM, Beyers Cronje wrote:

I want to add my 2 cents and echo what Eddie said, use userlevel Click. It's so much more flexible, performance is great out of the box, especially with the Netmap and DPDK elements (look at what @tbarbette https://github.com/tbarbette and his team is doing over at https://github.com/tbarbette/fastclick ).

I'm using userlevel Click exclusively nowadays and never looked back.

— Reply to this email directly or view it on GitHub https://github.com/kohler/click/issues/211#issuecomment-149369023.

Bart Jooris Department of Information Technology Internet Based Communication Networks and Services (IBCN) Ghent University - iMinds Gaston Crommenlaan 8 (Bus 201), B-9050 Gent, Belgium E-mail: bart.jooris@intec.UGent.be M: +32 474 59 53 42 Tel. +32 9 33 14900 Fax +32 9 33 14899

kohler commented 8 years ago

Note that DPDK won't work on your deployment platform :) But Netmap might?

There are still reasons to use kernel, but fewer and farther between.