tag:blogger.com,1999:blog-9963485.post4074749777605602734..comments2024-02-12T12:52:03.999+01:00Comments on Robert Milkowski's blog: Massive msync() speed up on ZFSmilekhttp://www.blogger.com/profile/13649951503953000496noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-9963485.post-74670887859443952792014-07-22T21:30:35.317+02:002014-07-22T21:30:35.317+02:00I have no idea. But it is very easy to check. crea...I have no idea. But it is very easy to check. create two files, one 1000GB in size, the other 10240GB in size, then compile the below program and run it against each file and see what's the timing.<br />In case FreeBSD optimizes for both cases see if timings differ with the size of msynced regions.<br /><br /><br /># mkfile -n 10240g /var/tmp/file1<br /># mkfile -n 1000g /var/tmp/file2<br /><br /># truss -t memcntl -E 2>&1 ./mmap_file_and_msync_it /var/tmp/file1 1000 | tail -1<br />18.2737 memcntl() = 0<br /># truss -t memcntl -E 2>&1 ./mmap_file_and_msync_it /var/tmp/file2 1000 | tail -1<br />0.0001 memcntl() = 0<br /><br /><br />int main(int argc, charg **argv) {<br /> int fd = open(argv[1], O_RDONLY);<br /> size_t size = (size_t)atoll(argv[2])*1024*1024*1024);<br /> p = mmap((caddr_t) 0, size, PROT_READ, MAP_SHARED, fd, (off_t) 0);<br /> msync(p, size, MS_SYNC);<br /> close(fd)<br />}milekhttps://www.blogger.com/profile/13649951503953000496noreply@blogger.comtag:blogger.com,1999:blog-9963485.post-15278162769205868302014-07-22T17:22:25.649+02:002014-07-22T17:22:25.649+02:00Does FreeBSD have such an optimization?Does FreeBSD have such an optimization?Anonymousnoreply@blogger.com