Subject: Re: Faster pipes from FreeBSD
To: Jarommr Dolecek <jdolecek@netbsd.org>
From: Jason R. Fink <jrf@diverge.org>
List: tech-kern
Date: 04/17/2001 21:10:27
Jarommr and all,

I went ahead and implemented these changes on a 
dell latitude CPi-A that is tracking -current
(my last update was on 16Apr).

| I played with changes to use 64KB chunks when transferring data
| for buffers > 64KB. That indeed seem to help much. On my PIII
| machine, the performance drop is now only about 20% instead of 45%
| for 128KB transfer buffer compared with 64KB one.
| The code is currently not quite tuned, so it's possible there
| is still some space for improvement. However, I get slighly better
| performance than before for 64KB transfer buffer case, so at least
| the code doesn't make things worse.

this appeared to be the case on the latitude as well.

| I've put in also minor optimization - the array for list of vmpages
| is allocated only once commonly and re-used as necessary, similarily
| to the kva optimization.  Power-of-two malloc did already pretty
| good work there, so this didn't have any visible effect on any of
| my two test machines. Or perhaps the effect was consumed by
| the new chunk code :)
| 
| I also played with entering the loaned pages via pmap_kenter_pa()/
| pmap_kremove() instead of pmap_enter().  This was quite a lot slower
| that the current way, at least on 386DX (like 70% of version with
| pmap_enter()). My understanding of (U)VM/i386 is too limited to tell
| why.

i saw something similar but i would not say 70%, more like 25%

	jrf@diverge.org

-- 
Jason R. Fink <jrf@diverge.org> http://www.diverge.org/