Hi > > One thing you could also try is to pass MAP_POPULATE to mmap so that the > > page tables are filled in at the time of the mmap, avoiding a lot of > > page faults later. > > > > OK, I will test your idea and report about tomorrow. > but I don't think page fault is major performance impact.
I got more interesting result :) MAP_POPULATE is harmful result at large copy. 1G copy elapse(sec) -------------------------------------------- mmap 71.54 mmap + madvice 69.63 mmap + populate 100.87 mmap + populate + madvice 101.16 more detail: time command output of mmap copy 0.50user 3.59system 1:11.54elapsed 5%CPU (0avgtext+0avgdata 0maxresident)k 2101192inputs+2097160outputs (32776major+491573minor)pagefaults 0swaps time command output of mmap+populate copy 0.53user 5.13system 1:40.87elapsed 5%CPU (0avgtext+0avgdata 0maxresident)k 4200808inputs+2097160outputs (49164major+737340minor)pagefaults 0swaps input blocks increase about x2. in fact, mmap(MAP_POPULATE) read disk to memory and drop it just after, thus read again. of cource, when copy file size is enough small, MAP_POPULATE is effective. 100M copy elapse(sec) -------------------------------------------- mmap 7.38 mmap + madvice 7.29 mmap + populate 7.13 mmap + populate + madvice 6.65 - kosaki -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/