Lines Matching full:dynamic

40  * DTrace Dynamic Tracing Software: Kernel Implementation Interfaces
47 * Please refer to the "Solaris Dynamic Tracing Guide" for more information.
443 * hash, there exists dynamic metadata associated with an aggregation buffer
447 * this, we allocate dynamic aggregation data (hash keys and hash buckets)
578 * DTrace Dynamic Variables
580 * The dynamic variable problem is obviously decomposed into two subproblems:
581 * allocating new dynamic storage, and freeing old dynamic storage. The
585 * dynamic storage. (Or more accurately, all dynamic storage is deallocated
586 * when a snapshot is taken of the aggregation.) As DTrace dynamic variables
587 * allow for both dynamic allocation and dynamic deallocation, the
588 * implementation of dynamic variables is quite a bit more complicated than
591 * We observe that allocating new dynamic storage is tricky only because the
593 * are uniform. We further observe that in D, the size of dynamic variables is
594 * actually _not_ dynamic -- dynamic variable sizes may be determined by static
599 * dynamic load or store, we calculate the dynamically-allocated size plus the
602 * We then divide dynamic memory into two parts: a hash table that is wide
609 * Dynamic objects are allocated by storing a non-zero value to them; they are
610 * deallocated by storing a zero value to them. Dynamic variables are
617 * | allocates dynamic object a[123] | | |
622 * | | | dynamic variable space |
627 * | allocates dynamic object b[567] | | performs load from a[123] |
646 * user of a dynamic variable to explicitly decree when they are done using it.
648 * dynamic variables of non-scalar types are tracked by reference. That is, if
649 * a dynamic variable is, say, a string, and that variable is to be traced to,
653 * that the DIF emulation has returned a reference to a dynamic variable that
658 * if one were to implement (1), DIF emulation code dealing with dynamic
659 * variables could only deal with one dynamic variable at a time (lest deadlock
660 * result). To sum, (1) exports too much subtlety to the users of dynamic
672 * manipulating the dynamic variable -- the dirty list can be atomically
683 * cleaned. Not available, but will be shortly. Dynamic variable
701 * (3) If the dynamic variable space is in the CLEAN state, look for free
705 * the dynamic variable space based on the following:
714 * (4) Based on state of dynamic variable space state, increment appropriate
715 * counter to indicate dynamic drops (if in EMPTY state) vs. dynamic
716 * dirty drops (if in DIRTY state) vs. dynamic rinsing drops (if in
724 * state of the dynamic variable space can be restored to CLEAN.
732 * | allocates dynamic object a[123] | | allocates dynamic object a[123] |
747 * the whole process of looking up (and potentially allocating) the dynamic
755 * | deallocates dynamic object | | deallocates dynamic object |
828 void *dtds_base; /* base of dynamic var. space */
829 size_t dtds_size; /* size of dynamic var. space */
833 dtrace_dstate_state_t dtds_state; /* current dynamic var. state */
862 * is allocated out of the dynamic variable space.
864 * - The dtvs_dynvars member is the dynamic variable state associated with the
865 * variable state. The dynamic variable state (described in "DTrace Dynamic
884 dtrace_dstate_t dtvs_dynvars; /* dynamic variable state */