Date: Wed, 28 Feb 2001 08:57:31 -0500 (EST) From: Peter Dufault <dufault@hda.hda.com> To: Anton Berezin <tobez@tobez.org> Cc: hackers@FreeBSD.ORG Subject: Re: how to actually find out whether data hit the disk? Message-ID: <200102281357.f1SDvVW27830@hda.hda.com> In-Reply-To: <20010228140749.B29400@heechee.tobez.org> from Anton Berezin at "Feb 28, 2001 02:07:49 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
> I am doing the following, on the partition with softupdates turned on: > > 1. fd = open("a file", O_CREAT) > 2. mmap(fd) > 3. sequencial write to mmapped region > 4. some other processing > 5. munmap > 6. unlink > 7. close > > Since this is a supposedly high-perfomance application, I am interested > that data do NOT hit the disk. I understand that softupdates do a good > job at that. The time taken by step 4 is usually sub-second, but > sometimes it can take longer (network delays etc.). The question is - > is it possible to actually find out whether data hit the disk or not for > a particular run of 1-7? Answer to your question: Do an msync with MS_SYNC someplace. Also, use MAP_NOSYNC in mmap until 4.3 when Matt Dillon plans to make that the default behavior. But: When does the data need to "hit the disk", given that you're unlinking the file in step 6? If I read the posix spec correctly it may never need to hit the disk. Consider a set of unrelated processes whacking a shared memory file. Set it up so the first one creates it, a bunch attach, and a final one attaches and unlinks it: process 1: fd = open("foo", O_CREAT|O_RDWR); mmap(fd, MAP_NOSYNC|MAP_SHARED); Write to mapped region process 2: fd = open("foo", O_RDWR); mmap(fd, MAP_NOSYNC|MAP_SHARED); process 3: fd = open("foo", O_RDWR); mmap(fd, MAP_NOSYNC|MAP_SHARED); ... process N: fd = open("foo", O_RDWR) mmap(fd, MAP_NOSYNC|MAP_SHARED); unlink("foo"); Everyone now happily does what they want and then all exit and no one ever does an msync(). Then you never need to actually transfer any data to disk. I'm not sure what actually happens now. Peter -- Peter Dufault (dufault@hda.com) Realtime development, Machine control, HD Associates, Inc. Fail-Safe systems, Agency approval To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200102281357.f1SDvVW27830>