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 |