> >From my limited understanding, there are 2 kinds of
> speculation
> related failures that are seen:
> Failures due to insufficient number of buffers (no
> speculative buffer
> available) and failures due to using a buffer that is
> busy getting
> discarded/committed (available buffer(s) still busy)
> For the former consider increasing the number of
> buffers with the
> nspec option. For the latter, consider setting the
> CPU cleanrate to
> value beyond the default (101)
> The "Abort due to systemic unresponsiveness"
> indicates heavy load.
> This if addressed will probably not throw the "error
> on enabled probe"
> error assuming data access is happening right.
> 
> When is the speculative buffer created? When is it
> committed? Can the
> paths being speculated be reduced?
> 
> -Shiv
> 
syscall::fork*:entry
{

 self->spec = speculation();
}

syscall::fork*:return
/self->spec/
{

 speculate(self->spec);

}

syscall::fork*:return
/self->spec && errno != 0/
{
        /*
         * If errno is non-zero, we want to commit the speculation.
         */
        commit(self->spec);
        self->spec = 0;
}

syscall::fork*:return
/self->spec && errno == 0/
{
        /*
         * If errno is not set, we discard the speculation.
         */
        discard(self->spec);
        self->spec = 0;
}

As I mentioned we want to capture code path for a fork failre.  Any changes 
needed? I am more interested in knowing why it aborted? Sar o/p tell around 40% 
cpu idle (of-course the sar granularity is less). Thanks for any comments.
-- 
This message posted from opensolaris.org
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to