Kris Kennaway wrote:

> So it is using getpid?  It should be fine on FreeBSD with the previous
> provisos, but you also need to check Linux behaviour and compare on
> identical hardware before you can draw conclusions.

Here's the source of unixbench syscall benchmark:

unsigned long iter;

void report()
{
        fprintf(stderr,"%ld loops\n", iter);
        exit(0);
}

int main(argc, argv)
int     argc;
char    *argv[];
{
        int     duration;

        if (argc != 2) {
                printf("Usage: %s duration\n", argv[0]);
                exit(1);
        }

        duration = atoi(argv[1]);

        iter = 0;
        wake_me(duration, report);

        while (1) {
                close(dup(0));
                getpid();
                getuid();
                umask(022);
                iter++;
        }
        /* NOTREACHED */
}

As I count it, getpid() is one of 5 syscalls made. Of these, getpid()
and getuid() might be cached on Linux in some way, which actually could,
with the difference in CPU speed, cause the difference. I can't check it
on identical hardware.


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to