Subject: Re: Kernel copyin/out optimizations for ARM...
To: None <port-arm@netbsd.org>
From: David Laight <david@l8s.co.uk>
List: port-arm
Date: 03/16/2002 13:06:01
> 
> One idea though .... shouldn't we use `strt' _ONCE_ every page? i.e. either 
> the whole page is OK or the whole page is not .... doing it multiple times 
> is a bit silly....

True - you either need to do it for every access, or once a page.
To do it once a page you need nested loops - more scope for bugs.
(and another 2 registers have to be saved - maybe not... wicked thought)
- I feel a third verion coming along....

Also the code size, and default code path, both start increasing
which will affect overall performance.

It seemed obvious to do check once per copy iteration.
Not that expensive - maybe 1 clock per iteration.

It might be worth optimising the case were the copy doesn't
cross a page boundary....
> 
> > Anyway new file on www.l8s.co.uk then netbsd/bcopyinout.S
> 
> Dunno if i try them soon :) but i've just fixed a nasty ARM 6/7 specific
> problem ... an instruction that couldn't be fixed up in f.e. the late abort 
> handler would _allways_ panic the kernel ... even when the instruction was 
> in userland :( ... appears to have been the case since 1994 when Mark 
> Brinicombe started on it ...
> 
> Cheers,
> Reinoud


	David

-- 
David Laight: david@l8s.co.uk