From owner-freebsd-arch Sat Feb 16 23:29: 7 2002 Delivered-To: freebsd-arch@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id 1460137B400; Sat, 16 Feb 2002 23:29:04 -0800 (PST) Received: (from dillon@localhost) by apollo.backplane.com (8.11.6/8.9.1) id g1H7SV651230; Sat, 16 Feb 2002 23:28:31 -0800 (PST) (envelope-from dillon) Date: Sat, 16 Feb 2002 23:28:31 -0800 (PST) From: Matthew Dillon Message-Id: <200202170728.g1H7SV651230@apollo.backplane.com> To: Julian Elischer Cc: Alfred Perlstein , Poul-Henning Kamp , arch@FreeBSD.ORG, jhb@FreeBSD.ORG, peter@wemm.org, jake@locore.ca Subject: Re: gettimeofday() and crhold()/crfree() (was Re: gettimeofday() References: <200202170654.WAA44493@InterJet.elischer.org> Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG :> I would like to see the invariants sections simply removed. :> :> I like to run with INVARIANTS set, even on production systems, because :> I like the extra assertions it makes. : :I agree but jhb wants to have it that way... He wants to be able to catch :anyone accessing the ucred of a thread that is in user space. I :personally think we should just remove the code. Another problem with this is that most -current developers are (I assume) running with INVARIANTS (because they'd be fools not to). This means that the code you just comitted is not going to be exercised at all due to the crfree()'s. --- In anycase, your code plus #if 0'ing the INVARIANTS and the KASSERT's that were checking td_ucred == NULL results in a significant improvement in syscall performance. I am now getting: CURRENT 2xCPU SMP BUILD W/Julian's code and ucred invariants blasted to bits and Matt's mutex pool code and removal of Giant for gettimeofday(). one TG running: 462478/sec two TGs running: 361962/sec per TG prior tests: 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) CURRENT, gettimeofday() SMP patch, Matt's original ucred patch: 1 TG running: 396365 calls/sec 2 TGs running: 322000 calls/sec each. -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message