On Mon, May 2, 2011 at 12:28 PM, Greg KH <greg@xxxxxxxxx> wrote: > On Mon, May 02, 2011 at 11:32:32AM -0700, Abu Rasheda wrote: >> I am testing my driver on much faster host processor and facing >> following issues: >> >> My host is too powerful and it can fill up device buffer queue very fast. > > What kind of device is this? its a networking device >> I get best performance when I do busy wait, but this is not desirable >> and is bad design. >> >> I need to sleep and wake up quickly and predictability. Indication >> from device that queue has space, is coming in form of memory write >> (device writes to a memory location of i86 processor). >> >> I tried using wait_event_interruptible_timeout, I am depending on 2nd >> parameter of the function but it wake up is too slow, even tried using >> value of 1. > > Why not try increasing the buffer in your driver to handle any amount of > data needed? Problem come from the fact that remote end can be slow, so device / driver cannot do much. If I increase buffer size, than running on (even) faster host processor will bring back same issue. I am looking for solution which will scale. I check for available buffer size if space is low, I sleep and retry. This is causing lot of CPU to be wasted. How can I optimize this ? > > thanks, > > greg k-h _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies