On 06/25/2012 10:48 PM, Liu Yuan wrote: > On 06/25/2012 10:26 PM, levin li wrote: >>>> How about this, we put the work into a worker thread using queue_work() >>>>>> and make queue_request() called in the worker_done() function. >>>>>> >>>> >>>> Maybe we can take advantage of sockfd cache, we can use lightweight unix >>>> domain FD for self-queuing requests. This require smallest code change >>>> and also doesn't compromise performance as bad as TCP sockfd. >>>> >>>> Thanks, >>>> Yuan >>>> >> After further thinking, I think even we use a cached fd, it still not so efficient, >> write/read_object() needs transfer about 4M data if we send a gateway request, >> which I think is inefficient. > > Then I suggest register a dedicated handler for process self-queuing and > use eventfd for notification. It looks better than use current work queue. > > Thanks, > Yuan > Yes, it's the best way to solve this problem, I'm writing the new patch. thanks, levin |