Date: Fri, 16 Sep 2016 17:57:52 +0300 From: Slawa Olhovchenkov <slw@zxy.spb.ru> To: freebsd-net@freebsd.org Subject: NETMAP application architecture question Message-ID: <20160916145752.GC2840@zxy.spb.ru>
next in thread | raw e-mail | index | archive | help
I am wrote NETMAP application and meet some limitation. I am use server 16-core server. Workers thread run mostly independend, with minimal interworking. I am use balancer threads for distributing packet flow between worker threads. I am using two NETMAP pipes between balancer and workers. As result, for case of 4 balancer and 12 workers I am need 4x12x2 = 96 pipes. NETMAP have limitation of 64 pipes. May be exist more optimal way? May be I can emulate tilera way, with bufers credits? (In this case balancer give RX buffers, confirm to kernel and pass it to worker. kernel reduce credit, used for reciving other buffer from pool. After complete worker pass buffer to balancer and balancer return buffer to kernel, kernel rise credits and put free buffer to pool). In this case I am not need to many pipes and not limited performance by too long processing of one packet.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160916145752.GC2840>