Print this page
OS-7088 cyclics corked on overlay socket with full queue
*** 343,354 ****
int ret;
/*
* It'd be nice to be able to use MSG_MBLK_QUICKRELE, unfortunately,
* that isn't actually supported by UDP at this time.
*/
! ret = ksocket_sendmblk(mux->omux_ksock, hdr, 0, &mp, kcred);
if (ret != 0)
freemsg(mp);
return (ret);
}
--- 343,362 ----
int ret;
/*
* It'd be nice to be able to use MSG_MBLK_QUICKRELE, unfortunately,
* that isn't actually supported by UDP at this time.
+ *
+ * Send with MSG_DONTWAIT to indicate clogged UDP sockets upstack.
*/
! ret = ksocket_sendmblk(mux->omux_ksock, hdr, MSG_DONTWAIT, &mp, kcred);
! /*
! * NOTE: ksocket_sendmblk() may send partial packets downstack,
! * returning what's not sent in &mp (i.e. mp pre-call might be a
! * b_cont of mp post-call). We can't hold up this message (it's a
! * datagram), so we drop, and let the caller cope.
! */
if (ret != 0)
freemsg(mp);
return (ret);
}