Date: Tue, 26 May 2009 21:26:36 +0200 (CEST) From: Wojciech Puchar <wojtek@wojtek.tensor.gdynia.pl> To: Gary Gatten <Ggatten@waddell.com> Cc: freebsd-questions@freebsd.org Subject: RE: FreeBSD & Software RAID Message-ID: <alpine.BSF.2.00.0905262121230.47364@wojtek.tensor.gdynia.pl> In-Reply-To: <70C0964126D66F458E688618E1CD008A0793ED96@WADPEXV0.waddell.com> References: <4A1AA3DC.5020300@network-i.net><4A1C3725.8040509@infracaninophile.co.uk><70C0964126D66F458E688618E1CD008A0793ED94@WADPEXV0.waddell.com> <200905261400.22053.kirk@strauser.com> <70C0964126D66F458E688618E1CD008A0793ED96@WADPEXV0.waddell.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> ZFS is thoroughly 64-bit and uses 64-bit math pervasively. That means > you > have to emulate all those operations with 2 32-bit values, and on the > register-starved x86 platform you end up with absolutely horrible > performance. no this difference isn't that great. it doesn't use much less CPU on the same processor using i386 and amd64 kernels - i checked it. no precise measurements but there are no more than 20% performance difference - comparable to most programs used in i386 and amd64 mode. so no "horrible performance" on i386, or if you prefer - always horrible performance no matter what CPU mode. while x86 architecture doesn't have much registers EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP 8 total (+EIP) it doesn't affect programs that much, as all modern x86 processors perform memory-operand instructions single cycle (or more than one of them). anyway extra 8 registers and PC-relative addresses are very useful. this roughly 20% performance difference is because of this. if you mean gain on 64-bit registers when calculating block checksums in ZFS - it's for sure memory-bandwidth and latency limited, not CPU power.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.0905262121230.47364>