So, I think that proper behaviour for sending 1 megabyte of data is: 1) increment ref counter for binary in driver 2) replace writev with vmsplice for linux 3) release binary when data is transmitted I need to check if this really works and helps.