Re: hwpmc granularity and 6.4 network performance



Hi Adrian Chadd!

On Tue, 25 Nov 2008 15:09:19 -0500; Adrian Chadd wrote about 'Re: hwpmc granularity and 6.4 network performance':

* Since you've changed two things - hwpmc _AND_ the kernel version -
you can't easily conclude which one (if any!) has any influence on
Giant showing up in your top output. I suggest recompiling without
hwpmc and seeing if the behaviour changes.

This is not so easy to do at the time when I want :) I will check this
some weeks later, may be.

* The gprof utility expects something resembling "time" for the
sampling data, but pmcstat doesn't record time, it records "events".
The counts you see in gprof are "events", so change "seconds" to
"events" in your reading of the gprof output.

Of course, I know this, but it doesn't change the percentage.

* I don't know if the backported pmc to 6.4 handles stack call graphs
or not. Easy way to check - pmcstat -R sample.out | more ; see if you
just see "sample" lines or "sample" and "callgraph" lines.

No.

* I bet that ipfw_chk is a big enough hint. How big is your ipfw ruleset? :)

It's not so big in terms of rule count and not so big in terms of exact hint,
but it is of course big as a CPU hog :)

router# ipfw show | wc -l
70

Surely, not so much, yes? So I want to see which parts are more CPU-intensive,
to use as a hint when rewriting ruleset.

I've heard about a pmcannotate tool, in -arch@, and I think that it is tool
which does the thing exactly what I want, but that requires patch for pmcstat
which didn't apply on my 6.4, too much was different :(

OK, I can conclude from this that I should optimize my ipfw ruleset, but
that's all. I know from sources that ipfw_chk() is a big function with a
bunch of 'case's in a large 'switch'. I want to know which parts of that
switch are executed more often. It says in listing that granularity is
4 bytes, I assume that it has a sample for each of 4-byte chunks of binary
code, so that it must have such information. My kernel is compiled with:

makeoptions DEBUG=-g

so kgdb does know where are instructions for each line of source code.
How can I obtain this info from profiling? It also would be useful to know
which places do calls to that bcmp() and rn_match().


--
WBR, Vadim Goncharov. ICQ#166852181 mailto:vadim_nuclight@xxxxxxx
[Moderator of RU.ANTI-ECOLOGY][FreeBSD][http://antigreen.org][LJ:/nuclight]

_______________________________________________
freebsd-performance@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "freebsd-performance-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: switch() Statement Question
    ... nested blocks, but it does not follow that you can successfully ... containing another similar switch, and so on down through 126 levels ... source code ...) ... the limits, and then rejecting all other source codes as "too big." ...
    (comp.lang.c)
  • Re: "Did not find leading dereferencer" - new findings to an old puzzle
    ... use Switch would have had the same effect). ... the "leading dereferencer" error disappears and instead I see the ... It definitely does not need to parse the source code of the whole ... unless we also assume a bug in the Perl compiler itself. ...
    (comp.lang.perl.misc)
  • Re: Force Source Code Update
    ... If I switch to the code view the source code is not refreshed until I save ... I need to find a way to force FrontPage to update the source code in the ... You can set a ColorSettings property on this element, but that's not going to affect the ...
    (microsoft.public.frontpage.addins)
  • Re: Worthwhile for LaTeX users to use Lyx?
    ... viewing from editing is highly nonideal for composition. ... then when you get to a certain point, you switch back to the LaTeX text ... location in the source code. ... a beginner, but write long parts of text before checking. ...
    (comp.text.tex)