summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorgraysky2019-05-22 14:09:09 -0400
committergraysky2019-05-22 14:09:35 -0400
commitcfaf8e25534beace50605a50affa8dad4f606929 (patch)
tree5389529159a0e330efb549d339457326b387f7f5
parent00ffff6fd4019ceb171c9dc47595df6c6114637f (diff)
downloadaur-linux-ck.tar.gz
Update to 5.1.4-1
-rw-r--r--.SRCINFO16
-rw-r--r--0002-Revert-dm-eliminate-split_discard_bios-flag-from-DM-.patch187
-rw-r--r--PKGBUILD8
3 files changed, 201 insertions, 10 deletions
diff --git a/.SRCINFO b/.SRCINFO
index cc898f2701c..6fc21079d23 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,5 +1,5 @@
pkgbase = linux-ck
- pkgver = 5.1.3
+ pkgver = 5.1.4
pkgrel = 1
url = https://wiki.archlinux.org/index.php/Linux-ck
arch = x86_64
@@ -9,8 +9,8 @@ pkgbase = linux-ck
makedepends = bc
makedepends = libelf
options = !strip
- source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.1.3.tar.xz
- source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.1.3.tar.sign
+ source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.1.4.tar.xz
+ source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.1.4.tar.sign
source = config
source = 60-linux.hook
source = 90-linux.hook
@@ -18,9 +18,10 @@ pkgbase = linux-ck
source = enable_additional_cpu_optimizations-20180509.tar.gz::https://github.com/graysky2/kernel_gcc_patch/archive/20180509.tar.gz
source = http://ck.kolivas.org/patches/5.0/5.1/5.1-ck1/patch-5.1-ck1.xz
source = 0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
+ source = 0002-Revert-dm-eliminate-split_discard_bios-flag-from-DM-.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
- sha256sums = b0f53e12daf8e710992151333edeb7d7da3d935a6aa3db8360681f7d05a6aaa2
+ sha256sums = 5c6d65faba54652b3ab4cfcb2f3be88d53478a2cd24d0f1cdd9344c7aad1e7f9
sha256sums = SKIP
sha256sums = 7af14b92ef808cb57b4a09156e5cd3a6e32c31fc5eb942ec4b1402426a22cf0e
sha256sums = ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21
@@ -29,6 +30,7 @@ pkgbase = linux-ck
sha256sums = 226e30068ea0fecdb22f337391385701996bfbdba37cdcf0f1dbf55f1080542d
sha256sums = f8d18a34f6b17ec8e5f2a7354383ca627e0fd00b5578c1ee7d9808a34f33c724
sha256sums = 91fafa76bf9cb32159ac7f22191b3589278b91e65bc4505cf2fc6013b8037bf3
+ sha256sums = bb789e82a03b155ba92177403aefe0c97a61028d385fc1fbc2c98be00ee428ab
pkgname = linux-ck
pkgdesc = The Linux-ck kernel and modules with the ck1 patchset featuring MuQSS CPU scheduler v0.192
@@ -38,12 +40,12 @@ pkgname = linux-ck
depends = kmod
depends = mkinitcpio
optdepends = crda: to set the correct wireless channels of your country
- provides = linux-ck=5.1.3
+ provides = linux-ck=5.1.4
backup = etc/mkinitcpio.d/linux-ck.preset
pkgname = linux-ck-headers
pkgdesc = Header files and scripts for building modules for Linux-ck kernel
depends = linux-ck
- provides = linux-ck-headers=5.1.3
- provides = linux-headers=5.1.3
+ provides = linux-ck-headers=5.1.4
+ provides = linux-headers=5.1.4
diff --git a/0002-Revert-dm-eliminate-split_discard_bios-flag-from-DM-.patch b/0002-Revert-dm-eliminate-split_discard_bios-flag-from-DM-.patch
new file mode 100644
index 00000000000..25c7127e3a2
--- /dev/null
+++ b/0002-Revert-dm-eliminate-split_discard_bios-flag-from-DM-.patch
@@ -0,0 +1,187 @@
+From b79903f026f9eb37da34b8d300910e5d6d626e31 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Wed, 22 May 2019 01:12:03 +0200
+Subject: [PATCH 2/3] Revert "dm: eliminate 'split_discard_bios' flag from DM
+ target interface"
+
+This reverts commit 61697a6abd24acba941359c6268a94f4afe4a53d.
+
+https://bugs.archlinux.org/task/62693
+---
+ drivers/md/dm-cache-target.c | 1 +
+ drivers/md/dm-raid.c | 14 +++++---------
+ drivers/md/dm-thin.c | 1 +
+ drivers/md/dm-zoned-target.c | 1 +
+ drivers/md/dm.c | 25 +++++++++++++++++++------
+ include/linux/device-mapper.h | 6 ++++++
+ include/uapi/linux/dm-ioctl.h | 4 ++--
+ 7 files changed, 35 insertions(+), 17 deletions(-)
+
+diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c
+index d249cf8ac277..694b252d2741 100644
+--- a/drivers/md/dm-cache-target.c
++++ b/drivers/md/dm-cache-target.c
+@@ -2505,6 +2505,7 @@ static int cache_create(struct cache_args *ca, struct cache **result)
+
+ ti->num_discard_bios = 1;
+ ti->discards_supported = true;
++ ti->split_discard_bios = false;
+
+ ti->per_io_data_size = sizeof(struct per_bio_data);
+
+diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
+index 9fdef6897316..adcfe8ae10aa 100644
+--- a/drivers/md/dm-raid.c
++++ b/drivers/md/dm-raid.c
+@@ -2986,6 +2986,11 @@ static void configure_discard_support(struct raid_set *rs)
+ }
+ }
+
++ /*
++ * RAID1 and RAID10 personalities require bio splitting,
++ * RAID0/4/5/6 don't and process large discard bios properly.
++ */
++ ti->split_discard_bios = !!(rs_is_raid1(rs) || rs_is_raid10(rs));
+ ti->num_discard_bios = 1;
+ }
+
+@@ -3742,15 +3747,6 @@ static void raid_io_hints(struct dm_target *ti, struct queue_limits *limits)
+
+ blk_limits_io_min(limits, chunk_size);
+ blk_limits_io_opt(limits, chunk_size * mddev_data_stripes(rs));
+-
+- /*
+- * RAID1 and RAID10 personalities require bio splitting,
+- * RAID0/4/5/6 don't and process large discard bios properly.
+- */
+- if (rs_is_raid1(rs) || rs_is_raid10(rs)) {
+- limits->discard_granularity = chunk_size;
+- limits->max_discard_sectors = chunk_size;
+- }
+ }
+
+ static void raid_postsuspend(struct dm_target *ti)
+diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c
+index fcd887703f95..254c26eb963a 100644
+--- a/drivers/md/dm-thin.c
++++ b/drivers/md/dm-thin.c
+@@ -4240,6 +4240,7 @@ static int thin_ctr(struct dm_target *ti, unsigned argc, char **argv)
+ if (tc->pool->pf.discard_enabled) {
+ ti->discards_supported = true;
+ ti->num_discard_bios = 1;
++ ti->split_discard_bios = false;
+ }
+
+ mutex_unlock(&dm_thin_pool_table.mutex);
+diff --git a/drivers/md/dm-zoned-target.c b/drivers/md/dm-zoned-target.c
+index 8865c1709e16..6af5babe6837 100644
+--- a/drivers/md/dm-zoned-target.c
++++ b/drivers/md/dm-zoned-target.c
+@@ -727,6 +727,7 @@ static int dmz_ctr(struct dm_target *ti, unsigned int argc, char **argv)
+ ti->per_io_data_size = sizeof(struct dmz_bioctx);
+ ti->flush_supported = true;
+ ti->discards_supported = true;
++ ti->split_discard_bios = true;
+
+ /* The exposed capacity is the number of chunks that can be mapped */
+ ti->len = (sector_t)dmz_nr_chunks(dmz->metadata) << dev->zone_nr_sectors_shift;
+diff --git a/drivers/md/dm.c b/drivers/md/dm.c
+index 043f0761e4a0..f40e006ba5fe 100644
+--- a/drivers/md/dm.c
++++ b/drivers/md/dm.c
+@@ -1464,10 +1464,17 @@ static unsigned get_num_write_zeroes_bios(struct dm_target *ti)
+ return ti->num_write_zeroes_bios;
+ }
+
++typedef bool (*is_split_required_fn)(struct dm_target *ti);
++
++static bool is_split_required_for_discard(struct dm_target *ti)
++{
++ return ti->split_discard_bios;
++}
++
+ static int __send_changing_extent_only(struct clone_info *ci, struct dm_target *ti,
+- unsigned num_bios)
++ unsigned num_bios, bool is_split_required)
+ {
+- unsigned len = ci->sector_count;
++ unsigned len;
+
+ /*
+ * Even though the device advertised support for this type of
+@@ -1478,6 +1485,11 @@ static int __send_changing_extent_only(struct clone_info *ci, struct dm_target *
+ if (!num_bios)
+ return -EOPNOTSUPP;
+
++ if (!is_split_required)
++ len = min((sector_t)ci->sector_count, max_io_len_target_boundary(ci->sector, ti));
++ else
++ len = min((sector_t)ci->sector_count, max_io_len(ci->sector, ti));
++
+ __send_duplicate_bios(ci, ti, num_bios, &len);
+
+ ci->sector += len;
+@@ -1488,22 +1500,23 @@ static int __send_changing_extent_only(struct clone_info *ci, struct dm_target *
+
+ static int __send_discard(struct clone_info *ci, struct dm_target *ti)
+ {
+- return __send_changing_extent_only(ci, ti, get_num_discard_bios(ti));
++ return __send_changing_extent_only(ci, ti, get_num_discard_bios(ti),
++ is_split_required_for_discard(ti));
+ }
+
+ static int __send_secure_erase(struct clone_info *ci, struct dm_target *ti)
+ {
+- return __send_changing_extent_only(ci, ti, get_num_secure_erase_bios(ti));
++ return __send_changing_extent_only(ci, ti, get_num_secure_erase_bios(ti), false);
+ }
+
+ static int __send_write_same(struct clone_info *ci, struct dm_target *ti)
+ {
+- return __send_changing_extent_only(ci, ti, get_num_write_same_bios(ti));
++ return __send_changing_extent_only(ci, ti, get_num_write_same_bios(ti), false);
+ }
+
+ static int __send_write_zeroes(struct clone_info *ci, struct dm_target *ti)
+ {
+- return __send_changing_extent_only(ci, ti, get_num_write_zeroes_bios(ti));
++ return __send_changing_extent_only(ci, ti, get_num_write_zeroes_bios(ti), false);
+ }
+
+ static bool is_abnormal_io(struct bio *bio)
+diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h
+index b0672756d056..ec063ed4f53e 100644
+--- a/include/linux/device-mapper.h
++++ b/include/linux/device-mapper.h
+@@ -316,6 +316,12 @@ struct dm_target {
+ * whether or not its underlying devices have support.
+ */
+ bool discards_supported:1;
++
++ /*
++ * Set if the target required discard bios to be split
++ * on max_io_len boundary.
++ */
++ bool split_discard_bios:1;
+ };
+
+ /* Each target can link one of these into the table */
+diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h
+index f396a82dfd3e..d1e49514977b 100644
+--- a/include/uapi/linux/dm-ioctl.h
++++ b/include/uapi/linux/dm-ioctl.h
+@@ -270,9 +270,9 @@ enum {
+ #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
+
+ #define DM_VERSION_MAJOR 4
+-#define DM_VERSION_MINOR 40
++#define DM_VERSION_MINOR 39
+ #define DM_VERSION_PATCHLEVEL 0
+-#define DM_VERSION_EXTRA "-ioctl (2019-01-18)"
++#define DM_VERSION_EXTRA "-ioctl (2018-04-03)"
+
+ /* Status bits */
+ #define DM_READONLY_FLAG (1 << 0) /* In/Out */
+--
+2.21.0
+
diff --git a/PKGBUILD b/PKGBUILD
index 2613f741b0c..da78583ad7e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -61,7 +61,7 @@ _localmodcfg=
### IMPORTANT: Do no edit below this line unless you know what you're doing
pkgbase=linux-ck
-_srcver=5.1.3-arch1
+_srcver=5.1.4-arch1
pkgver=${_srcver%-*}
pkgrel=1
_ckpatchversion=1
@@ -81,12 +81,13 @@ source=(
"enable_additional_cpu_optimizations-$_gcc_more_v.tar.gz::https://github.com/graysky2/kernel_gcc_patch/archive/$_gcc_more_v.tar.gz"
"http://ck.kolivas.org/patches/5.0/5.1/5.1-ck${_ckpatchversion}/$_ckpatch.xz"
0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
+ 0002-Revert-dm-eliminate-split_discard_bios-flag-from-DM-.patch
)
validpgpkeys=(
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
)
-sha256sums=('b0f53e12daf8e710992151333edeb7d7da3d935a6aa3db8360681f7d05a6aaa2'
+sha256sums=('5c6d65faba54652b3ab4cfcb2f3be88d53478a2cd24d0f1cdd9344c7aad1e7f9'
'SKIP'
'7af14b92ef808cb57b4a09156e5cd3a6e32c31fc5eb942ec4b1402426a22cf0e'
'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
@@ -94,7 +95,8 @@ sha256sums=('b0f53e12daf8e710992151333edeb7d7da3d935a6aa3db8360681f7d05a6aaa2'
'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
'226e30068ea0fecdb22f337391385701996bfbdba37cdcf0f1dbf55f1080542d'
'f8d18a34f6b17ec8e5f2a7354383ca627e0fd00b5578c1ee7d9808a34f33c724'
- '91fafa76bf9cb32159ac7f22191b3589278b91e65bc4505cf2fc6013b8037bf3')
+ '91fafa76bf9cb32159ac7f22191b3589278b91e65bc4505cf2fc6013b8037bf3'
+ 'bb789e82a03b155ba92177403aefe0c97a61028d385fc1fbc2c98be00ee428ab')
_kernelname=${pkgbase#linux}
: ${_kernelname:=-ARCH}