> 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]
