From owner-svn-src-stable@FreeBSD.ORG Mon Apr 5 14:59:39 2010 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5D1B106566C; Mon, 5 Apr 2010 14:59:39 +0000 (UTC) (envelope-from Andre.Albsmeier@siemens.com) Received: from david.siemens.de (david.siemens.de [192.35.17.14]) by mx1.freebsd.org (Postfix) with ESMTP id 417FE8FC0A; Mon, 5 Apr 2010 14:59:39 +0000 (UTC) Received: from mail3.siemens.de (localhost [127.0.0.1]) by david.siemens.de (8.12.11.20060308/8.12.11) with ESMTP id o35Exbf3026500; Mon, 5 Apr 2010 16:59:37 +0200 Received: from curry.mchp.siemens.de (curry.mchp.siemens.de [139.25.40.130]) by mail3.siemens.de (8.12.11.20060308/8.12.11) with ESMTP id o35ExbUL001367; Mon, 5 Apr 2010 16:59:37 +0200 Received: (from localhost) by curry.mchp.siemens.de (8.14.4/8.14.4) id o35Exb0p035261; Date: Mon, 5 Apr 2010 16:59:37 +0200 From: Andre Albsmeier To: Pyun YongHyeon Message-ID: <20100405145937.GA78871@curry.mchp.siemens.de> References: <201003241721.o2OHL5K9063538@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201003241721.o2OHL5K9063538@svn.freebsd.org> X-Echelon: X-Advice: Drop that crappy M$-Outlook, I'm tired of your viruses! User-Agent: Mutt/1.5.20 (2009-06-14) Cc: "svn-src-stable@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , "svn-src-stable-7@freebsd.org" , Andre.Albsmeier@siemens.com Subject: Re: svn commit: r205614 - stable/7/sys/dev/msk X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Apr 2010 14:59:39 -0000 On Wed, 24-Mar-2010 at 18:21:05 +0100, Pyun YongHyeon wrote: > Author: yongari > Date: Wed Mar 24 17:21:05 2010 > New Revision: 205614 > URL: http://svn.freebsd.org/changeset/base/205614 > > Log: > MFC r204545: > Remove taskqueue based interrupt handling. After r204541 msk(4) > does not generate excessive interrupts any more so we don't need > to have two copies of interrupt handler. > While I'm here remove two STAT_PUT_IDX register accesses in LE > status event handler. After r204539 msk(4) always sync status LEs > so there is no need to resort to reading STAT_PUT_IDX register to > know the end of status LE processing. Just trust status LE's > ownership bit. This ruined the performance on my system heavily. I noticed it when unpacking a local tar archive onto an NFS-mounted location on an em(4)-based box. This archive is about 50MB of size with a bit over 5600 files so files have an average size of 9 kB. I also noticed the slowdown when doing rdist-based updates (again lots of small files) onto the other box. Just pumping bytes over the network shows no problems -- I can transmit 100-105 MB/s and receive 95-100 MB/s when talking to this em(4)-based box without problem (and as it was before). When copying a few big files (several GBs of size) over NFS I get something between 70 and 90 MB/s which is the same as what I had got before. If have made some tests to track down when the issues began. Problems started with rev. 1.18.2.37 of if_msk.c but could be alleviated by setting dev.mskc.0.int_holdoff to 1 or 0. Things really got problematic with rev. 1.18.2.38 -- adjusting dev.mskc.0.int_holdoff helped a lot but we are far from what we had with 1.18.2.36 or earlier. I did 5 rounds of testing, each with the same set of if_msk.c revisions and values for int_holdoff (where appropriate) just to check reproducibility: if_msk.c rev. round1 round2 round3 round4 round5 -------------------------------------------------------- 1.18.2.34 17,115 18,408 17,977 16,412 19,170 1.18.2.35 18,414 17,863 17,000 18,428 18,093 1.18.2.36 19,631 18,167 18,105 18,401 17,995 1.18.2.37 22,707 24,830 24,322 23,613 22,498 int_holdoff=10 19,259 19,870 19,355 18,725 19,273 int_holdoff=1 18,464 18,218 17,862 16,701 17,798 int_holdoff=0 19,423 18,507 19,505 20,714 20,460 1.18.2.38 57,169 53,394 58,721 not done int_holdoff=10 30,266 33,493 33,240 33,247 30,470 int_holdoff=1 27,013 28,777 28,047 25,858 27,615 int_holdoff=0 40,284 33,040 33,726 36,834 35,235 All this is on FreeBSD-7.3-STABLE CPU: Intel(R) Core(TM)2 Quad CPU Q9650 @ 3.00GHz (3001.18-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x1067a Family = 6 Model = 17 Stepping = 10 dev.mskc.0.%desc: Marvell Yukon 88E8053 Gigabit Ethernet dev.msk.0.%desc: Marvell Technology Group Ltd. Yukon EC Id 0xb6 Rev 0x02 hw.msk.msi_disable was set to 1 but didn't change results when commenting it out. Any ideas or things I can try? Thanks, -Andre