Date: Fri, 23 Oct 2009 15:58:25 +0300 From: Alexandr Rybalko <ray@dlink.ua> To: Mark Tinguely <tinguely@casselton.net>, freebsd-arm@freebsd.org Subject: Re: [ARM+NFS] panic while copying across NFS Message-ID: <20091023155825.381728f4.ray@dlink.ua> In-Reply-To: <200910071636.n97GaF11095976@casselton.net> References: <20091007114612.00408f53.ray@dlink.ua> <200910071636.n97GaF11095976@casselton.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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 <tinguely@casselton.net> 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 <ray@dlink.ua>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20091023155825.381728f4.ray>