> What's the difference between esballoc and desballoc?

As per the manpage, desballoc() will free synchronously (the "d" is for
"direct").  This can improve performance, but can also create some really
nasty deadlock situations if freeing the buffer ends up calling back into
the driver.  There are some performance fixes in progress for esballoc()
that allow it to perform comparably to desballoc() without the risk of
deadlock.

 > if I give esballoc a dummy one that does not actually free the buffer,
 > then can I continuously use the same buffer to receive packet again and
 > again? I am wondering if I can therefore save the time to re-create the
 > receive buffer.

I presume you'll want to have more than one buffer outstanding and thus
you'll want to chain your recycled buffers on a freelist in your
free_func.  Check out the existing drivers that use desballoc() in ON to
get a feel for how this is typically done.

-- 
meem
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to