Hi Cong, On Wed, May 20, 2015, at 22:59, Cong Wang wrote: > On Wed, May 20, 2015 at 8:35 AM, Hannes Frederic Sowa > <han...@stressinduktion.org> wrote: > > > > -static int unix_stream_recvmsg(struct socket *sock, struct msghdr *msg, > > - size_t size, int flags) > > +struct unix_stream_read_state { > > + int (*recv_actor)(struct sk_buff *, int, int, > > + struct unix_stream_read_state *); > > + struct socket *socket; > > + struct msghdr *msg; > > + struct pipe_inode_info *pipe; > > + size_t size; > > + int flags; > > + unsigned int splice_flags; > > +}; > > + > > +static __always_inline > > +int unix_stream_read_generic(struct unix_stream_read_state *state) > > > Why __always_inline here?
During benchmarking I discovered that the simple ordinary recvmsg case lost a bit in performance because of the indirection. With __always_inline -ing unix_stream_read_generic I got it to almost the same numbers again as without the change. Thus I decided to leave it there. Also, thank you for your other feedback. I will address it soon after letting the patches receiving a bit more feedback. Thanks, Hannes -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html