[Click] Kernel BufferQueue

Roman Chertov rchertov at purdue.edu
Thu Jun 22 23:08:24 EDT 2006


There is a paper about doing something similar with Click from the Univ 
of Wisconsin.
http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1521136  I 
wonder if they would share their modules for others to use.

Roman

Beyers Cronje wrote:
> Hi Eddie, all,
> 
> I had a need to buffer incoming packets in Click kernel module for two
> seconds on an interface with around 350+mbps traffic load with an average
> packet count of 80,000pps. In other words I needed to buffer at least
> 160,000 packets at any given time in the kernel module. Any SimpleQueue
> derived queue's maximum capacity is 32761, limited by kmalloc's maximum
> bucket size of 131048 bytes.  Click-install will crash the kernel if you
> specify any larger capacity.
> 
> The attached element is a linuxmodule only element that uses vmalloc 
> instead
> of kmalloc to allocate queue memory. It installs and seems to run fine 
> on my
> system with a queue capacity of 500,000. It is derived from NotifierQueue
> and overrides methods used in SimpleQueue to allocate and free memory
> (initialize, live_reconfigure & cleanup).
> 
> Feel free to use or include in Click. Also feel free to rename as I couldnt
> come up with a better name than BufferQueue :)
> 
> One drawback of calling vmalloc directly is that click/meminfo will not
> reflect this allocation. Maybe a Click newvm(size_t) function can help with
> this.
> 
> Cheers
> 
> Beyers Cronje
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click


More information about the click mailing list