add 3rd party/custom patches
3rd patchs (in alphabetical order): - bbr3 - ntsync5 - openwrt - pf-kernel - xanmod - zen no configuration changes for now
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
From 1e2892b83e6c4062623f9aec06eba27884d47059 Mon Sep 17 00:00:00 2001
|
||||
From: Arjan van de Ven <arjan@linux.intel.com>
|
||||
Date: Thu, 13 Dec 2018 01:00:49 +0000
|
||||
Subject: [PATCH 1/4] sched/wait: Do accept() in LIFO order for cache
|
||||
efficiency
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
include/linux/wait.h | 2 ++
|
||||
kernel/sched/wait.c | 24 ++++++++++++++++++++++++
|
||||
net/ipv4/inet_connection_sock.c | 2 +-
|
||||
3 files changed, 27 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/include/linux/wait.h
|
||||
+++ b/include/linux/wait.h
|
||||
@@ -163,6 +163,7 @@ static inline bool wq_has_sleeper(struct
|
||||
|
||||
extern void add_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
||||
extern void add_wait_queue_exclusive(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
||||
+extern void add_wait_queue_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
||||
extern void add_wait_queue_priority(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
||||
extern void remove_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
||||
|
||||
@@ -1191,6 +1192,7 @@ do { \
|
||||
*/
|
||||
void prepare_to_wait(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
|
||||
bool prepare_to_wait_exclusive(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
|
||||
+void prepare_to_wait_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
|
||||
long prepare_to_wait_event(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
|
||||
void finish_wait(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
||||
long wait_woken(struct wait_queue_entry *wq_entry, unsigned mode, long timeout);
|
||||
--- a/kernel/sched/wait.c
|
||||
+++ b/kernel/sched/wait.c
|
||||
@@ -47,6 +47,17 @@ void add_wait_queue_priority(struct wait
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(add_wait_queue_priority);
|
||||
|
||||
+void add_wait_queue_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
|
||||
+{
|
||||
+ unsigned long flags;
|
||||
+
|
||||
+ wq_entry->flags |= WQ_FLAG_EXCLUSIVE;
|
||||
+ spin_lock_irqsave(&wq_head->lock, flags);
|
||||
+ __add_wait_queue(wq_head, wq_entry);
|
||||
+ spin_unlock_irqrestore(&wq_head->lock, flags);
|
||||
+}
|
||||
+EXPORT_SYMBOL(add_wait_queue_exclusive_lifo);
|
||||
+
|
||||
void remove_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
|
||||
{
|
||||
unsigned long flags;
|
||||
@@ -259,6 +270,19 @@ prepare_to_wait_exclusive(struct wait_qu
|
||||
}
|
||||
EXPORT_SYMBOL(prepare_to_wait_exclusive);
|
||||
|
||||
+void prepare_to_wait_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state)
|
||||
+{
|
||||
+ unsigned long flags;
|
||||
+
|
||||
+ wq_entry->flags |= WQ_FLAG_EXCLUSIVE;
|
||||
+ spin_lock_irqsave(&wq_head->lock, flags);
|
||||
+ if (list_empty(&wq_entry->entry))
|
||||
+ __add_wait_queue(wq_head, wq_entry);
|
||||
+ set_current_state(state);
|
||||
+ spin_unlock_irqrestore(&wq_head->lock, flags);
|
||||
+}
|
||||
+EXPORT_SYMBOL(prepare_to_wait_exclusive_lifo);
|
||||
+
|
||||
void init_wait_entry(struct wait_queue_entry *wq_entry, int flags)
|
||||
{
|
||||
wq_entry->flags = flags;
|
||||
--- a/net/ipv4/inet_connection_sock.c
|
||||
+++ b/net/ipv4/inet_connection_sock.c
|
||||
@@ -634,7 +634,7 @@ static int inet_csk_wait_for_connect(str
|
||||
* having to remove and re-insert us on the wait queue.
|
||||
*/
|
||||
for (;;) {
|
||||
- prepare_to_wait_exclusive(sk_sleep(sk), &wait,
|
||||
+ prepare_to_wait_exclusive_lifo(sk_sleep(sk), &wait,
|
||||
TASK_INTERRUPTIBLE);
|
||||
release_sock(sk);
|
||||
if (reqsk_queue_empty(&icsk->icsk_accept_queue))
|
25
debian/patches/patchset-xanmod/clearlinux/0002-firmware-Enable-stateless-firmware-loading.patch
vendored
Normal file
25
debian/patches/patchset-xanmod/clearlinux/0002-firmware-Enable-stateless-firmware-loading.patch
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
From 52caaf4af0242cc3ac1ddaf9791c4c08a4b7226d Mon Sep 17 00:00:00 2001
|
||||
From: William Douglas <william.douglas@intel.com>
|
||||
Date: Wed, 20 Jun 2018 17:23:21 +0000
|
||||
Subject: [PATCH 2/4] firmware: Enable stateless firmware loading
|
||||
|
||||
Prefer the order of specific version before generic and /etc before
|
||||
/lib to enable the user to give specific overrides for generic
|
||||
firmware and distribution firmware.
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
drivers/base/firmware_loader/main.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/drivers/base/firmware_loader/main.c
|
||||
+++ b/drivers/base/firmware_loader/main.c
|
||||
@@ -471,6 +471,8 @@ static int fw_decompress_xz(struct devic
|
||||
static char fw_path_para[256];
|
||||
static const char * const fw_path[] = {
|
||||
fw_path_para,
|
||||
+ "/etc/firmware/" UTS_RELEASE,
|
||||
+ "/etc/firmware",
|
||||
"/lib/firmware/updates/" UTS_RELEASE,
|
||||
"/lib/firmware/updates",
|
||||
"/lib/firmware/" UTS_RELEASE,
|
32
debian/patches/patchset-xanmod/clearlinux/0003-locking-rwsem-spin-faster.patch
vendored
Normal file
32
debian/patches/patchset-xanmod/clearlinux/0003-locking-rwsem-spin-faster.patch
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
From f57e26428b29ddcdf58b35659002293bde1bf281 Mon Sep 17 00:00:00 2001
|
||||
From: Arjan van de Ven <arjan@linux.intel.com>
|
||||
Date: Sun, 18 Feb 2018 23:35:41 +0000
|
||||
Subject: [PATCH 3/4] locking: rwsem: spin faster
|
||||
|
||||
tweak rwsem owner spinning a bit
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
kernel/locking/rwsem.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/kernel/locking/rwsem.c
|
||||
+++ b/kernel/locking/rwsem.c
|
||||
@@ -749,6 +749,7 @@ rwsem_spin_on_owner(struct rw_semaphore
|
||||
struct task_struct *new, *owner;
|
||||
unsigned long flags, new_flags;
|
||||
enum owner_state state;
|
||||
+ int i = 0;
|
||||
|
||||
lockdep_assert_preemption_disabled();
|
||||
|
||||
@@ -785,7 +786,8 @@ rwsem_spin_on_owner(struct rw_semaphore
|
||||
break;
|
||||
}
|
||||
|
||||
- cpu_relax();
|
||||
+ if (i++ > 1000)
|
||||
+ cpu_relax();
|
||||
}
|
||||
|
||||
return state;
|
Reference in New Issue
Block a user