From 0f1702c5201310f0529cd5abb77652e5e9b241b6 Mon Sep 17 00:00:00 2001 From: Yu Xiangning Date: Thu, 11 Dec 2008 20:04:13 -0800 Subject: PSARC 2007/587 Volo -- Low Latency Socket Framework PSARC 2008/694 Volo Interfaces Amendment 6765829 Integration of project Volo PSARC/2007/587 6644935 mblk cred_t reference counting limits scalability 6693633 TCP receive does not scale because of heavy refcounting of cred structures 4764841 connect/accept is slow on Solaris when compared to Linux 5105708 socket creation retains hold on accessvp 4764836 setsockopt is slow on Solaris when compared to Linux 4772191 socket close(2) is slow on Solaris when compared to Linux --HG-- rename : usr/src/uts/common/fs/sockfs/socksctp.c => usr/src/uts/common/inet/sockmods/socksctp.c rename : usr/src/uts/common/fs/sockfs/socksctp.h => usr/src/uts/common/inet/sockmods/socksctp.h rename : usr/src/uts/common/fs/sockfs/socksctpsubr.c => usr/src/uts/common/inet/sockmods/socksctpsubr.c rename : usr/src/uts/common/fs/sockfs/socksdp.c => usr/src/uts/common/inet/sockmods/socksdp.c rename : usr/src/uts/common/fs/sockfs/socksdp.h => usr/src/uts/common/inet/sockmods/socksdp.h --- usr/src/uts/common/os/strsubr.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'usr/src/uts/common/os/strsubr.c') diff --git a/usr/src/uts/common/os/strsubr.c b/usr/src/uts/common/os/strsubr.c index 442ced2b51..469ef329db 100644 --- a/usr/src/uts/common/os/strsubr.c +++ b/usr/src/uts/common/os/strsubr.c @@ -286,7 +286,6 @@ static void outer_insert(syncq_t *, syncq_t *); static void outer_remove(syncq_t *, syncq_t *); static void write_now(syncq_t *); static void clr_qfull(queue_t *); -static void enable_svc(queue_t *); static void runbufcalls(void); static void sqenable(syncq_t *); static void sqfill_events(syncq_t *, queue_t *, mblk_t *, void (*)()); @@ -8401,6 +8400,21 @@ mblk_setcred(mblk_t *mp, cred_t *cr) } } +/* + * Set the cred and pid for each mblk in the message. It is assumed that + * the message passed in does not already have a cred. + */ +void +msg_setcredpid(mblk_t *mp, cred_t *cr, pid_t pid) +{ + while (mp != NULL) { + ASSERT(DB_CRED(mp) == NULL); + mblk_setcred(mp, cr); + DB_CPID(mp) = pid; + mp = mp->b_cont; + } +} + int hcksum_assoc(mblk_t *mp, multidata_t *mmd, pdesc_t *pd, uint32_t start, uint32_t stuff, uint32_t end, uint32_t value, -- cgit v1.2.3