Commit Graph

32 Commits

Author SHA1 Message Date
Thomas Schoebel-Theuer 37f738bb5c aio: workaround standard Unix filehandles 2017-05-14 16:57:01 +02:00
Thomas Schoebel-Theuer f654129e94 compat: disable aio when necessary 2017-05-04 09:16:17 +02:00
Thomas Schoebel-Theuer 1f11a21f53 aio: decrease context table 2017-02-09 10:13:31 +01:00
Thomas Schoebel-Theuer d6e5b979ac aio: adapt to changes in get_unused_fd()
Only relevant for the out-of-tree version.

The AIO stuff needs to be re-implemented anyway.
2016-08-25 15:39:06 +02:00
Thomas Schoebel-Theuer 634499d3d2 all: testing of hangs 2016-08-09 09:37:09 +02:00
Thomas Schoebel-Theuer 4d31d09534 all: remove CONFIG_MARS_BIGMODULE 2016-03-03 09:33:34 +01:00
Thomas Schoebel-Theuer c6235c71d5 aio: fix race on shutdown 2015-07-15 10:38:49 +02:00
Thomas Schoebel-Theuer 7d66938666 aio: fix portability to changed kernels / kthread implementation
In the long term, mars_aio will be replaced anyway because it
uses userspace concepts like ioctx.

Don't use the internal kthread_stop_nowait() anymore.
It is too cumbersome to catch up with upstream development.
2015-03-23 13:48:10 +01:00
Thomas Schoebel-Theuer 77714f374e aio: safeguard ioctx 2015-03-23 13:48:10 +01:00
Thomas Schoebel-Theuer c35065fe97 infra: report global IO hangs 2015-02-27 11:32:57 +01:00
Thomas Schoebel-Theuer 5d81381664 all: disallow sync IO during emergency mode 2015-02-11 15:20:26 +01:00
Thomas Schoebel-Theuer aa09d7df30 all: clarify license GPLv2+ 2014-11-25 18:09:17 +01:00
Thomas Schoebel-Theuer 1439d30ffb all: port to newer kernels (up to 3.15) 2014-06-18 12:10:55 +02:00
Thomas Schoebel-Theuer 7aebfdf6bb all: remove __exit annotation 2014-04-24 18:08:31 +02:00
Thomas Schoebel-Theuer a35585325d aio: fix dirty_stage 2014-04-20 07:35:29 +02:00
Thomas Schoebel-Theuer 2f4696a9cc all: fix logfile size propagation 2014-03-31 06:59:09 +02:00
Thomas Schoebel-Theuer 8d0ce5c9bd aio: fix races in EOF computation 2014-03-26 11:43:05 +01:00
Thomas Schoebel-Theuer f45c3fbdd3 aio: use aio_sync_mode=2 by default 2014-03-19 11:30:22 +01:00
Thomas Schoebel-Theuer d70a415b9a aio: fix dirty_head completion 2013-07-10 09:53:59 +02:00
Thomas Schoebel-Theuer 5103e7b46c aio: increase robustness of file descriptors 2013-07-10 07:16:19 +02:00
Thomas Schoebel-Theuer c9bb358239 aio: improve debugging 2013-07-10 07:16:19 +02:00
Thomas Schoebel-Theuer 62e2f5944b aio: finally fix race on dirty area at the end 2013-07-04 07:21:01 +02:00
Thomas Schoebel-Theuer 83b75845c3 aio: remove obsolete clever_sync 2013-07-04 07:21:01 +02:00
Thomas Schoebel-Theuer f3613177a2 aio: prefer fdatasync() over filemap_write_and_wait_range() 2013-07-04 07:21:00 +02:00
Thomas Schoebel-Theuer 81ca278291 aio: fix race on file size
The old code used mf->mf_max for correcting the file size, but that
was wrong for multiple writes in flight.

A really correct solution would have to remember all in-flight writes
and compute their minimum IO position. Since that would be too
costly, we just use the old size before any writes have started.

This might be too conservative for extremely high load patterns
(possible starvation problem). For now, take this and check whether
we really need higher effort.
2013-06-20 15:08:28 +02:00
Thomas Schoebel-Theuer a1caef264c aio: avoid cluttering the log messages 2013-05-13 12:50:29 +02:00
Thomas Schoebel-Theuer 5a5ea9bc52 infra: initialize IO transfer metadata correctly 2013-04-16 10:42:16 +02:00
Thomas Schoebel-Theuer 27fd43cb31 infra: remove obsolete black interface
The backing file should not be exposed from the brick blackbox.
2013-04-16 10:42:16 +02:00
Thomas Schoebel-Theuer 814b92ba19 aio: fix race on file length (workaround)
It appears that concurrent reads and writes on AIO seem to
result in inconsistent reads in some very rare cases, due to
races. Sometimes, the inode claims that the file has been already
appended by a write operation, but the data has not actually hit
the page cache, such that a concurrent read gets NULL blocks.

This is a workaround by "misusing" the mapfree infrastructure.
It depends on uniqueness of file names, which is not the right thing
to do.

Best fix would be in the kernel.
2013-04-16 10:42:16 +02:00
Thomas Schoebel-Theuer fa48bb94d0 infra: add tracing of max region to mapfree 2013-04-16 10:04:43 +02:00
Thomas Schoebel-Theuer 5fc2fa0adb aio: fix comm info of event threads 2013-04-15 18:37:12 +02:00
Thomas Schoebel-Theuer c58417d271 all: move kernel source into separate directory 2013-04-08 17:01:37 +02:00