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
[email protected]