target: increase the maximum number of buckets
authorHsiangkai Wang <hsiangkai@gmail.com>
Fri, 30 Aug 2013 05:45:42 +0000 (13:45 +0800)
committerSpencer Oliver <spen@spen-soft.co.uk>
Fri, 13 Sep 2013 19:36:49 +0000 (19:36 +0000)
I do not know what is the reasonable number of buckets.
If there are enough buckets, the result will be accurate.

I propose increase the maximum number of buckets to 128K.
If the size of program text section is less than 256KB, every
two bytes will be occupied by one buckets.
(The minimum size of one buckets is 2 bytes in gprof implementation.)

Change-Id: If9147743cefdc36f40f21e6dc73b9b28f28c9e1e
Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com>
Reviewed-on: http://openocd.zylin.com/1608
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/target/target.c

index 1ea1a61668c9d059299e6225778138ba92b2f8c8..ab35d6abe1903663958f39b19e966c0f69cb7ceb 100644 (file)
@@ -3394,7 +3394,9 @@ static void writeGmon(uint32_t *samples, uint32_t sampleNum, const char *filenam
        int addressSpace = max - min;
        assert(addressSpace >= 2);
 
-       static const uint32_t maxBuckets = 16 * 1024; /* maximum buckets. */
+       /* FIXME: What is the reasonable number of buckets?
+        * The profiling result will be more accurate if there are enough buckets. */
+       static const uint32_t maxBuckets = 128 * 1024; /* maximum buckets. */
        uint32_t numBuckets = addressSpace;
        if (numBuckets > maxBuckets)
                numBuckets = maxBuckets;