Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Feb 2002 13:15:28 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Poul-Henning Kamp <phk@critter.freebsd.dk>, arch@FreeBSD.ORG, jhb@FreeBSD.ORG, peter@wemm.org, jake@locore.ca
Subject:   timing results for gettimeofday() (without any credential fixes)
Message-ID:  <200202162115.g1GLFSe32349@apollo.backplane.com>

next in thread | raw e-mail | index | archive | help
CURRENT 2xCPU SMP BUILD Original gettimeofday() code

    one TG running:	350000/sec
    two TGs running:	55000/sec per TG	(no, that isn't a type-o)

CURRENT 2xCPU SMP BUILD W/Giant removed from gettimeofday()

    one TG running:	375000/sec
    two TGs running:	301000/sec per TG 	(due to ucred Giant issues)

(tests run on 2xCPU 1.2 GHz DELL2550's)

With crhold()/crfree() also fixed I would expect both TG's to operate at at
least 350K calls/sec.

This just goes to show how badly cache mastership changes can mess up 
high-performance procedure calls.  Holding Giant in the original
code dropped performance by a factor of 10, far more then the factor of 2
it ought to have dropped it by.  L1 Cache mastership changes are almost
certainly to blame.

In contrast, the same machine running stable:

STABLE 2xCPU SMP BUILD (note gettimeofday() on stable is marked MPSAFE):
    one TG running:	192402/sec
    two TGs running:	95900/sec

I'm not sure what is going on in stable, because gettimeofday() is in fact
marked MPSAFE.  I think it may be the scheduler doing something weird.

						-Matt


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202162115.g1GLFSe32349>