On 01/20/2012 12:24 PM, Denys Vlasenko wrote: > This is a patch which uses process_vm_readv() in umoven() and umovestr() > functions if possible, with fallback to old method if process_vm_readv() > returns ENOSYS. > > There is a slight change in API: since I read data in blocks of 256 bytes, > now umovestr() may overwrite data in the buffer past terminating NUL. > One caller used to depend on guarantee that this never happens, but > I just committed a small patch which reworks that place to remove > this assumption. > > I don't have a kernel where process_vm_readv() syscall actually works, > so the patch definitely needs to wait until it can be tested for real.
And now I do have the kernel, and the patch seems to work great. Three runs of "time ./strace -oLOG ls -l /usr/lib >/dev/null" before patch: real 0m0.389s real 0m0.372s real 0m0.343s After patch: real 0m0.257s real 0m0.275s real 0m0.262s -- vda ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 _______________________________________________ Strace-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/strace-devel
