imq / linuximq

Pseudo-driver for the intermediate queue device.
https://imq.github.io/
GNU General Public License v2.0
99 stars 51 forks source link

Enhance the IMQ performance about 20% and add the IMQ patch based on 3.14 #7

Closed gfreewind closed 9 years ago

gfreewind commented 9 years ago

Hi,

Firstly thanks sharing the IMQ.

I find the performance of IMQ is not good enough, so I try to enhance it by myself. Now I commit one simple change which could enhance the IMQ performance about 20% during my tests.

Let me show the reason. The solution of IMQ is that push one packet into the IMQ queue during rx softirq, then IMQ works like one device, it will continue processing another packet poped from the queue and send it during the tx softirq.

In other words, the packet should be processed in one softirq without IMQ. But it needs two softirqs now with IMQ. It decreases the performance deeply.

So I enhance it with that pop and send one packet when push one into the IMQ queue. It almost equals one packet only cost one softirq at average.

There are two commits from me.

  1. It is a new original IMQ patch based on 3.14 kernel;
  2. It is the enhancement solution.

Actually there are other changes which could enhance the performance too. But they have not pass the test until now.

So I only commit the simplest one also efficient one

imq commented 9 years ago

thanks, I accepted the patch.

gfreewind commented 9 years ago

Welcome. Thanks your IMQ.

I forgot add the fix comment in this commit. So I send another pull request. Could you accept it too please?

imq commented 9 years ago

done :) thank you for you support :+1: