On Thu, Mar 02, 2006 at 07:02:38PM -0500, Andrew Gallatin wrote:
> 
> William D. Hathaway writes:
>  > I would have thought this would be the preferred forum for your question, 
> but if nobody is biting you could also try the networking discussion forum 
> at: http://www.opensolaris.org/jive/forum.jspa?forumID=3
>  > 
>  > I think if you added some details about what you have tried and are seeing 
> you are more likely to get feedback.
> 
> Thanks...  I actually got all the feedback I needed privately.
> The basic problem was that a single "cpu" in an ontario isn't fast
> enough to sustain the packet rates required for 10GbE, even using
> jumbo frames (~135Kpps).  
> 
> I do have one outstanding question:  When using dtrace to profile
> a problem like this, I was using the following dtrace script:
> 
> #!/usr/sbin/dtrace -s
> profile:::profile-997
> {
>         @a[stack(20)]=count();
> }
> 
> END
> {
>         trunc(@a, 20);
>         printa(@a);
> }
> 
> 
> It seem to sort of "randomly" pick a CPU to run on:
> CPU     ID                    FUNCTION:NAME
>  27      2                             :END 
> 
>               unix`disp_getwork+0x88
>               unix`idle+0xd4
>               unix`thread_start+0x4
> <...>
> 
> Is there a way to bind this to a CPU so I can watch
> the CPU that my ithread is running on?

You get the data from all CPUs;  which CPU happens to run the END probe
doesn't really matter.  If you only want *data* from one CPU, you should
do:

profile:::profile-997
/cpu == 10/
{
/* rest of the script is the same */

- jonathan

-- 
Jonathan Adams, Solaris Kernel Development
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to