On Tue, 25 Jul 2017 13:04:20 -0700 Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx> wrote: > Optimize how receive completion ring are managed. > * Allocate only as many slots as needed for all buffers from host > * Allocate before setting up sub channel for better error detection > * Don't need to keep copy of initial receive section message > * Only needt keep the transaction id, status doesn't matter > * Precompute the watermark for when receive flushing is needed > * Replace division with conditional test > * Replace atomic per-device variable with per-channel check. > * Handle corner case where receive completion send > fails if ring buffer to host is full. > > Signed-off-by: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx> I probably pushed the shrinkage too far for now. Hiayang raised the point that probably need to keep the status value. I dropped storing it since it was always SUCCESS unless the host sent a bad packet, or the system was out of skb's. Will send V2 that keeps the status value for now. _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel