From owner-freebsd-arm@FreeBSD.ORG Fri Oct 23 13:31:02 2009 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 637EE106566C for ; Fri, 23 Oct 2009 13:31:02 +0000 (UTC) (envelope-from ray@ddteam.net) Received: from mail-bw0-f213.google.com (mail-bw0-f213.google.com [209.85.218.213]) by mx1.freebsd.org (Postfix) with ESMTP id E2AEF8FC12 for ; Fri, 23 Oct 2009 13:31:01 +0000 (UTC) Received: by bwz5 with SMTP id 5so911591bwz.3 for ; Fri, 23 Oct 2009 06:30:58 -0700 (PDT) Received: by 10.204.3.19 with SMTP id 19mr10829602bkl.151.1256302711425; Fri, 23 Oct 2009 05:58:31 -0700 (PDT) Received: from terran.mk.farlep.net (i168-101-19-89.vpdn.way.kv.chereda.net [89.19.101.168]) by mx.google.com with ESMTPS id g28sm2956586fkg.45.2009.10.23.05.58.28 (version=SSLv3 cipher=RC4-MD5); Fri, 23 Oct 2009 05:58:29 -0700 (PDT) Sender: Alex RAY Date: Fri, 23 Oct 2009 15:58:25 +0300 From: Alexandr Rybalko To: Mark Tinguely , freebsd-arm@freebsd.org Message-Id: <20091023155825.381728f4.ray@dlink.ua> In-Reply-To: <200910071636.n97GaF11095976@casselton.net> References: <20091007114612.00408f53.ray@dlink.ua> <200910071636.n97GaF11095976@casselton.net> Organization: D-Link X-Mailer: Sylpheed 2.7.1 (GTK+ 2.16.6; i386-portbld-freebsd8.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: Subject: Re: [ARM+NFS] panic while copying across NFS X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Oct 2009 13:31:02 -0000 Hi Mark! With your patch works fine. # dd if=/swap.file of=/mnt/swap.file bs=1M 1024+0 records in 1024+0 records out 1073741824 bytes transferred in 231.294150 secs (4642322 bytes/sec) But still slow. Maybe someone know why slow? (Marvell 88F5182 rev A2) On Wed, 7 Oct 2009 11:36:15 -0500 (CDT) Mark Tinguely wrote: >> >> (CC -arm and -current removed) >> >> Have you tried to remove the dangling allocations? I can't say that this >> will change anything, I would just feel better to eliminate them. >> >> ---- >> >> Revisions 181296 and 195779 added the cache fixes. >> >> Below are a couple more. We should remove the dangling allocations so >> they do not un-necessarily turn off the cache in the future. >> >> ---- >> >> Index: arm/arm/vm_machdep.c >> =================================================================== >> --- arm/arm/vm_machdep.c (revision 196359) >> +++ arm/arm/vm_machdep.c (working copy) >> @@ -172,6 +172,9 @@ sf_buf_free(struct sf_buf *sf) >> if (sf->ref_count == 0) { >> TAILQ_INSERT_TAIL(&sf_buf_freelist, sf, free_entry); >> nsfbufsused--; >> + pmap_kremove(sf->kva); >> + sf->m = NULL; >> + LIST_REMOVE(sf, list_entry); >> if (sf_buf_alloc_want > 0) >> wakeup_one(&sf_buf_freelist); >> } >> @@ -452,9 +455,12 @@ arm_unmap_nocache(void *addr, vm_size_t size) >> >> size = round_page(size); >> i = (raddr - arm_nocache_startaddr) / (PAGE_SIZE); >> - for (; size > 0; size -= PAGE_SIZE, i++) >> + for (; size > 0; size -= PAGE_SIZE, i++) { >> arm_nocache_allocated[i / BITS_PER_INT] &= ~(1 << (i % >> BITS_PER_INT)); >> + pmap_kremove(raddr); >> + raddr += PAGE_SIZE; >> + } >> } >> >> #ifdef ARM_USE_SMALL_ALLOC -- Alexandr Rybalko