I noticed that gettimeofday in RHEL4.6 guests is taking much longer than
with RHEL3.8 guests. I wrote a simple program (see below) to call
gettimeofday in a loop 1,000,000 times and then used time to measure how
long it took.


For the RHEL3.8 guest:
time -p ./timeofday_bench
real 0.99
user 0.12
sys 0.24

For the RHEL4.6 guest with the default clock source (pmtmr):
time -p ./timeofday_bench
real 15.65
user 0.18
sys 15.46

and RHEL4.6 guest with PIT as the clock source (clock=pit kernel parameter):
time -p ./timeofday_bench
real 13.67
user 0.21
sys 13.45

So, basically gettimeofday() takes about 50 times as long on a RHEL4 guest.

Host is a DL380G5, 2 dual-core Xeon 5140 processors, 4 GB of RAM. It's
running kvm.git tree as of 11/18/08 with kvm-75 userspace. Guest in both
RHEL3 and RHEL4 cases has 4 vcpus, 3.5GB of RAM.

david

----------

timeofday_bench.c:

#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
        int rc = 0, n;
        struct timeval tv;
        int iter = 1000000;  /* number of times to call gettimeofday */

        if (argc > 1)
                iter = atoi(argv[1]);

        if (iter == 0) {
                fprintf(stderr, "invalid number of iterations\n");
                return 1;
        }

        printf("starting.... ");
        for (n = 0; n < iter; ++n) {
                if (gettimeofday(&tv, NULL) != 0) {
                        fprintf(stderr, "\ngettimeofday failed\n");
                        rc = 1;
                        break;
                }
        }

        if (!rc)
                printf("done\n");

        return rc;
}
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to