aboutsummaryrefslogtreecommitdiff
path: root/fs/sync.c
Commit message (Collapse)AuthorAgeFilesLines
* fs/sync.c: make sync_file_range(2) use WB_SYNC_NONE writebackJan Kara2018-05-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | sync_file_range(2) is documented to issue writeback only for pages that are not currently being written. After all the system call has been created for userspace to be able to issue background writeout and so waiting for in-flight IO is undesirable there. However commit ee53a891f474 ("mm: do_sync_mapping_range integrity fix") switched do_sync_mapping_range() and thus sync_file_range() to issue writeback in WB_SYNC_ALL mode since do_sync_mapping_range() was used by other code relying on WB_SYNC_ALL semantics. These days do_sync_mapping_range() went away and we can switch sync_file_range(2) back to issuing WB_SYNC_NONE writeback. That should help PostgreSQL avoid large latency spikes when flushing data in the background. Andres measured a 20% increase in transactions per second on an SSD disk. Change-Id: Ib3e8a5e27501165fdd10486792d2a1989a841c9e Signed-off-by: Jan Kara <jack@suse.com> Reported-by: Andres Freund <andres@anarazel.de> Tested-By: Andres Freund <andres@anarazel.de> Cc: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: engstk <eng.stk@sapo.pt>
* fsync: revert to a version with fbsuspend instead of earlysuspendMister Oyster2017-12-231-95/+93
| | | | | This reverts commit fdd3da71eb0fae04ef0e67cd02eab371a26449c6. This reverts commit 384cf00787041088f91a0604dec112317135a369.
* Revert to dynamic sync control v1.5Mister Oyster2017-09-151-93/+95
| | | | | This reverts commit 6e4b043748ce83d6c7ba6dbf9ba50bd857d659d6. This reverts commit 1abef3b2cf1b835192ba2484e42f4a1dbba26807.
* vfs: add support for a lazytime mount optionTheodore Ts'o2017-05-291-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a new mount option which enables a new "lazytime" mode. This mode causes atime, mtime, and ctime updates to only be made to the in-memory version of the inode. The on-disk times will only get updated when (a) if the inode needs to be updated for some non-time related change, (b) if userspace calls fsync(), syncfs() or sync(), or (c) just before an undeleted inode is evicted from memory. This is OK according to POSIX because there are no guarantees after a crash unless userspace explicitly requests via a fsync(2) call. For workloads which feature a large number of random write to a preallocated file, the lazytime mount option significantly reduces writes to the inode table. The repeated 4k writes to a single block will result in undesirable stress on flash devices and SMR disk drives. Even on conventional HDD's, the repeated writes to the inode table block will trigger Adjacent Track Interference (ATI) remediation latencies, which very negatively impact long tail latencies --- which is a very big deal for web serving tiers (for example). Google-Bug-Id: 18297052 Signed-off-by: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* fs: Add dynamic sync controljollaman9992017-05-291-72/+118
| | | | | | | | | | | | | | Adative for jolla-kernel Original by @faux123 The dynamic sync control interface uses Android kernel's unique early suspend / lat resume interface. While screen is on, file sync is disabled when screen is off, a file sync is called to flush all outstanding writes and restore file sync operation as normal. Signed-off-by: Paul Reioux <reioux@gmail.com>
* Revert "Dynamic Fsync Control"Mister Oyster2017-05-291-48/+0
| | | | This reverts commit d2cdb4e1ce3df4e28b0e51807455ddf424ff2e71.
* ANDROID: sched: add a counter to track fsyncJin Qian2017-04-111-0/+1
| | | | | Change-Id: I6c138de5b2332eea70f57e098134d1d141247b3f Signed-off-by: Jin Qian <jinqian@google.com>
* Dynamic Fsync ControlPaul Reioux2016-08-261-0/+48
|
* first commitMeizu OpenSource2016-08-151-0/+375