Messages in this thread | | | From | Paul Gortmaker <> | Subject | Re: uaccess.h reimplementation, patch, 2.1.30 | Date | Mon, 31 Mar 1997 20:23:32 +1000 (EST) |
| |
I wrote:
> Avg of 3:24.0 vs. 3:27.4 with a noise of about +/-3 seconds). Still > about 30 sec better than the current access_ok(). Will have to see > if the percent differences are of equal magnitude on 486 boxes, or > if the existence of L1 cache changes things vs. the above 386 #'s.
Ingo wrote:
> I'm curious wether the speed/size+cache locality improvement seen by Paul > Gortmaker stands for this implementation too.
Okay, as soon as I saw Linus mention the broken WP support, I realized why defining access_ok() to 1 was such a gain on i386. Since i386 requires the check to be done in software due to the broken write protect issue, of course access_ok() on i386 will be much more expensive (in both code size and speed). On i486 or better, the speed difference is next to nothing as seen below. There is still a size reduction win (20kB) though. Test is the same 270 page LaTeX doc, only this time run on an i486-66 box (but with the same NFS server). As before, I've discarded the timing data from the first run after a reboot for obvious reasons.
Paul. ---------------
2.0.29 + DaveM pre-patch ================== Memory: 16228k/17664k available (576k kernel code, 384k reserved, 476k data) (1052kB size) 45.300u 2.870s 0:51.29 93.9% 0+0k 0+0io 114pf+0w 44.450u 2.800s 0:50.76 93.0% 0+0k 0+0io 114pf+0w 44.040u 3.130s 0:49.77 94.7% 0+0k 0+0io 114pf+0w 44.350u 3.120s 0:50.62 93.7% 0+0k 0+0io 114pf+0w
2.1.30 ====== Memory: 16036k/17664k available (652k kernel code, 384k reserved, 592k data) (1244kB size) 39.950u 4.950s 0:48.99 91.6% 0+0k 0+0io 114pf+0w 44.150u 2.950s 0:50.83 92.6% 0+0k 0+0io 114pf+0w 42.990u 3.100s 0:48.69 94.6% 0+0k 0+0io 114pf+0w 43.910u 2.890s 0:50.00 93.6% 0+0k 0+0io 114pf+0w
2.1 + access_ok() #defined as 1. ================================ Memory: 16056k/17664k available (632k kernel code, 384k reserved, 592k data) (1224kB size) 44.560u 2.740s 0:50.70 93.2% 0+0k 0+0io 114pf+0w 44.030u 3.030s 0:49.89 94.3% 0+0k 0+0io 114pf+0w 39.310u 6.360s 0:49.46 92.3% 0+0k 0+0io 114pf+0w 44.000u 2.780s 0:49.88 93.7% 0+0k 0+0io 114pf+0w
2.1 + latest ingo-diff ====================== Memory: 16056k/17664k available (632k kernel code, 384k reserved, 592k data) (1224kB size) 43.400u 2.780s 0:49.33 93.6% 0+0k 0+0io 114pf+0w 43.750u 2.630s 0:49.10 94.4% 0+0k 0+0io 114pf+0w 43.610u 2.620s 0:49.04 94.2% 0+0k 0+0io 114pf+0w 44.030u 2.850s 0:50.16 93.4% 0+0k 0+0io 114pf+0w
| |