diff options
-rw-r--r-- | .SRCINFO | 18 | ||||
-rw-r--r-- | 0002-blk-mq-fix-corruption-with-direct-issue.patch | 60 | ||||
-rw-r--r-- | PKGBUILD | 16 |
3 files changed, 15 insertions, 79 deletions
@@ -1,6 +1,6 @@ pkgbase = linux-rt-bfq - pkgver = 4.19.5.4 - pkgrel = 10 + pkgver = 4.19.8.6 + pkgrel = 1 url = https://github.com/Algodev-github/bfq-mq/ arch = x86_64 license = GPL2 @@ -11,10 +11,10 @@ pkgbase = linux-rt-bfq makedepends = python-sphinx makedepends = graphviz options = !strip - source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.19.5.tar.xz - source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.19.5.tar.sign - source = http://www.kernel.org/pub/linux/kernel/projects/rt/4.19/patch-4.19.5-rt4.patch.xz - source = http://www.kernel.org/pub/linux/kernel/projects/rt/4.19/patch-4.19.5-rt4.patch.sign + source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.19.8.tar.xz + source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.19.8.tar.sign + source = http://www.kernel.org/pub/linux/kernel/projects/rt/4.19/patch-4.19.8-rt6.patch.xz + source = http://www.kernel.org/pub/linux/kernel/projects/rt/4.19/patch-4.19.8-rt6.patch.sign source = https://gitlab.com/sirlucjan/kernel-patches/raw/master/4.19/bfq-sq-mq/4.19-bfq-sq-mq-v9r1-2K181212-rc1.patch source = https://gitlab.com/sirlucjan/kernel-patches/raw/master/4.19/0100-Check-presence-on-tree-of-every-entity-after-every-a.patch source = https://raw.githubusercontent.com/graysky2/kernel_gcc_patch/master/enable_additional_cpu_optimizations_for_gcc_v8.1+_kernel_v4.13+.patch @@ -25,15 +25,14 @@ pkgbase = linux-rt-bfq source = 99-linux.hook source = linux.preset source = 0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch - source = 0002-blk-mq-fix-corruption-with-direct-issue.patch validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886 validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E validpgpkeys = 64254695FFF0AA4466CC19E67B96E8162A8CF5D1 validpgpkeys = 5ED9A48FC54C0A22D1D0804CEBC26CDB5A56DE73 validpgpkeys = E644E2F1D45FA0B2EAA02F33109F098506FF0B14 - sha512sums = ee460800a071aeae966078d3e7dc525e1e8e9cbb406fe878438c55da4ea42d10f50c0ebfcf3ee4c792f3cc984ee8d8d3acdb8ca6bc11536fa6a4391de58643fb + sha512sums = c863dbfcba413a1d9ee396c20d40ede6c5f07f168f74ef604c261b11797226dced1912270203b2a2d3be000284f6cca72df6ed52675e260e8289a87b0d65f282 sha512sums = SKIP - sha512sums = 648728f4088ca3ccb4f297500cba4c96d48dc73667df67dc08aa683fa3e6d8f300868754e88582894210e7d98d06f878c4bb149f31859aa3e6aa441ce9508cb9 + sha512sums = 368818426719676e0e1fd39d3b6d3927565f94909a1d38392c804ebebcd88b867faa6397bfdaf4dafd44d6747909e60f51d1b088544fb1205a75066b51835514 sha512sums = SKIP sha512sums = a014e72cadd0ceb52f10ceee6902a1732450c6b670f33cec643a9b3684d92d3ad311e5b9b0ac71b3ee65b52a4d4538fff1ed5e003f3e3979e0faa2679b5edb59 sha512sums = 0f96fa9ad784709973b32eea82075ceb3e9dc2482df6441a4607612806f069254e63508b1b562279622394e4a1fbebef1b87af8401c0b1210d5d0de9954245c8 @@ -45,7 +44,6 @@ pkgbase = linux-rt-bfq sha512sums = 8742e2eed421e2f29850e18616f435536c12036ff793f5682a3a8c980cf5dbfc88d17fd9539c87de15d9e4663dc3190f964f18a4722940465437927b6052abbf sha512sums = 2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf sha512sums = 560920b4ebf8d7b753f058a41da62d20fde1e4b42a42e73be11461d3fe25b59bc36250a66d9c1c6e3c499426b237427af5ba7586daa7c549d2cf7bb7087932a1 - sha512sums = aef8da49ccc4639f43c2a16d67c207417e26a1ee40d7a98aaa397038ef4a288b2361b951dcb2e1813df287041c482ab0e497fa161edafdc46446ab45311104dc pkgname = linux-rt-bfq pkgdesc = The Linux-rt-bfq kernel and modules with the RT patch and the BFQ-MQ scheduler. diff --git a/0002-blk-mq-fix-corruption-with-direct-issue.patch b/0002-blk-mq-fix-corruption-with-direct-issue.patch deleted file mode 100644 index 5ca4828bc1f9..000000000000 --- a/0002-blk-mq-fix-corruption-with-direct-issue.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 144c54b5c08cc1afc060281a79a9892e898337c6 Mon Sep 17 00:00:00 2001 -From: Jens Axboe <axboe@kernel.dk> -Date: Tue, 4 Dec 2018 15:47:46 -0700 -Subject: [PATCH 2/2] blk-mq: fix corruption with direct issue - -If we attempt a direct issue to a SCSI device, and it returns BUSY, then -we queue the request up normally. However, the SCSI layer may have -already setup SG tables etc for this particular command. If we later -merge with this request, then the old tables are no longer valid. Once -we issue the IO, we only read/write the original part of the request, -not the new state of it. - -This causes data corruption, and is most often noticed with the file -system complaining about the just read data being invalid: - -[ 235.934465] EXT4-fs error (device sda1): ext4_iget:4831: inode #7142: comm dpkg-query: bad extra_isize 24937 (inode size 256) - -because most of it is garbage... - -This doesn't happen from the normal issue path, as we will simply defer -the request to the hardware queue dispatch list if we fail. Once it's on -the dispatch list, we never merge with it. - -Fix this from the direct issue path by flagging the request as -REQ_NOMERGE so we don't change the size of it before issue. - -See also: - https://bugzilla.kernel.org/show_bug.cgi?id=201685 - -Fixes: 6ce3dd6eec1 ("blk-mq: issue directly if hw queue isn't busy in case of 'none'") -Signed-off-by: Jens Axboe <axboe@kernel.dk> -Tested-by: Guenter Roeck <linux@roeck-us.net> -Reviewed-by: Christoph Hellwig <hch@lst.de> ---- - block/blk-mq.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/block/blk-mq.c b/block/blk-mq.c -index e3c39ea8e17b..66d64a13c50a 100644 ---- a/block/blk-mq.c -+++ b/block/blk-mq.c -@@ -1698,6 +1698,15 @@ static blk_status_t __blk_mq_issue_directly(struct blk_mq_hw_ctx *hctx, - break; - case BLK_STS_RESOURCE: - case BLK_STS_DEV_RESOURCE: -+ /* -+ * If direct dispatch fails, we cannot allow any merging on -+ * this IO. Drivers (like SCSI) may have set up permanent state -+ * for this request, like SG tables and mappings, and if we -+ * merge to it later on then we'll still only do IO to the -+ * original part. -+ */ -+ rq->cmd_flags |= REQ_NOMERGE; -+ - blk_mq_update_dispatch_busy(hctx, true); - __blk_mq_requeue_request(rq); - break; --- -2.20.0.rc2.7.g965798d1f2 - @@ -52,13 +52,13 @@ _use_current= pkgbase=linux-rt-bfq # pkgname=('linux-rt-bfq' 'linux-rt-bfq-headers' 'linux-rt-bfq-docs') _major=4.19 -_minor=5 -_rtver=4 +_minor=8 +_rtver=6 pkgver=${_major}.${_minor}.${_rtver} _pkgver=${_major}.${_minor} _srcname=linux-${_pkgver} _rtpatchver=rt${_rtver} -pkgrel=10 +pkgrel=1 arch=('x86_64') url="https://github.com/Algodev-github/bfq-mq/" license=('GPL2') @@ -91,8 +91,7 @@ source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz" '99-linux.hook' # standard config files for mkinitcpio ramdisk 'linux.preset' - '0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch' - '0002-blk-mq-fix-corruption-with-direct-issue.patch') + '0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch') _kernelname=${pkgbase#linux} : ${_kernelname:=-rt-bfq} @@ -388,9 +387,9 @@ for _p in "${pkgname[@]}"; do }" done -sha512sums=('ee460800a071aeae966078d3e7dc525e1e8e9cbb406fe878438c55da4ea42d10f50c0ebfcf3ee4c792f3cc984ee8d8d3acdb8ca6bc11536fa6a4391de58643fb' +sha512sums=('c863dbfcba413a1d9ee396c20d40ede6c5f07f168f74ef604c261b11797226dced1912270203b2a2d3be000284f6cca72df6ed52675e260e8289a87b0d65f282' 'SKIP' - '648728f4088ca3ccb4f297500cba4c96d48dc73667df67dc08aa683fa3e6d8f300868754e88582894210e7d98d06f878c4bb149f31859aa3e6aa441ce9508cb9' + '368818426719676e0e1fd39d3b6d3927565f94909a1d38392c804ebebcd88b867faa6397bfdaf4dafd44d6747909e60f51d1b088544fb1205a75066b51835514' 'SKIP' 'a014e72cadd0ceb52f10ceee6902a1732450c6b670f33cec643a9b3684d92d3ad311e5b9b0ac71b3ee65b52a4d4538fff1ed5e003f3e3979e0faa2679b5edb59' '0f96fa9ad784709973b32eea82075ceb3e9dc2482df6441a4607612806f069254e63508b1b562279622394e4a1fbebef1b87af8401c0b1210d5d0de9954245c8' @@ -401,8 +400,7 @@ sha512sums=('ee460800a071aeae966078d3e7dc525e1e8e9cbb406fe878438c55da4ea42d10f50 '2718b58dbbb15063bacb2bde6489e5b3c59afac4c0e0435b97fe720d42c711b6bcba926f67a8687878bd51373c9cf3adb1915a11666d79ccb220bf36e0788ab7' '8742e2eed421e2f29850e18616f435536c12036ff793f5682a3a8c980cf5dbfc88d17fd9539c87de15d9e4663dc3190f964f18a4722940465437927b6052abbf' '2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf' - '560920b4ebf8d7b753f058a41da62d20fde1e4b42a42e73be11461d3fe25b59bc36250a66d9c1c6e3c499426b237427af5ba7586daa7c549d2cf7bb7087932a1' - 'aef8da49ccc4639f43c2a16d67c207417e26a1ee40d7a98aaa397038ef4a288b2361b951dcb2e1813df287041c482ab0e497fa161edafdc46446ab45311104dc') + '560920b4ebf8d7b753f058a41da62d20fde1e4b42a42e73be11461d3fe25b59bc36250a66d9c1c6e3c499426b237427af5ba7586daa7c549d2cf7bb7087932a1') validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds |