summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBlackleg2015-08-04 17:48:47 +0200
committerBlackleg2015-08-04 17:48:47 +0200
commitd02e867f73b9f5ce1de6bb7ee000995b69bc5be3 (patch)
treeaf663f122ec791f27b6dd10d36785c75f0148b53
parente38a571b0acf432948bdc990849865d2286f20fe (diff)
downloadaur-d02e867f73b9f5ce1de6bb7ee000995b69bc5be3.tar.gz
Update to 4.1.4
-rw-r--r--.SRCINFO20
-rw-r--r--0001-block-loop-convert-to-per-device-workqueue.patch133
-rw-r--r--0002-block-loop-avoiding-too-many-pending-per-work-I-O.patch52
-rw-r--r--PKGBUILD15
4 files changed, 11 insertions, 209 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c766046dbcb2..2331450fdb4d 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,5 +1,5 @@
pkgbase = linux-w110er
- pkgver = 4.1.3
+ pkgver = 4.1.4
pkgrel = 1
url = http://www.kernel.org/
arch = x86_64
@@ -12,47 +12,43 @@ pkgbase = linux-w110er
options = !strip
source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.1.tar.xz
source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.1.tar.sign
- source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.1.3.xz
- source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.1.3.sign
+ source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.1.4.xz
+ source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.1.4.sign
source = http://repo-ck.com/source/gcc_patch/enable_additional_cpu_optimizations_for_gcc_v4.9+_kernel_v3.15+.patch.gz
source = config.w110er
source = linux.preset
source = change-default-console-loglevel.patch
- source = 0001-block-loop-convert-to-per-device-workqueue.patch
- source = 0002-block-loop-avoiding-too-many-pending-per-work-I-O.patch
sha256sums = caf51f085aac1e1cea4d00dbbf3093ead07b551fc07b31b2a989c05f8ea72d9f
sha256sums = SKIP
- sha256sums = b949517b832af2fc90c57a35e475340f32c186f391cbdbfbe0aba7720dbb0b3e
+ sha256sums = 0976127a60a950acf2796f642ac647e5231573b9a0f25703a37a50b988bf3b88
sha256sums = SKIP
sha256sums = 819961379909c028e321f37e27a8b1b08f1f1e3dd58680e07b541921282da532
sha256sums = b30e8a6bcd328364f53c9027839611e0fbcf38b486ab709fc66f7d28ea9960ce
sha256sums = f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c
sha256sums = 1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99
- sha256sums = 9e1d3fd95d768a46353593f6678513839cedb98ee66e83d9323233104ec3b23f
- sha256sums = bbe3631c737ed8329a1b7a9610cc0a07330c14194da5e9afec7705e7f37eeb81
pkgname = linux-w110er
- pkgdesc = Linux 4.1.3 kernel and modules optimized for Mountain F11 Netbook (Clevo W110ER). See PKGBUILD
+ pkgdesc = Linux 4.1.4 kernel and modules optimized for Mountain F11 Netbook (Clevo W110ER). See PKGBUILD
install = linux.install
depends = coreutils
depends = linux-firmware
depends = kmod
depends = mkinitcpio>=0.7
optdepends = crda: to set the correct wireless channels of your country
- provides = kernel26-w110er=4.1.3
+ provides = kernel26-w110er=4.1.4
conflicts = kernel26-w110er
replaces = kernel26-w110er
backup = etc/mkinitcpio.d/linux-w110er.preset
pkgname = linux-w110er-headers
pkgdesc = Header files and scripts for building modules for Linux-w110er kernel
- provides = kernel26-w110er-headers=4.1.3
+ provides = kernel26-w110er-headers=4.1.4
conflicts = kernel26-w110er-headers
replaces = kernel26-w110er-headers
pkgname = linux-w110er-docs
pkgdesc = Kernel hackers manual - HTML documentation that comes with the Linux-w110er kernel
- provides = kernel26-w110er-docs=4.1.3
+ provides = kernel26-w110er-docs=4.1.4
conflicts = kernel26-w110er-docs
replaces = kernel26-w110er-docs
diff --git a/0001-block-loop-convert-to-per-device-workqueue.patch b/0001-block-loop-convert-to-per-device-workqueue.patch
deleted file mode 100644
index effd4faaf5b7..000000000000
--- a/0001-block-loop-convert-to-per-device-workqueue.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From ebff6d5c91195d37e33b7bbfb36c6cc0119aa06f Mon Sep 17 00:00:00 2001
-From: Ming Lei <ming.lei@canonical.com>
-Date: Tue, 5 May 2015 19:49:54 +0800
-Subject: [PATCH 1/2] block: loop: convert to per-device workqueue
-
-Documentation/workqueue.txt:
- If there is dependency among multiple work items used
- during memory reclaim, they should be queued to separate
- wq each with WQ_MEM_RECLAIM.
-
-Loop devices can be stacked, so we have to convert to per-device
-workqueue. One example is Fedora live CD.
-
-Fixes: b5dd2f6047ca108001328aac0e8588edd15f1778
-Cc: stable@vger.kernel.org (v4.0)
-Cc: Justin M. Forbes <jforbes@fedoraproject.org>
-Signed-off-by: Ming Lei <ming.lei@canonical.com>
-Acked-by: Tejun Heo <tj@kernel.org>
-Signed-off-by: Jens Axboe <axboe@fb.com>
----
- drivers/block/loop.c | 30 ++++++++++++++----------------
- drivers/block/loop.h | 1 +
- 2 files changed, 15 insertions(+), 16 deletions(-)
-
-diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index d7173cb..9786aa3 100644
---- a/drivers/block/loop.c
-+++ b/drivers/block/loop.c
-@@ -86,8 +86,6 @@ static DEFINE_MUTEX(loop_index_mutex);
- static int max_part;
- static int part_shift;
-
--static struct workqueue_struct *loop_wq;
--
- static int transfer_xor(struct loop_device *lo, int cmd,
- struct page *raw_page, unsigned raw_off,
- struct page *loop_page, unsigned loop_off,
-@@ -725,6 +723,12 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode,
- size = get_loop_size(lo, file);
- if ((loff_t)(sector_t)size != size)
- goto out_putf;
-+ error = -ENOMEM;
-+ lo->wq = alloc_workqueue("kloopd%d",
-+ WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_UNBOUND, 0,
-+ lo->lo_number);
-+ if (!lo->wq)
-+ goto out_putf;
-
- error = 0;
-
-@@ -872,6 +876,8 @@ static int loop_clr_fd(struct loop_device *lo)
- lo->lo_flags = 0;
- if (!part_shift)
- lo->lo_disk->flags |= GENHD_FL_NO_PART_SCAN;
-+ destroy_workqueue(lo->wq);
-+ lo->wq = NULL;
- mutex_unlock(&lo->lo_ctl_mutex);
- /*
- * Need not hold lo_ctl_mutex to fput backing file.
-@@ -1425,9 +1431,13 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx,
- const struct blk_mq_queue_data *bd)
- {
- struct loop_cmd *cmd = blk_mq_rq_to_pdu(bd->rq);
-+ struct loop_device *lo = cmd->rq->q->queuedata;
-
- blk_mq_start_request(bd->rq);
-
-+ if (lo->lo_state != Lo_bound)
-+ return -EIO;
-+
- if (cmd->rq->cmd_flags & REQ_WRITE) {
- struct loop_device *lo = cmd->rq->q->queuedata;
- bool need_sched = true;
-@@ -1441,9 +1451,9 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx,
- spin_unlock_irq(&lo->lo_lock);
-
- if (need_sched)
-- queue_work(loop_wq, &lo->write_work);
-+ queue_work(lo->wq, &lo->write_work);
- } else {
-- queue_work(loop_wq, &cmd->read_work);
-+ queue_work(lo->wq, &cmd->read_work);
- }
-
- return BLK_MQ_RQ_QUEUE_OK;
-@@ -1455,9 +1465,6 @@ static void loop_handle_cmd(struct loop_cmd *cmd)
- struct loop_device *lo = cmd->rq->q->queuedata;
- int ret = -EIO;
-
-- if (lo->lo_state != Lo_bound)
-- goto failed;
--
- if (write && (lo->lo_flags & LO_FLAGS_READ_ONLY))
- goto failed;
-
-@@ -1806,13 +1813,6 @@ static int __init loop_init(void)
- goto misc_out;
- }
-
-- loop_wq = alloc_workqueue("kloopd",
-- WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_UNBOUND, 0);
-- if (!loop_wq) {
-- err = -ENOMEM;
-- goto misc_out;
-- }
--
- blk_register_region(MKDEV(LOOP_MAJOR, 0), range,
- THIS_MODULE, loop_probe, NULL, NULL);
-
-@@ -1850,8 +1850,6 @@ static void __exit loop_exit(void)
- blk_unregister_region(MKDEV(LOOP_MAJOR, 0), range);
- unregister_blkdev(LOOP_MAJOR, "loop");
-
-- destroy_workqueue(loop_wq);
--
- misc_deregister(&loop_misc);
- }
-
-diff --git a/drivers/block/loop.h b/drivers/block/loop.h
-index 301c27f..49564ed 100644
---- a/drivers/block/loop.h
-+++ b/drivers/block/loop.h
-@@ -54,6 +54,7 @@ struct loop_device {
- gfp_t old_gfp_mask;
-
- spinlock_t lo_lock;
-+ struct workqueue_struct *wq;
- struct list_head write_cmd_head;
- struct work_struct write_work;
- bool write_started;
---
-2.4.5
-
diff --git a/0002-block-loop-avoiding-too-many-pending-per-work-I-O.patch b/0002-block-loop-avoiding-too-many-pending-per-work-I-O.patch
deleted file mode 100644
index fcad0c0b9592..000000000000
--- a/0002-block-loop-avoiding-too-many-pending-per-work-I-O.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 63eb7031005b6f22fc1dab9f0c29435f1b52a96b Mon Sep 17 00:00:00 2001
-From: Ming Lei <ming.lei@canonical.com>
-Date: Tue, 5 May 2015 19:49:55 +0800
-Subject: [PATCH 2/2] block: loop: avoiding too many pending per work I/O
-
-If there are too many pending per work I/O, too many
-high priority work thread can be generated so that
-system performance can be effected.
-
-This patch limits the max_active parameter of workqueue as 16.
-
-This patch fixes Fedora 22 live booting performance
-regression when it is booted from squashfs over dm
-based on loop, and looks the following reasons are
-related with the problem:
-
-- not like other filesyststems(such as ext4), squashfs
-is a bit special, and I observed that increasing I/O jobs
-to access file in squashfs only improve I/O performance a
-little, but it can make big difference for ext4
-
-- nested loop: both squashfs.img and ext3fs.img are mounted
-as loop block, and ext3fs.img is inside the squashfs
-
-- during booting, lots of tasks may run concurrently
-
-Fixes: b5dd2f6047ca108001328aac0e8588edd15f1778
-Cc: stable@vger.kernel.org (v4.0)
-Cc: Justin M. Forbes <jforbes@fedoraproject.org>
-Signed-off-by: Ming Lei <ming.lei@canonical.com>
-Acked-by: Tejun Heo <tj@kernel.org>
-Signed-off-by: Jens Axboe <axboe@fb.com>
----
- drivers/block/loop.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 9786aa3..cef6fa8 100644
---- a/drivers/block/loop.c
-+++ b/drivers/block/loop.c
-@@ -725,7 +725,7 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode,
- goto out_putf;
- error = -ENOMEM;
- lo->wq = alloc_workqueue("kloopd%d",
-- WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_UNBOUND, 0,
-+ WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_UNBOUND, 16,
- lo->lo_number);
- if (!lo->wq)
- goto out_putf;
---
-2.4.5
-
diff --git a/PKGBUILD b/PKGBUILD
index 7598d79a5988..9bc61341bcf2 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -19,7 +19,7 @@
pkgbase=linux-w110er
_srcname=linux-4.1
-pkgver=4.1.3
+pkgver=4.1.4
pkgrel=1
arch=('x86_64')
url="http://www.kernel.org/"
@@ -37,20 +37,16 @@ source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
# standard config files for mkinitcpio ramdisk
'linux.preset'
'change-default-console-loglevel.patch'
- '0001-block-loop-convert-to-per-device-workqueue.patch'
- '0002-block-loop-avoiding-too-many-pending-per-work-I-O.patch'
)
sha256sums=('caf51f085aac1e1cea4d00dbbf3093ead07b551fc07b31b2a989c05f8ea72d9f'
'SKIP'
- 'b949517b832af2fc90c57a35e475340f32c186f391cbdbfbe0aba7720dbb0b3e'
+ '0976127a60a950acf2796f642ac647e5231573b9a0f25703a37a50b988bf3b88'
'SKIP'
'819961379909c028e321f37e27a8b1b08f1f1e3dd58680e07b541921282da532'
'b30e8a6bcd328364f53c9027839611e0fbcf38b486ab709fc66f7d28ea9960ce'
'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c'
- '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
- '9e1d3fd95d768a46353593f6678513839cedb98ee66e83d9323233104ec3b23f'
- 'bbe3631c737ed8329a1b7a9610cc0a07330c14194da5e9afec7705e7f37eeb81')
+ '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99')
validpgpkeys=(
@@ -68,11 +64,6 @@ prepare() {
# add latest fixes from stable queue, if needed
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
-
- # Fix deadlock with stacked loop devices (FS#45129)
- # http://marc.info/?l=linux-kernel&m=143280649731902&w=2
- patch -Np1 -i ../0001-block-loop-convert-to-per-device-workqueue.patch
- patch -Np1 -i ../0002-block-loop-avoiding-too-many-pending-per-work-I-O.patch
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream