K 10 svn:author V 7 glebius K 8 svn:date V 27 2013-12-24T14:14:05.500919Z K 7 svn:log V 1065 A work in progress on making socket buffers capable to accept an mbufs that are "not ready". These mbufs are now being populated by some I/O thread in background. sb_cc is split into sb_ccc and sb_acc. sb_ccc means "claimed character count", it is usually of interest for those parties that write to socket buffer and compare sb_ccc against limits. sb_acc means "available character count", how many data can we take from buffer right now. Not ready data is marked with M_NOTREADY flag. Data that stands in the buffer beyond not ready data, but is ready itself is marked as M_BLOCKED. To optimize things we keep pointer to the first M_NOTREADY mbuf. Writes to sockets can now have PRUS_NOTREADY flag, which will put M_NOTREADY on all written data. In the process of the change I tried to reduce lurking of various layers in the struct sockbuf, utilizing at least inlined functions. This isn't properly tested, just a milestone in a wip. Only TCP and UDP are compilable, SCTP and some other kernel code are not. Sponsored by: Netflix Sponsored by: Nginx, Inc. END