diff options
| author | Yu Xiangning <Eric.Yu@Sun.COM> | 2008-12-11 20:04:13 -0800 |
|---|---|---|
| committer | Yu Xiangning <Eric.Yu@Sun.COM> | 2008-12-11 20:04:13 -0800 |
| commit | 0f1702c5201310f0529cd5abb77652e5e9b241b6 (patch) | |
| tree | 83bbea7ada9d11097f73645900c06c37d8346669 /usr/src/uts/common/os/strsubr.c | |
| parent | 9a9ae70f32271d74856130e37667ca926b27feb4 (diff) | |
| download | illumos-joyent-0f1702c5201310f0529cd5abb77652e5e9b241b6.tar.gz | |
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
Diffstat (limited to 'usr/src/uts/common/os/strsubr.c')
| -rw-r--r-- | usr/src/uts/common/os/strsubr.c | 16 |
1 files changed, 15 insertions, 1 deletions
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, |
