For our application, we have 1 process capturing images from a frame-grabber and dumping them to a file in a memory file system. It sends a UDP message to another process that reads the images from this file and writes them to disk in a database. The first process has to guarantee that after it's done writing that image to the memory file system, that it is actually there for the second process to read. The problem is slightly more complicated, as we have systems out in the field running 1.5.1 which we still need to support. I've tried opening the file with O_SYNC and not doing the fsync(). On 1.5.1, this has increased the write() time slightly, which was expected, but the overall processor utilization hasn't changed much. On 1.6.1, this has the same impact as just removing the fsync() - which I expected because of the MNT_SYNCHRONOUS flag in the mfs mount in 1.6.1. So far, I haven't had any problems with this solution. Will this solution guarantee that whatever the first process writes is there for the second process to read? ----- Original Message ----- From: "Chuck Silvers" <chuq@chuq.com> To: "Daniel Brewer" <danielb@cat.co.za> Cc: <tech-kern@netbsd.org> Sent: Sunday, July 06, 2003 6:00 PM Subject: Re: fsync performance hit on 1.6.1noticed an inexplicably high usage on 161. After digging deeper with gprof, I found that an fsync on 161 takes significantly longer than on 151. Our software writes captured images into a ring buffer in a memory file-system, so other servers can retrieve them. Could someone explain the why fsync on 1.6.1 is so significantly slower than on 1.5.1? Is there a work-around? Or perhaps a completely different way of doing this? Celeron) both have the same motherboard, have 128MB ram and are both running Western Digital 20Gig drives. Running the 161 box on a 2GHz celeron with 256MB ram gives comparable results to the 1.2Ghz Celeron with 128MB ram. WritePostEventDisk(int, int, int, int) WritePostEventDisk(int, int, int, int)
| Linus Torvalds | Linux 2.6.27 |
| Linus Torvalds | Linux 2.6.27-rc8 |
| Tejun Heo | [PATCHSET] FUSE: extend FUSE to support more operations |
| James Bottomley | Re: Integration of SCST in the mainstream Linux kernel |
git: | |
| Ken Pratt | pack operation is thrashing my server |
| Jakub Narebski | Re: VCS comparison table |
| H. Peter Anvin | Re: git versus CVS (versus bk) |
| Marco Costalba | [PATCH 11/11] Convert sha1_file.c to use decompress helpers |
| Richard Stallman | Real men don't attack straw men |
| Marcos Laufer | dmesg IBM x3650 OpenBSD 4.3 |
| Brian A. Seklecki | Re: GRE over IPsec |
| sonjaya | openvpn on openbsd 4.1 |
| Hugh Dickins | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Gilles Chanteperdrix | [PATCH] cs89x0: add support for i.MX31ADS ARM board |
| Denys Fedoryshchenko | thousands of classes, e1000 TX unit hang |
| Francois Romieu | Re: 8169 Intermittent ifup Failure Issue With RTL8102E Chipset in Intel's New D945... |
| Treason Uncloaked | 32 minutes ago | Linux kernel |
| Shared swap partition | 11 hours ago | Linux general |
| high memory | 2 days ago | Linux kernel |
| semaphore access speed | 2 days ago | Applications and Utilities |
| the kernel how to power off the machine | 2 days ago | Linux kernel |
| Easter Eggs in windows XP | 2 days ago | Windows |
| Root password | 2 days ago | Linux general |
| Where/when DNOTIFY is used? | 2 days ago | Linux kernel |
| How to convert Linux Kernel built-in module into a loadable module | 2 days ago | Linux kernel |
| Linux 2.6.24 and I/O schedulers | 2 days ago | Linux kernel |
