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>