diff options
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | assoc.c | 6 | ||||
-rw-r--r-- | items.c | 12 | ||||
-rw-r--r-- | memcached.c | 118 | ||||
-rw-r--r-- | memcached_dtrace.d | 70 | ||||
-rw-r--r-- | memcached_dtrace.h | 428 |
6 files changed, 479 insertions, 159 deletions
diff --git a/Makefile.am b/Makefile.am index d001726..386d66a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -12,7 +12,9 @@ memcached_debug_DEPENDENCIES = @DTRACE_DEBUG_OBJ@ @DAEMON_OBJ@ memcached_dtrace.h: ${DTRACE} -h -s memcached_dtrace.d sed -e s,_DTRACE_VERSION,ENABLE_DTRACE,g memcached_dtrace.h | \ - tr '\t' ' ' | grep -v unistd.h > memcached_dtrace.tmp + tr '\t' ' ' | sed -e 's,char \*,const char \*,g' | \ + sed -e 's,void \*,const void \*,g' | \ + grep -v unistd.h > memcached_dtrace.tmp mv memcached_dtrace.tmp memcached_dtrace.h memcached_dtrace.o: $(memcached_OBJECTS) @@ -506,7 +506,7 @@ item *assoc_find(const char *key, const size_t nkey) { it = it->h_next; ++depth; } - MEMCACHED_ASSOC_FIND(key, depth); + MEMCACHED_ASSOC_FIND(key, nkey, depth); return ret; } @@ -599,7 +599,7 @@ int assoc_insert(item *it) { assoc_expand(); } - MEMCACHED_ASSOC_INSERT(ITEM_key(it), hash_items); + MEMCACHED_ASSOC_INSERT(ITEM_key(it), it->nkey, hash_items); return 1; } @@ -612,7 +612,7 @@ void assoc_delete(const char *key, const size_t nkey) { /* The DTrace probe cannot be triggered as the last instruction * due to possible tail-optimization by the compiler */ - MEMCACHED_ASSOC_DELETE(key, hash_items); + MEMCACHED_ASSOC_DELETE(key, nkey, hash_items); nxt = (*before)->h_next; (*before)->h_next = 0; /* probably pointless, but whatever. */ *before = nxt; @@ -230,7 +230,7 @@ static void item_unlink_q(item *it) { } int do_item_link(item *it) { - MEMCACHED_ITEM_LINK(ITEM_key(it), it->nbytes); + MEMCACHED_ITEM_LINK(ITEM_key(it), it->nkey, it->nbytes); assert((it->it_flags & (ITEM_LINKED|ITEM_SLABBED)) == 0); assert(it->nbytes < (1024 * 1024)); /* 1MB max size */ it->it_flags |= ITEM_LINKED; @@ -252,7 +252,7 @@ int do_item_link(item *it) { } void do_item_unlink(item *it) { - MEMCACHED_ITEM_UNLINK(ITEM_key(it), it->nbytes); + MEMCACHED_ITEM_UNLINK(ITEM_key(it), it->nkey, it->nbytes); if ((it->it_flags & ITEM_LINKED) != 0) { it->it_flags &= ~ITEM_LINKED; STATS_LOCK(); @@ -266,7 +266,7 @@ void do_item_unlink(item *it) { } void do_item_remove(item *it) { - MEMCACHED_ITEM_REMOVE(ITEM_key(it), it->nbytes); + MEMCACHED_ITEM_REMOVE(ITEM_key(it), it->nkey, it->nbytes); assert((it->it_flags & ITEM_SLABBED) == 0); if (it->refcount != 0) { it->refcount--; @@ -278,7 +278,7 @@ void do_item_remove(item *it) { } void do_item_update(item *it) { - MEMCACHED_ITEM_UPDATE(ITEM_key(it), it->nbytes); + MEMCACHED_ITEM_UPDATE(ITEM_key(it), it->nkey, it->nbytes); if (it->time < current_time - ITEM_UPDATE_INTERVAL) { assert((it->it_flags & ITEM_SLABBED) == 0); @@ -291,8 +291,8 @@ void do_item_update(item *it) { } int do_item_replace(item *it, item *new_it) { - MEMCACHED_ITEM_REPLACE(ITEM_key(it), it->nbytes, - ITEM_key(new_it), new_it->nbytes); + MEMCACHED_ITEM_REPLACE(ITEM_key(it), it->nkey, it->nbytes, + ITEM_key(new_it), new_it->nkey, new_it->nbytes); assert((it->it_flags & ITEM_SLABBED) == 0); do_item_unlink(it); diff --git a/memcached.c b/memcached.c index 4537cf1..b9af886 100644 --- a/memcached.c +++ b/memcached.c @@ -585,7 +585,7 @@ static void conn_set_state(conn *c, enum conn_states state) { c->state = state; - if (state == conn_write) { + if (state == conn_write || state == conn_mwrite) { MEMCACHED_PROCESS_COMMAND_END(c->sfd, c->wbuf, c->wbytes); } } @@ -828,32 +828,39 @@ static void complete_nread_ascii(conn *c) { out_string(c, "CLIENT_ERROR bad data chunk"); } else { ret = store_item(it, comm, c); - if (ret == 1) { - out_string(c, "STORED"); -#ifdef HAVE_DTRACE - switch (comm) { - case NREAD_ADD: - MEMCACHED_COMMAND_ADD(c->sfd, ITEM_key(it), it->nbytes); - break; - case NREAD_REPLACE: - MEMCACHED_COMMAND_REPLACE(c->sfd, ITEM_key(it), it->nbytes); - break; - case NREAD_APPEND: - MEMCACHED_COMMAND_APPEND(c->sfd, ITEM_key(it), it->nbytes); - break; - case NREAD_PREPEND: - MEMCACHED_COMMAND_PREPEND(c->sfd, ITEM_key(it), it->nbytes); - break; - case NREAD_SET: - MEMCACHED_COMMAND_SET(c->sfd, ITEM_key(it), it->nbytes); - break; - case NREAD_CAS: - MEMCACHED_COMMAND_CAS(c->sfd, ITEM_key(it), it->nbytes, - it->cas_id); - break; - } + +#ifdef ENABLE_DTRACE + switch (c->item_comm) { + case NREAD_ADD: + MEMCACHED_COMMAND_ADD(c->sfd, ITEM_key(it), it->nkey, + (ret == 1) ? it->nbytes : -1, it->cas_id); + break; + case NREAD_REPLACE: + MEMCACHED_COMMAND_REPLACE(c->sfd, ITEM_key(it), it->nkey, + (ret == 1) ? it->nbytes : -1, it->cas_id); + break; + case NREAD_APPEND: + MEMCACHED_COMMAND_APPEND(c->sfd, ITEM_key(it), it->nkey, + (ret == 1) ? it->nbytes : -1, it->cas_id); + break; + case NREAD_PREPEND: + MEMCACHED_COMMAND_PREPEND(c->sfd, ITEM_key(it), it->nkey, + (ret == 1) ? it->nbytes : -1, it->cas_id); + break; + case NREAD_SET: + MEMCACHED_COMMAND_SET(c->sfd, ITEM_key(it), it->nkey, + (ret == 1) ? it->nbytes : -1, it->cas_id); + break; + case NREAD_CAS: + MEMCACHED_COMMAND_CAS(c->sfd, ITEM_key(it), it->nkey, it->nbytes, + it->cas_id); + break; + } #endif - } else if(ret == 2) + + if (ret == 1) + out_string(c, "STORED"); + else if(ret == 2) out_string(c, "EXISTS"); else if(ret == 3) out_string(c, "NOT_FOUND"); @@ -1091,7 +1098,34 @@ static void complete_update_bin(conn *c) { *(ITEM_data(it) + it->nbytes - 2) = '\r'; *(ITEM_data(it) + it->nbytes - 1) = '\n'; - switch (store_item(it, c->item_comm, c)) { + ret = store_item(it, c->item_comm, c); + +#ifdef ENABLE_DTRACE + switch (c->item_comm) { + case NREAD_ADD: + MEMCACHED_COMMAND_ADD(c->sfd, ITEM_key(it), it->nkey, + (ret == 1) ? it->nbytes : -1, it->cas_id); + break; + case NREAD_REPLACE: + MEMCACHED_COMMAND_REPLACE(c->sfd, ITEM_key(it), it->nkey, + (ret == 1) ? it->nbytes : -1, it->cas_id); + break; + case NREAD_APPEND: + MEMCACHED_COMMAND_APPEND(c->sfd, ITEM_key(it), it->nkey, + (ret == 1) ? it->nbytes : -1, it->cas_id); + break; + case NREAD_PREPEND: + MEMCACHED_COMMAND_PREPEND(c->sfd, ITEM_key(it), it->nkey, + (ret == 1) ? it->nbytes : -1, it->cas_id); + break; + case NREAD_SET: + MEMCACHED_COMMAND_SET(c->sfd, ITEM_key(it), it->nkey, + (ret == 1) ? it->nbytes : -1, it->cas_id); + break; + } +#endif + + switch (ret) { case 1: /* Stored */ write_bin_response(c, NULL, 0, 0, 0); @@ -1144,6 +1178,8 @@ static void process_bin_get(conn *c) { stats.get_cmds++; stats.get_hits++; STATS_UNLOCK(); + MEMCACHED_COMMAND_GET(c->sfd, ITEM_key(it), it->nkey, + it->nbytes, it->cas_id); if (c->cmd == PROTOCOL_BINARY_CMD_GETK || c->cmd == PROTOCOL_BINARY_CMD_GETKQ) { @@ -1170,6 +1206,7 @@ static void process_bin_get(conn *c) { stats.get_cmds++; stats.get_misses++; STATS_UNLOCK(); + MEMCACHED_COMMAND_GET(c->sfd, key, nkey, -1, 0); if (c->cmd == PROTOCOL_BINARY_CMD_GETQ || c->cmd == PROTOCOL_BINARY_CMD_GETKQ) { @@ -1187,6 +1224,10 @@ static void process_bin_get(conn *c) { } } } + + if (settings.detail_enabled) { + stats_prefix_record_get(key, nkey, NULL != it); + } } uint32_t append_bin_stats(char *buf, const char *key, const uint16_t klen, @@ -1315,6 +1356,8 @@ static void dispatch_bin_command(conn *c) { int keylen = c->binary_header.request.keylen; uint32_t bodylen = c->binary_header.request.bodylen; + MEMCACHED_PROCESS_COMMAND_START(c->sfd, c->rcurr, c->rbytes); + switch(c->cmd) { case PROTOCOL_BINARY_CMD_VERSION: if (extlen == 0 && keylen == 0 && bodylen == 0) { @@ -1585,6 +1628,7 @@ static void process_bin_delete(conn *c) { if (it) { uint64_t cas=swap64(req->message.header.request.cas); if (cas == 0 || cas == it->cas_id) { + MEMCACHED_COMMAND_DELETE(c->sfd, ITEM_key(it), it->nkey); item_unlink(it); write_bin_response(c, NULL, 0, 0, 0); } else { @@ -2187,8 +2231,8 @@ static inline void process_get_command(conn *c, token_t *tokens, size_t ntokens, if (return_cas) { - MEMCACHED_COMMAND_GETS(c->sfd, ITEM_key(it), it->nbytes, - it->cas_id); + MEMCACHED_COMMAND_GET(c->sfd, ITEM_key(it), it->nkey, + it->nbytes, it->cas_id); /* Goofy mid-flight realloc. */ if (i >= c->suffixsize) { char **new_suffix_list = realloc(c->suffixlist, @@ -2227,8 +2271,8 @@ static inline void process_get_command(conn *c, token_t *tokens, size_t ntokens, } else { - MEMCACHED_COMMAND_GET(c->sfd, ITEM_key(it), it->nbytes); - + MEMCACHED_COMMAND_GET(c->sfd, ITEM_key(it), it->nkey, + it->nbytes, it->cas_id); if (add_iov(c, "VALUE ", 6) != 0 || add_iov(c, ITEM_key(it), it->nkey) != 0 || add_iov(c, ITEM_suffix(it), it->nsuffix + it->nbytes) != 0) @@ -2250,11 +2294,7 @@ static inline void process_get_command(conn *c, token_t *tokens, size_t ntokens, } else { stats_get_misses++; - if (return_cas) { - MEMCACHED_COMMAND_GETS(c->sfd, key, -1, 0); - } else { - MEMCACHED_COMMAND_GET(c->sfd, key, -1); - } + MEMCACHED_COMMAND_GET(c->sfd, key, nkey, -1, 0); } key_token++; @@ -2439,13 +2479,13 @@ char *do_add_delta(conn *c, item *it, const bool incr, const int64_t delta, char if (incr) { value += delta; - MEMCACHED_COMMAND_INCR(c->sfd, ITEM_key(it), value); + MEMCACHED_COMMAND_INCR(c->sfd, ITEM_key(it), it->nkey, value); } else { value -= delta; if(value < 0) { value = 0; } - MEMCACHED_COMMAND_DECR(c->sfd, ITEM_key(it), value); + MEMCACHED_COMMAND_DECR(c->sfd, ITEM_key(it), it->nkey, value); } sprintf(buf, "%llu", value); res = strlen(buf); @@ -2490,7 +2530,7 @@ static void process_delete_command(conn *c, token_t *tokens, const size_t ntoken it = item_get(key, nkey); if (it) { - MEMCACHED_PROCESS_COMMAND_START(c->sfd, c->rcurr, c->rbytes); + MEMCACHED_COMMAND_DELETE(c->sfd, ITEM_key(it), it->nkey); item_unlink(it); item_remove(it); /* release our reference */ out_string(c, "DELETED"); diff --git a/memcached_dtrace.d b/memcached_dtrace.d index 9119dd4..e6feb20 100644 --- a/memcached_dtrace.d +++ b/memcached_dtrace.d @@ -102,62 +102,72 @@ provider memcached { * wasting cpu capacity. * * @param key the key searched for + * @param keylen lenght of the key * @param depth the depth in the list of hash table */ - probe assoc__find(const char *key, int depth); + probe assoc__find(const char *key, int keylen, int depth); /** * Fired when a new item has been inserted. * @param key the key just inserted + * @param keylen lenght of the key * @param nokeys the total number of keys currently being stored, * including the key for which insert was called. */ - probe assoc__insert(const char *key, int nokeys); + probe assoc__insert(const char *key, int keylen, int nokeys); /** * Fired when a new item has been removed. * @param key the key just deleted + * @param keylen lenght of the key * @param nokeys the total number of keys currently being stored, * excluding the key for which delete was called. */ - probe assoc__delete(const char *key, int nokeys); + probe assoc__delete(const char *key, int keylen, int nokeys); /** * Fired when an item is being linked in the cache * @param key the items key + * @param keylen lenght of the key * @param size the size of the data */ - probe item__link(const char *key, int size); + probe item__link(const char *key, int keylen, int size); /** * Fired when an item is being deleted * @param key the items key + * @param keylen lenght of the key * @param size the size of the data */ - probe item__unlink(const char *key, int size); + probe item__unlink(const char *key, int keylen, int size); /** * Fired when the refcount for an item is reduced * @param key the items key + * @param keylen lenght of the key * @param size the size of the data */ - probe item__remove(const char *key, int size); + probe item__remove(const char *key, int keylen, int size); /** * Fired when the "last refenced" time is updated * @param key the items key + * @param keylen lenght of the key * @param size the size of the data */ - probe item__update(const char *key, int size); + probe item__update(const char *key, int keylen, int size); /** * Fired when an item is bein replaced with another item * @param oldkey the key of the item to replace + * @param oldkeylen the length of the old key * @param oldsize the size of the old item * @param newkey the key of the new item + * @param newkeylen the length of the new key * @param newsize the size of the new item */ - probe item__replace(const char *oldkey, int oldsize, const char *newkey, int newsize); + probe item__replace(const char *oldkey, int oldkeylen, int oldsize, + const char *newkey, int newkeylen, int newsize); /** * Fired when the processing of a command starts @@ -179,91 +189,97 @@ provider memcached { * Fired for a get-command * @param connid connection id * @param key requested key - * @param size size of the key's data (or -1 if not found) - */ - probe command__get(int connid, const char *key, int size); - - /** - * Fired for a gets command - * @param connid connection id - * @param key requested key + * @param keylen lenght of the key * @param size size of the key's data (or -1 if not found) * @param casid the casid for the item */ - probe command__gets(int connid, const char *key, int size, int64_t casid); + probe command__get(int connid, const char *key, int keylen, int size, int64_t casid); /** * Fired for a add-command * @param connid connection id * @param key requested key + * @param keylen lenght of the key * @param size the new size of the key's data (or -1 if not found) + * @param casid the casid for the item */ - probe command__add(int connid, const char *key, int size); + probe command__add(int connid, const char *key, int keylen, int size, int64_t casid); /** * Fired for a set-command * @param connid connection id * @param key requested key + * @param keylen lenght of the key * @param size the new size of the key's data (or -1 if not found) + * @param casid the casid for the item */ - probe command__set(int connid, const char *key, int size); + probe command__set(int connid, const char *key, int keylen, int size, int64_t casid); /** * Fired for a replace-command * @param connid connection id * @param key requested key + * @param keylen lenght of the key * @param size the new size of the key's data (or -1 if not found) + * @param casid the casid for the item */ - probe command__replace(int connid, const char *key, int size); + probe command__replace(int connid, const char *key, int keylen, int size, int64_t casid); /** * Fired for a prepend-command * @param connid connection id * @param key requested key + * @param keylen lenght of the key * @param size the new size of the key's data (or -1 if not found) + * @param casid the casid for the item */ - probe command__prepend(int connid, const char *key, int size); + probe command__prepend(int connid, const char *key, int keylen, int size, int64_t casid); /** * Fired for a append-command * @param connid connection id * @param key requested key + * @param keylen lenght of the key * @param size the new size of the key's data (or -1 if not found) + * @param casid the casid for the item */ - probe command__append(int connid, const char *key, int size); + probe command__append(int connid, const char *key, int keylen, int size, int64_t casid); /** * Fired for a cas-command * @param connid connection id * @param key requested key + * @param keylen lenght of the key * @param size size of the key's data (or -1 if not found) * @param casid the cas id requested */ - probe command__cas(int connid, const char *key, int size, int64_t casid); + probe command__cas(int connid, const char *key, int keylen, int size, int64_t casid); /** * Fired for incr command * @param connid connection id * @param key the requested key + * @param keylen lenght of the key * @param val the new value */ - probe command__incr(int connid, const char *key, int64_t val); + probe command__incr(int connid, const char *key, int keylen, int64_t val); /** * Fired for decr command * @param connid connection id * @param key the requested key + * @param keylen lenght of the key * @param val the new value */ - probe command__decr(int connid, const char *key, int64_t val); + probe command__decr(int connid, const char *key, int keylen, int64_t val); /** * Fired for a delete command * @param connid connection id * @param key the requested key - * @param exptime the expiry time + * @param keylen lenght of the key */ - probe command__delete(int connid, const char *key, long exptime); + probe command__delete(int connid, const char *key, int keylen); }; diff --git a/memcached_dtrace.h b/memcached_dtrace.h index c296d06..0d152fd 100644 --- a/memcached_dtrace.h +++ b/memcached_dtrace.h @@ -12,224 +12,486 @@ extern "C" { #if ENABLE_DTRACE -#define MEMCACHED_ASSOC_DELETE(arg0, arg1) \ - __dtrace_memcached___assoc__delete(arg0, arg1) +#define MEMCACHED_ASSOC_DELETE(arg0, arg1, arg2) \ + __dtrace_memcached___assoc__delete(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_ASSOC_DELETE_ENABLED() \ __dtraceenabled_memcached___assoc__delete() -#define MEMCACHED_ASSOC_FIND(arg0, arg1) \ - __dtrace_memcached___assoc__find(arg0, arg1) +#else +#define MEMCACHED_ASSOC_DELETE_ENABLED() \ + __dtraceenabled_memcached___assoc__delete(0) +#endif +#define MEMCACHED_ASSOC_FIND(arg0, arg1, arg2) \ + __dtrace_memcached___assoc__find(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_ASSOC_FIND_ENABLED() \ __dtraceenabled_memcached___assoc__find() -#define MEMCACHED_ASSOC_INSERT(arg0, arg1) \ - __dtrace_memcached___assoc__insert(arg0, arg1) +#else +#define MEMCACHED_ASSOC_FIND_ENABLED() \ + __dtraceenabled_memcached___assoc__find(0) +#endif +#define MEMCACHED_ASSOC_INSERT(arg0, arg1, arg2) \ + __dtrace_memcached___assoc__insert(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_ASSOC_INSERT_ENABLED() \ __dtraceenabled_memcached___assoc__insert() -#define MEMCACHED_COMMAND_ADD(arg0, arg1, arg2) \ - __dtrace_memcached___command__add(arg0, arg1, arg2) +#else +#define MEMCACHED_ASSOC_INSERT_ENABLED() \ + __dtraceenabled_memcached___assoc__insert(0) +#endif +#define MEMCACHED_COMMAND_ADD(arg0, arg1, arg2, arg3, arg4) \ + __dtrace_memcached___command__add(arg0, arg1, arg2, arg3, arg4) +#ifndef __sparc #define MEMCACHED_COMMAND_ADD_ENABLED() \ __dtraceenabled_memcached___command__add() -#define MEMCACHED_COMMAND_APPEND(arg0, arg1, arg2) \ - __dtrace_memcached___command__append(arg0, arg1, arg2) +#else +#define MEMCACHED_COMMAND_ADD_ENABLED() \ + __dtraceenabled_memcached___command__add(0) +#endif +#define MEMCACHED_COMMAND_APPEND(arg0, arg1, arg2, arg3, arg4) \ + __dtrace_memcached___command__append(arg0, arg1, arg2, arg3, arg4) +#ifndef __sparc #define MEMCACHED_COMMAND_APPEND_ENABLED() \ __dtraceenabled_memcached___command__append() -#define MEMCACHED_COMMAND_CAS(arg0, arg1, arg2, arg3) \ - __dtrace_memcached___command__cas(arg0, arg1, arg2, arg3) +#else +#define MEMCACHED_COMMAND_APPEND_ENABLED() \ + __dtraceenabled_memcached___command__append(0) +#endif +#define MEMCACHED_COMMAND_CAS(arg0, arg1, arg2, arg3, arg4) \ + __dtrace_memcached___command__cas(arg0, arg1, arg2, arg3, arg4) +#ifndef __sparc #define MEMCACHED_COMMAND_CAS_ENABLED() \ __dtraceenabled_memcached___command__cas() -#define MEMCACHED_COMMAND_DECR(arg0, arg1, arg2) \ - __dtrace_memcached___command__decr(arg0, arg1, arg2) +#else +#define MEMCACHED_COMMAND_CAS_ENABLED() \ + __dtraceenabled_memcached___command__cas(0) +#endif +#define MEMCACHED_COMMAND_DECR(arg0, arg1, arg2, arg3) \ + __dtrace_memcached___command__decr(arg0, arg1, arg2, arg3) +#ifndef __sparc #define MEMCACHED_COMMAND_DECR_ENABLED() \ __dtraceenabled_memcached___command__decr() +#else +#define MEMCACHED_COMMAND_DECR_ENABLED() \ + __dtraceenabled_memcached___command__decr(0) +#endif #define MEMCACHED_COMMAND_DELETE(arg0, arg1, arg2) \ __dtrace_memcached___command__delete(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_COMMAND_DELETE_ENABLED() \ __dtraceenabled_memcached___command__delete() -#define MEMCACHED_COMMAND_GET(arg0, arg1, arg2) \ - __dtrace_memcached___command__get(arg0, arg1, arg2) +#else +#define MEMCACHED_COMMAND_DELETE_ENABLED() \ + __dtraceenabled_memcached___command__delete(0) +#endif +#define MEMCACHED_COMMAND_GET(arg0, arg1, arg2, arg3, arg4) \ + __dtrace_memcached___command__get(arg0, arg1, arg2, arg3, arg4) +#ifndef __sparc #define MEMCACHED_COMMAND_GET_ENABLED() \ __dtraceenabled_memcached___command__get() -#define MEMCACHED_COMMAND_GETS(arg0, arg1, arg2, arg3) \ - __dtrace_memcached___command__gets(arg0, arg1, arg2, arg3) -#define MEMCACHED_COMMAND_GETS_ENABLED() \ - __dtraceenabled_memcached___command__gets() -#define MEMCACHED_COMMAND_INCR(arg0, arg1, arg2) \ - __dtrace_memcached___command__incr(arg0, arg1, arg2) +#else +#define MEMCACHED_COMMAND_GET_ENABLED() \ + __dtraceenabled_memcached___command__get(0) +#endif +#define MEMCACHED_COMMAND_INCR(arg0, arg1, arg2, arg3) \ + __dtrace_memcached___command__incr(arg0, arg1, arg2, arg3) +#ifndef __sparc #define MEMCACHED_COMMAND_INCR_ENABLED() \ __dtraceenabled_memcached___command__incr() -#define MEMCACHED_COMMAND_PREPEND(arg0, arg1, arg2) \ - __dtrace_memcached___command__prepend(arg0, arg1, arg2) +#else +#define MEMCACHED_COMMAND_INCR_ENABLED() \ + __dtraceenabled_memcached___command__incr(0) +#endif +#define MEMCACHED_COMMAND_PREPEND(arg0, arg1, arg2, arg3, arg4) \ + __dtrace_memcached___command__prepend(arg0, arg1, arg2, arg3, arg4) +#ifndef __sparc #define MEMCACHED_COMMAND_PREPEND_ENABLED() \ __dtraceenabled_memcached___command__prepend() -#define MEMCACHED_COMMAND_REPLACE(arg0, arg1, arg2) \ - __dtrace_memcached___command__replace(arg0, arg1, arg2) +#else +#define MEMCACHED_COMMAND_PREPEND_ENABLED() \ + __dtraceenabled_memcached___command__prepend(0) +#endif +#define MEMCACHED_COMMAND_REPLACE(arg0, arg1, arg2, arg3, arg4) \ + __dtrace_memcached___command__replace(arg0, arg1, arg2, arg3, arg4) +#ifndef __sparc #define MEMCACHED_COMMAND_REPLACE_ENABLED() \ __dtraceenabled_memcached___command__replace() -#define MEMCACHED_COMMAND_SET(arg0, arg1, arg2) \ - __dtrace_memcached___command__set(arg0, arg1, arg2) +#else +#define MEMCACHED_COMMAND_REPLACE_ENABLED() \ + __dtraceenabled_memcached___command__replace(0) +#endif +#define MEMCACHED_COMMAND_SET(arg0, arg1, arg2, arg3, arg4) \ + __dtrace_memcached___command__set(arg0, arg1, arg2, arg3, arg4) +#ifndef __sparc #define MEMCACHED_COMMAND_SET_ENABLED() \ __dtraceenabled_memcached___command__set() +#else +#define MEMCACHED_COMMAND_SET_ENABLED() \ + __dtraceenabled_memcached___command__set(0) +#endif #define MEMCACHED_CONN_ALLOCATE(arg0) \ __dtrace_memcached___conn__allocate(arg0) +#ifndef __sparc #define MEMCACHED_CONN_ALLOCATE_ENABLED() \ __dtraceenabled_memcached___conn__allocate() +#else +#define MEMCACHED_CONN_ALLOCATE_ENABLED() \ + __dtraceenabled_memcached___conn__allocate(0) +#endif #define MEMCACHED_CONN_CREATE(arg0) \ __dtrace_memcached___conn__create(arg0) +#ifndef __sparc #define MEMCACHED_CONN_CREATE_ENABLED() \ __dtraceenabled_memcached___conn__create() +#else +#define MEMCACHED_CONN_CREATE_ENABLED() \ + __dtraceenabled_memcached___conn__create(0) +#endif #define MEMCACHED_CONN_DESTROY(arg0) \ __dtrace_memcached___conn__destroy(arg0) +#ifndef __sparc #define MEMCACHED_CONN_DESTROY_ENABLED() \ __dtraceenabled_memcached___conn__destroy() +#else +#define MEMCACHED_CONN_DESTROY_ENABLED() \ + __dtraceenabled_memcached___conn__destroy(0) +#endif #define MEMCACHED_CONN_DISPATCH(arg0, arg1) \ __dtrace_memcached___conn__dispatch(arg0, arg1) +#ifndef __sparc #define MEMCACHED_CONN_DISPATCH_ENABLED() \ __dtraceenabled_memcached___conn__dispatch() +#else +#define MEMCACHED_CONN_DISPATCH_ENABLED() \ + __dtraceenabled_memcached___conn__dispatch(0) +#endif #define MEMCACHED_CONN_RELEASE(arg0) \ __dtrace_memcached___conn__release(arg0) +#ifndef __sparc #define MEMCACHED_CONN_RELEASE_ENABLED() \ __dtraceenabled_memcached___conn__release() -#define MEMCACHED_ITEM_LINK(arg0, arg1) \ - __dtrace_memcached___item__link(arg0, arg1) +#else +#define MEMCACHED_CONN_RELEASE_ENABLED() \ + __dtraceenabled_memcached___conn__release(0) +#endif +#define MEMCACHED_ITEM_LINK(arg0, arg1, arg2) \ + __dtrace_memcached___item__link(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_ITEM_LINK_ENABLED() \ __dtraceenabled_memcached___item__link() -#define MEMCACHED_ITEM_REMOVE(arg0, arg1) \ - __dtrace_memcached___item__remove(arg0, arg1) +#else +#define MEMCACHED_ITEM_LINK_ENABLED() \ + __dtraceenabled_memcached___item__link(0) +#endif +#define MEMCACHED_ITEM_REMOVE(arg0, arg1, arg2) \ + __dtrace_memcached___item__remove(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_ITEM_REMOVE_ENABLED() \ __dtraceenabled_memcached___item__remove() -#define MEMCACHED_ITEM_REPLACE(arg0, arg1, arg2, arg3) \ - __dtrace_memcached___item__replace(arg0, arg1, arg2, arg3) +#else +#define MEMCACHED_ITEM_REMOVE_ENABLED() \ + __dtraceenabled_memcached___item__remove(0) +#endif +#define MEMCACHED_ITEM_REPLACE(arg0, arg1, arg2, arg3, arg4, arg5) \ + __dtrace_memcached___item__replace(arg0, arg1, arg2, arg3, arg4, arg5) +#ifndef __sparc #define MEMCACHED_ITEM_REPLACE_ENABLED() \ __dtraceenabled_memcached___item__replace() -#define MEMCACHED_ITEM_UNLINK(arg0, arg1) \ - __dtrace_memcached___item__unlink(arg0, arg1) +#else +#define MEMCACHED_ITEM_REPLACE_ENABLED() \ + __dtraceenabled_memcached___item__replace(0) +#endif +#define MEMCACHED_ITEM_UNLINK(arg0, arg1, arg2) \ + __dtrace_memcached___item__unlink(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_ITEM_UNLINK_ENABLED() \ __dtraceenabled_memcached___item__unlink() -#define MEMCACHED_ITEM_UPDATE(arg0, arg1) \ - __dtrace_memcached___item__update(arg0, arg1) +#else +#define MEMCACHED_ITEM_UNLINK_ENABLED() \ + __dtraceenabled_memcached___item__unlink(0) +#endif +#define MEMCACHED_ITEM_UPDATE(arg0, arg1, arg2) \ + __dtrace_memcached___item__update(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_ITEM_UPDATE_ENABLED() \ __dtraceenabled_memcached___item__update() +#else +#define MEMCACHED_ITEM_UPDATE_ENABLED() \ + __dtraceenabled_memcached___item__update(0) +#endif #define MEMCACHED_PROCESS_COMMAND_END(arg0, arg1, arg2) \ __dtrace_memcached___process__command__end(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_PROCESS_COMMAND_END_ENABLED() \ __dtraceenabled_memcached___process__command__end() +#else +#define MEMCACHED_PROCESS_COMMAND_END_ENABLED() \ + __dtraceenabled_memcached___process__command__end(0) +#endif #define MEMCACHED_PROCESS_COMMAND_START(arg0, arg1, arg2) \ __dtrace_memcached___process__command__start(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_PROCESS_COMMAND_START_ENABLED() \ __dtraceenabled_memcached___process__command__start() +#else +#define MEMCACHED_PROCESS_COMMAND_START_ENABLED() \ + __dtraceenabled_memcached___process__command__start(0) +#endif #define MEMCACHED_SLABS_ALLOCATE(arg0, arg1, arg2, arg3) \ __dtrace_memcached___slabs__allocate(arg0, arg1, arg2, arg3) +#ifndef __sparc #define MEMCACHED_SLABS_ALLOCATE_ENABLED() \ __dtraceenabled_memcached___slabs__allocate() +#else +#define MEMCACHED_SLABS_ALLOCATE_ENABLED() \ + __dtraceenabled_memcached___slabs__allocate(0) +#endif #define MEMCACHED_SLABS_ALLOCATE_FAILED(arg0, arg1) \ __dtrace_memcached___slabs__allocate__failed(arg0, arg1) +#ifndef __sparc #define MEMCACHED_SLABS_ALLOCATE_FAILED_ENABLED() \ __dtraceenabled_memcached___slabs__allocate__failed() +#else +#define MEMCACHED_SLABS_ALLOCATE_FAILED_ENABLED() \ + __dtraceenabled_memcached___slabs__allocate__failed(0) +#endif #define MEMCACHED_SLABS_FREE(arg0, arg1, arg2) \ __dtrace_memcached___slabs__free(arg0, arg1, arg2) +#ifndef __sparc #define MEMCACHED_SLABS_FREE_ENABLED() \ __dtraceenabled_memcached___slabs__free() +#else +#define MEMCACHED_SLABS_FREE_ENABLED() \ + __dtraceenabled_memcached___slabs__free(0) +#endif #define MEMCACHED_SLABS_SLABCLASS_ALLOCATE(arg0) \ __dtrace_memcached___slabs__slabclass__allocate(arg0) +#ifndef __sparc #define MEMCACHED_SLABS_SLABCLASS_ALLOCATE_ENABLED() \ __dtraceenabled_memcached___slabs__slabclass__allocate() +#else +#define MEMCACHED_SLABS_SLABCLASS_ALLOCATE_ENABLED() \ + __dtraceenabled_memcached___slabs__slabclass__allocate(0) +#endif #define MEMCACHED_SLABS_SLABCLASS_ALLOCATE_FAILED(arg0) \ __dtrace_memcached___slabs__slabclass__allocate__failed(arg0) +#ifndef __sparc #define MEMCACHED_SLABS_SLABCLASS_ALLOCATE_FAILED_ENABLED() \ __dtraceenabled_memcached___slabs__slabclass__allocate__failed() +#else +#define MEMCACHED_SLABS_SLABCLASS_ALLOCATE_FAILED_ENABLED() \ + __dtraceenabled_memcached___slabs__slabclass__allocate__failed(0) +#endif -extern void __dtrace_memcached___assoc__delete(char *, int); +extern void __dtrace_memcached___assoc__delete(const char *, int, int); +#ifndef __sparc extern int __dtraceenabled_memcached___assoc__delete(void); -extern void __dtrace_memcached___assoc__find(char *, int); +#else +extern int __dtraceenabled_memcached___assoc__delete(long); +#endif +extern void __dtrace_memcached___assoc__find(const char *, int, int); +#ifndef __sparc extern int __dtraceenabled_memcached___assoc__find(void); -extern void __dtrace_memcached___assoc__insert(char *, int); +#else +extern int __dtraceenabled_memcached___assoc__find(long); +#endif +extern void __dtrace_memcached___assoc__insert(const char *, int, int); +#ifndef __sparc extern int __dtraceenabled_memcached___assoc__insert(void); -extern void __dtrace_memcached___command__add(int, char *, int); +#else +extern int __dtraceenabled_memcached___assoc__insert(long); +#endif +extern void __dtrace_memcached___command__add(int, const char *, int, int, int64_t); +#ifndef __sparc extern int __dtraceenabled_memcached___command__add(void); -extern void __dtrace_memcached___command__append(int, char *, int); +#else +extern int __dtraceenabled_memcached___command__add(long); +#endif +extern void __dtrace_memcached___command__append(int, const char *, int, int, int64_t); +#ifndef __sparc extern int __dtraceenabled_memcached___command__append(void); -extern void __dtrace_memcached___command__cas(int, char *, int, int64_t); +#else +extern int __dtraceenabled_memcached___command__append(long); +#endif +extern void __dtrace_memcached___command__cas(int, const char *, int, int, int64_t); +#ifndef __sparc extern int __dtraceenabled_memcached___command__cas(void); -extern void __dtrace_memcached___command__decr(int, char *, int64_t); +#else +extern int __dtraceenabled_memcached___command__cas(long); +#endif +extern void __dtrace_memcached___command__decr(int, const char *, int, int64_t); +#ifndef __sparc extern int __dtraceenabled_memcached___command__decr(void); -extern void __dtrace_memcached___command__delete(int, char *, long); +#else +extern int __dtraceenabled_memcached___command__decr(long); +#endif +extern void __dtrace_memcached___command__delete(int, const char *, int); +#ifndef __sparc extern int __dtraceenabled_memcached___command__delete(void); -extern void __dtrace_memcached___command__get(int, char *, int); +#else +extern int __dtraceenabled_memcached___command__delete(long); +#endif +extern void __dtrace_memcached___command__get(int, const char *, int, int, int64_t); +#ifndef __sparc extern int __dtraceenabled_memcached___command__get(void); -extern void __dtrace_memcached___command__gets(int, char *, int, int64_t); -extern int __dtraceenabled_memcached___command__gets(void); -extern void __dtrace_memcached___command__incr(int, char *, int64_t); +#else +extern int __dtraceenabled_memcached___command__get(long); +#endif +extern void __dtrace_memcached___command__incr(int, const char *, int, int64_t); +#ifndef __sparc extern int __dtraceenabled_memcached___command__incr(void); -extern void __dtrace_memcached___command__prepend(int, char *, int); +#else +extern int __dtraceenabled_memcached___command__incr(long); +#endif +extern void __dtrace_memcached___command__prepend(int, const char *, int, int, int64_t); +#ifndef __sparc extern int __dtraceenabled_memcached___command__prepend(void); -extern void __dtrace_memcached___command__replace(int, char *, int); +#else +extern int __dtraceenabled_memcached___command__prepend(long); +#endif +extern void __dtrace_memcached___command__replace(int, const char *, int, int, int64_t); +#ifndef __sparc extern int __dtraceenabled_memcached___command__replace(void); -extern void __dtrace_memcached___command__set(int, char *, int); +#else +extern int __dtraceenabled_memcached___command__replace(long); +#endif +extern void __dtrace_memcached___command__set(int, const char *, int, int, int64_t); +#ifndef __sparc extern int __dtraceenabled_memcached___command__set(void); +#else +extern int __dtraceenabled_memcached___command__set(long); +#endif extern void __dtrace_memcached___conn__allocate(int); +#ifndef __sparc extern int __dtraceenabled_memcached___conn__allocate(void); -extern void __dtrace_memcached___conn__create(void *); +#else +extern int __dtraceenabled_memcached___conn__allocate(long); +#endif +extern void __dtrace_memcached___conn__create(const void *); +#ifndef __sparc extern int __dtraceenabled_memcached___conn__create(void); -extern void __dtrace_memcached___conn__destroy(void *); +#else +extern int __dtraceenabled_memcached___conn__create(long); +#endif +extern void __dtrace_memcached___conn__destroy(const void *); +#ifndef __sparc extern int __dtraceenabled_memcached___conn__destroy(void); +#else +extern int __dtraceenabled_memcached___conn__destroy(long); +#endif extern void __dtrace_memcached___conn__dispatch(int, int); +#ifndef __sparc extern int __dtraceenabled_memcached___conn__dispatch(void); +#else +extern int __dtraceenabled_memcached___conn__dispatch(long); +#endif extern void __dtrace_memcached___conn__release(int); +#ifndef __sparc extern int __dtraceenabled_memcached___conn__release(void); -extern void __dtrace_memcached___item__link(char *, int); +#else +extern int __dtraceenabled_memcached___conn__release(long); +#endif +extern void __dtrace_memcached___item__link(const char *, int, int); +#ifndef __sparc extern int __dtraceenabled_memcached___item__link(void); -extern void __dtrace_memcached___item__remove(char *, int); +#else +extern int __dtraceenabled_memcached___item__link(long); +#endif +extern void __dtrace_memcached___item__remove(const char *, int, int); +#ifndef __sparc extern int __dtraceenabled_memcached___item__remove(void); -extern void __dtrace_memcached___item__replace(char *, int, char *, int); +#else +extern int __dtraceenabled_memcached___item__remove(long); +#endif +extern void __dtrace_memcached___item__replace(const char *, int, int, const char *, int, int); +#ifndef __sparc extern int __dtraceenabled_memcached___item__replace(void); -extern void __dtrace_memcached___item__unlink(char *, int); +#else +extern int __dtraceenabled_memcached___item__replace(long); +#endif +extern void __dtrace_memcached___item__unlink(const char *, int, int); +#ifndef __sparc extern int __dtraceenabled_memcached___item__unlink(void); -extern void __dtrace_memcached___item__update(char *, int); +#else +extern int __dtraceenabled_memcached___item__unlink(long); +#endif +extern void __dtrace_memcached___item__update(const char *, int, int); +#ifndef __sparc extern int __dtraceenabled_memcached___item__update(void); -extern void __dtrace_memcached___process__command__end(int, void *, int); +#else +extern int __dtraceenabled_memcached___item__update(long); +#endif +extern void __dtrace_memcached___process__command__end(int, const void *, int); +#ifndef __sparc extern int __dtraceenabled_memcached___process__command__end(void); -extern void __dtrace_memcached___process__command__start(int, void *, int); +#else +extern int __dtraceenabled_memcached___process__command__end(long); +#endif +extern void __dtrace_memcached___process__command__start(int, const void *, int); +#ifndef __sparc extern int __dtraceenabled_memcached___process__command__start(void); -extern void __dtrace_memcached___slabs__allocate(int, int, int, void *); +#else +extern int __dtraceenabled_memcached___process__command__start(long); +#endif +extern void __dtrace_memcached___slabs__allocate(int, int, int, const void *); +#ifndef __sparc extern int __dtraceenabled_memcached___slabs__allocate(void); +#else +extern int __dtraceenabled_memcached___slabs__allocate(long); +#endif extern void __dtrace_memcached___slabs__allocate__failed(int, int); +#ifndef __sparc extern int __dtraceenabled_memcached___slabs__allocate__failed(void); -extern void __dtrace_memcached___slabs__free(int, int, void *); +#else +extern int __dtraceenabled_memcached___slabs__allocate__failed(long); +#endif +extern void __dtrace_memcached___slabs__free(int, int, const void *); +#ifndef __sparc extern int __dtraceenabled_memcached___slabs__free(void); +#else +extern int __dtraceenabled_memcached___slabs__free(long); +#endif extern void __dtrace_memcached___slabs__slabclass__allocate(int); +#ifndef __sparc extern int __dtraceenabled_memcached___slabs__slabclass__allocate(void); +#else +extern int __dtraceenabled_memcached___slabs__slabclass__allocate(long); +#endif extern void __dtrace_memcached___slabs__slabclass__allocate__failed(int); +#ifndef __sparc extern int __dtraceenabled_memcached___slabs__slabclass__allocate__failed(void); +#else +extern int __dtraceenabled_memcached___slabs__slabclass__allocate__failed(long); +#endif #else -#define MEMCACHED_ASSOC_DELETE(arg0, arg1) +#define MEMCACHED_ASSOC_DELETE(arg0, arg1, arg2) #define MEMCACHED_ASSOC_DELETE_ENABLED() (0) -#define MEMCACHED_ASSOC_FIND(arg0, arg1) +#define MEMCACHED_ASSOC_FIND(arg0, arg1, arg2) #define MEMCACHED_ASSOC_FIND_ENABLED() (0) -#define MEMCACHED_ASSOC_INSERT(arg0, arg1) +#define MEMCACHED_ASSOC_INSERT(arg0, arg1, arg2) #define MEMCACHED_ASSOC_INSERT_ENABLED() (0) -#define MEMCACHED_COMMAND_ADD(arg0, arg1, arg2) +#define MEMCACHED_COMMAND_ADD(arg0, arg1, arg2, arg3, arg4) #define MEMCACHED_COMMAND_ADD_ENABLED() (0) -#define MEMCACHED_COMMAND_APPEND(arg0, arg1, arg2) +#define MEMCACHED_COMMAND_APPEND(arg0, arg1, arg2, arg3, arg4) #define MEMCACHED_COMMAND_APPEND_ENABLED() (0) -#define MEMCACHED_COMMAND_CAS(arg0, arg1, arg2, arg3) +#define MEMCACHED_COMMAND_CAS(arg0, arg1, arg2, arg3, arg4) #define MEMCACHED_COMMAND_CAS_ENABLED() (0) -#define MEMCACHED_COMMAND_DECR(arg0, arg1, arg2) +#define MEMCACHED_COMMAND_DECR(arg0, arg1, arg2, arg3) #define MEMCACHED_COMMAND_DECR_ENABLED() (0) #define MEMCACHED_COMMAND_DELETE(arg0, arg1, arg2) #define MEMCACHED_COMMAND_DELETE_ENABLED() (0) -#define MEMCACHED_COMMAND_GET(arg0, arg1, arg2) +#define MEMCACHED_COMMAND_GET(arg0, arg1, arg2, arg3, arg4) #define MEMCACHED_COMMAND_GET_ENABLED() (0) -#define MEMCACHED_COMMAND_GETS(arg0, arg1, arg2, arg3) -#define MEMCACHED_COMMAND_GETS_ENABLED() (0) -#define MEMCACHED_COMMAND_INCR(arg0, arg1, arg2) +#define MEMCACHED_COMMAND_INCR(arg0, arg1, arg2, arg3) #define MEMCACHED_COMMAND_INCR_ENABLED() (0) -#define MEMCACHED_COMMAND_PREPEND(arg0, arg1, arg2) +#define MEMCACHED_COMMAND_PREPEND(arg0, arg1, arg2, arg3, arg4) #define MEMCACHED_COMMAND_PREPEND_ENABLED() (0) -#define MEMCACHED_COMMAND_REPLACE(arg0, arg1, arg2) +#define MEMCACHED_COMMAND_REPLACE(arg0, arg1, arg2, arg3, arg4) #define MEMCACHED_COMMAND_REPLACE_ENABLED() (0) -#define MEMCACHED_COMMAND_SET(arg0, arg1, arg2) +#define MEMCACHED_COMMAND_SET(arg0, arg1, arg2, arg3, arg4) #define MEMCACHED_COMMAND_SET_ENABLED() (0) #define MEMCACHED_CONN_ALLOCATE(arg0) #define MEMCACHED_CONN_ALLOCATE_ENABLED() (0) @@ -241,15 +503,15 @@ extern int __dtraceenabled_memcached___slabs__slabclass__allocate__failed(void); #define MEMCACHED_CONN_DISPATCH_ENABLED() (0) #define MEMCACHED_CONN_RELEASE(arg0) #define MEMCACHED_CONN_RELEASE_ENABLED() (0) -#define MEMCACHED_ITEM_LINK(arg0, arg1) +#define MEMCACHED_ITEM_LINK(arg0, arg1, arg2) #define MEMCACHED_ITEM_LINK_ENABLED() (0) -#define MEMCACHED_ITEM_REMOVE(arg0, arg1) +#define MEMCACHED_ITEM_REMOVE(arg0, arg1, arg2) #define MEMCACHED_ITEM_REMOVE_ENABLED() (0) -#define MEMCACHED_ITEM_REPLACE(arg0, arg1, arg2, arg3) +#define MEMCACHED_ITEM_REPLACE(arg0, arg1, arg2, arg3, arg4, arg5) #define MEMCACHED_ITEM_REPLACE_ENABLED() (0) -#define MEMCACHED_ITEM_UNLINK(arg0, arg1) +#define MEMCACHED_ITEM_UNLINK(arg0, arg1, arg2) #define MEMCACHED_ITEM_UNLINK_ENABLED() (0) -#define MEMCACHED_ITEM_UPDATE(arg0, arg1) +#define MEMCACHED_ITEM_UPDATE(arg0, arg1, arg2) #define MEMCACHED_ITEM_UPDATE_ENABLED() (0) #define MEMCACHED_PROCESS_COMMAND_END(arg0, arg1, arg2) #define MEMCACHED_PROCESS_COMMAND_END_ENABLED() (0) |