"Fossies" - the Fresh Open Source Software Archive

Member "memcached-1.6.15/memcached_dtrace.d" (21 Feb 2022, 10708 Bytes) of package /linux/www/memcached-1.6.15.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) D source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "memcached_dtrace.d" see the Fossies "Dox" file reference documentation.

    1 /*
    2  * Copyright (c) <2008>, Sun Microsystems, Inc.
    3  * All rights reserved.
    4  *
    5  * Redistribution and use in source and binary forms, with or without
    6  * modification, are permitted provided that the following conditions are met:
    7  *     * Redistributions of source code must retain the above copyright
    8  *       notice, this list of conditions and the following disclaimer.
    9  *     * Redistributions in binary form must reproduce the above copyright
   10  *       notice, this list of conditions and the following disclaimer in the
   11  *       documentation and/or other materials provided with the distribution.
   12  *     * Neither the name of the  nor the
   13  *       names of its contributors may be used to endorse or promote products
   14  *       derived from this software without specific prior written permission.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY SUN MICROSYSTEMS, INC. ``AS IS'' AND ANY
   17  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   19  * DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY
   20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   22  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   23  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   25  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   26  */
   27 provider memcached {
   28    /**
   29     * Fired when a connection object is allocated from the connection pool.
   30     * @param connid the connection id
   31     */
   32    probe conn__allocate(int connid);
   33 
   34    /**
   35     * Fired when a connection object is released back to the connection pool.
   36     * @param connid the connection id
   37     */
   38    probe conn__release(int connid);
   39 
   40    /**
   41     * Fired when a new connection object is created (there are no more
   42     * connection objects in the connection pool).
   43     * @param ptr pointer to the connection object
   44     */
   45    probe conn__create(void *ptr);
   46 
   47    /**
   48     * Fired when a connection object is destroyed ("released back to
   49     * the memory subsystem").
   50     * @param ptr pointer to the connection object
   51     */
   52    probe conn__destroy(void *ptr);
   53 
   54    /**
   55     * Fired when a connection is dispatched from the "main thread" to a
   56     * worker thread.
   57     * @param connid the connection id
   58     * @param threadid the thread id
   59     */
   60    probe conn__dispatch(int connid, int64_t threadid);
   61 
   62    /**
   63     * Allocate memory from the slab allocator.
   64     * @param size the requested size
   65     * @param slabclass the allocation will be fulfilled in this class
   66     * @param slabsize the size of each item in this class
   67     * @param ptr pointer to allocated memory
   68     */
   69    probe slabs__allocate(int size, int slabclass, int slabsize, void* ptr);
   70 
   71    /**
   72     * Failed to allocate memory (out of memory).
   73     * @param size the requested size
   74     * @param slabclass the class that failed to fulfill the request
   75     */
   76    probe slabs__allocate__failed(int size, int slabclass);
   77 
   78    /**
   79     * Fired when a slab class attempts to allocate more space.
   80     * @param slabclass class that needs more memory
   81     */
   82    probe slabs__slabclass__allocate(int slabclass);
   83 
   84    /**
   85     * Failed to allocate memory (out of memory).
   86     * @param slabclass the class that failed grab more memory
   87     */
   88    probe slabs__slabclass__allocate__failed(int slabclass);
   89 
   90    /**
   91     * Release memory.
   92     * @param size the size of the memory
   93     * @param slabclass the class the memory belongs to
   94     * @param ptr pointer to the memory to release
   95     */
   96    probe slabs__free(int size, int slabclass, void* ptr);
   97 
   98    /**
   99     * Fired when the when we have searched the hash table for a named key.
  100     * These two elements provide an insight in how well the hash function
  101     * functions. Long traversals are a sign of a less optimal function,
  102     * wasting cpu capacity.
  103     *
  104     * @param key the key searched for
  105     * @param keylen length of the key
  106     * @param depth the depth in the list of hash table
  107     */
  108    probe assoc__find(const char *key, int keylen, int depth);
  109 
  110    /**
  111     * Fired when a new item has been inserted.
  112     * @param key the key just inserted
  113     * @param keylen length of the key
  114     */
  115    probe assoc__insert(const char *key, int keylen);
  116 
  117    /**
  118     * Fired when a new item has been removed.
  119     * @param key the key just deleted
  120     * @param keylen length of the key
  121     */
  122    probe assoc__delete(const char *key, int keylen);
  123 
  124    /**
  125     * Fired when an item is linked into the cache.
  126     * @param key the items key
  127     * @param keylen length of the key
  128     * @param size the size of the data
  129     */
  130    probe item__link(const char *key, int keylen, int size);
  131 
  132    /**
  133     * Fired when an item is deleted.
  134     * @param key the items key
  135     * @param keylen length of the key
  136     * @param size the size of the data
  137     */
  138    probe item__unlink(const char *key, int keylen, int size);
  139 
  140    /**
  141     * Fired when the refcount for an item is reduced.
  142     * @param key the items key
  143     * @param keylen length of the key
  144     * @param size the size of the data
  145     */
  146    probe item__remove(const char *key, int keylen, int size);
  147 
  148    /**
  149     * Fired when the "last refenced" time is updated.
  150     * @param key the items key
  151     * @param keylen length of the key
  152     * @param size the size of the data
  153     */
  154    probe item__update(const char *key, int keylen, int size);
  155 
  156    /**
  157     * Fired when an item is replaced with another item.
  158     * @param oldkey the key of the item to replace
  159     * @param oldkeylen the length of the old key
  160     * @param oldsize the size of the old item
  161     * @param newkey the key of the new item
  162     * @param newkeylen the length of the new key
  163     * @param newsize the size of the new item
  164     */
  165    probe item__replace(const char *oldkey, int oldkeylen, int oldsize,
  166                        const char *newkey, int newkeylen, int newsize);
  167 
  168    /**
  169     * Fired when the processing of a command starts.
  170     * @param connid the connection id
  171     * @param request the incoming request
  172     * @param size the size of the request
  173     */
  174    probe process__command__start(int connid, const void *request, int size);
  175 
  176    /**
  177     * Fired when the processing of a command is done.
  178     * @param connid the connection id
  179     * @param response the response to send back to the client
  180     * @param size the size of the response
  181     */
  182    probe process__command__end(int connid, const void *response, int size);
  183 
  184    /**
  185     * Fired for a get-command
  186     * @param connid connection id
  187     * @param key requested key
  188     * @param keylen length of the key
  189     * @param size size of the key's data (or signed int -1 if not found)
  190     * @param casid the casid for the item
  191     */
  192    probe command__get(int connid, const char *key, int keylen, int size, int64_t casid);
  193 
  194    /**
  195     * Fired for an add-command.
  196     * @param connid connection id
  197     * @param key requested key
  198     * @param keylen length of the key
  199     * @param size the new size of the key's data (or signed int -1 if
  200     *             not found)
  201     * @param casid the casid for the item
  202     */
  203    probe command__add(int connid, const char *key, int keylen, int size, int64_t casid);
  204 
  205    /**
  206     * Fired for a set-command.
  207     * @param connid connection id
  208     * @param key requested key
  209     * @param keylen length of the key
  210     * @param size the new size of the key's data (or signed int -1 if
  211     *             not found)
  212     * @param casid the casid for the item
  213     */
  214    probe command__set(int connid, const char *key, int keylen, int size, int64_t casid);
  215 
  216    /**
  217     * Fired for a replace-command.
  218     * @param connid connection id
  219     * @param key requested key
  220     * @param keylen length of the key
  221     * @param size the new size of the key's data (or signed int -1 if
  222     *             not found)
  223     * @param casid the casid for the item
  224     */
  225    probe command__replace(int connid, const char *key, int keylen, int size, int64_t casid);
  226 
  227    /**
  228     * Fired for a prepend-command.
  229     * @param connid connection id
  230     * @param key requested key
  231     * @param keylen length of the key
  232     * @param size the new size of the key's data (or signed int -1 if
  233     *             not found)
  234     * @param casid the casid for the item
  235     */
  236    probe command__prepend(int connid, const char *key, int keylen, int size, int64_t casid);
  237 
  238    /**
  239     * Fired for an append-command.
  240     * @param connid connection id
  241     * @param key requested key
  242     * @param keylen length of the key
  243     * @param size the new size of the key's data (or signed int -1 if
  244     *             not found)
  245     * @param casid the casid for the item
  246     */
  247    probe command__append(int connid, const char *key, int keylen, int size, int64_t casid);
  248 
  249    /**
  250     * Fired for an touch-command.
  251     * @param connid connection id
  252     * @param key requested key
  253     * @param keylen length of the key
  254     * @param size the new size of the key's data (or signed int -1 if
  255     *             not found)
  256     * @param casid the casid for the item
  257     */
  258    probe command__touch(int connid, const char *key, int keylen, int size, int64_t casid);
  259 
  260    /**
  261     * Fired for a cas-command.
  262     * @param connid connection id
  263     * @param key requested key
  264     * @param keylen length of the key
  265     * @param size size of the key's data (or signed int -1 if not found)
  266     * @param casid the cas id requested
  267     */
  268    probe command__cas(int connid, const char *key, int keylen, int size, int64_t casid);
  269 
  270    /**
  271     * Fired for an incr command.
  272     * @param connid connection id
  273     * @param key the requested key
  274     * @param keylen length of the key
  275     * @param val the new value
  276     */
  277    probe command__incr(int connid, const char *key, int keylen, int64_t val);
  278 
  279    /**
  280     * Fired for a decr command.
  281     * @param connid connection id
  282     * @param key the requested key
  283     * @param keylen length of the key
  284     * @param val the new value
  285     */
  286    probe command__decr(int connid, const char *key, int keylen, int64_t val);
  287 
  288    /**
  289     * Fired for a delete command.
  290     * @param connid connection id
  291     * @param key the requested key
  292     * @param keylen length of the key
  293     */
  294    probe command__delete(int connid, const char *key, int keylen);
  295 
  296 };
  297 
  298 #pragma D attributes Unstable/Unstable/Common provider memcached provider
  299 #pragma D attributes Private/Private/Common provider memcached module
  300 #pragma D attributes Private/Private/Common provider memcached function
  301 #pragma D attributes Unstable/Unstable/Common provider memcached name
  302 #pragma D attributes Unstable/Unstable/Common provider memcached args