1
0

release 6.15.2 (preliminary)

This commit is contained in:
2025-06-18 12:24:58 +03:00
parent 4d2691343a
commit 43dc655d2e
242 changed files with 7729 additions and 32303 deletions

View File

@@ -1,4 +1,4 @@
From ae8cebfd2446a0564c849adcd771ce538855b6b2 Mon Sep 17 00:00:00 2001
From 8d80309c1a14b7b9f7fac80b68bd01956c1218d1 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian@brauner.io>
Date: Wed, 16 Jan 2019 23:13:25 +0100
Subject: binder: turn into module
@@ -91,15 +91,15 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
static inline void binder_selftest_alloc(struct binder_alloc *alloc) {}
--- a/drivers/android/binder_internal.h
+++ b/drivers/android/binder_internal.h
@@ -5,6 +5,7 @@
@@ -4,6 +4,7 @@
#define _LINUX_BINDER_INTERNAL_H
#include <linux/export.h>
#include <linux/fs.h>
+#include <linux/kconfig.h>
#include <linux/list.h>
#include <linux/miscdevice.h>
#include <linux/mutex.h>
@@ -77,7 +78,7 @@ extern const struct file_operations bind
@@ -76,7 +77,7 @@ extern const struct file_operations bind
extern char *binder_devices_param;
@@ -108,7 +108,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
extern bool is_binderfs_device(const struct inode *inode);
extern struct dentry *binderfs_create_file(struct dentry *dir, const char *name,
const struct file_operations *fops,
@@ -98,7 +99,7 @@ static inline struct dentry *binderfs_cr
@@ -97,7 +98,7 @@ static inline struct dentry *binderfs_cr
static inline void binderfs_remove_file(struct dentry *dentry) {}
#endif

View File

@@ -1,7 +1,7 @@
From fa6cddbfd7915ed81dcbed99f9e5b5a9267d80a3 Mon Sep 17 00:00:00 2001
From dc1feaaf2b7903976763eeedcc1387602c13f348 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: sched/wait: Do accept() in LIFO order for cache
Subject: [PATCH 1/4] sched/wait: Do accept() in LIFO order for cache
efficiency
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
@@ -21,7 +21,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
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);
@@ -1192,6 +1193,7 @@ do { \
@@ -1195,6 +1196,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);
@@ -71,7 +71,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
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
@@ -632,7 +632,7 @@ static int inet_csk_wait_for_connect(str
* having to remove and re-insert us on the wait queue.
*/
for (;;) {

View File

@@ -1,7 +1,7 @@
From b837910f5e9f1928872e600a6835be6d422b761b Mon Sep 17 00:00:00 2001
From 64705d09ddb58674e672b5d300a9ba29388b993f Mon Sep 17 00:00:00 2001
From: William Douglas <william.douglas@intel.com>
Date: Wed, 20 Jun 2018 17:23:21 +0000
Subject: firmware: Enable stateless firmware loading
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

View File

@@ -1,7 +1,7 @@
From 274ba9c23b6fe3212c7f02f3e833086427034705 Mon Sep 17 00:00:00 2001
From 922ad665f65ced17b949f2a687da59693fbea60f 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: locking: rwsem: spin faster
Subject: [PATCH 3/4] locking: rwsem: spin faster
tweak rwsem owner spinning a bit

View File

@@ -1,7 +1,7 @@
From 0234467781c5b1c50f71f3936571e4ea3e77c279 Mon Sep 17 00:00:00 2001
From 45eb20726d383c7003579405b52ceb13c6ce4b65 Mon Sep 17 00:00:00 2001
From: Arjan van de Ven <arjan@linux.intel.com>
Date: Thu, 2 Jun 2016 23:36:32 -0500
Subject: drivers: initialize ata before graphics
Subject: [PATCH 4/4] drivers: initialize ata before graphics
ATA init is the long pole in the boot process, and its asynchronous.
move the graphics init after it so that ata and graphics initialize

View File

@@ -1,7 +1,7 @@
From 2099f9c57216c836e445d2f6ba65f04131267f47 Mon Sep 17 00:00:00 2001
From a78b8dee94d4742c4696c55c0eec964802e812ac Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Mon, 27 Feb 2023 01:38:18 +0000
Subject: netfilter: Add netfilter nf_tables fullcone support
Subject: [PATCH 1/2] netfilter: Add netfilter nf_tables fullcone support
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
@@ -10,8 +10,8 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
net/netfilter/Kconfig | 15 +
net/netfilter/Makefile | 5 +
net/netfilter/nf_nat_fullcone.c | 1604 +++++++++++++++++++++++
net/netfilter/nft_ext_fullcone.c | 466 +++++++
5 files changed, 2246 insertions(+)
net/netfilter/nft_ext_fullcone.c | 470 +++++++
5 files changed, 2250 insertions(+)
create mode 100644 include/net/netfilter/nf_nat_fullcone.h
create mode 100644 net/netfilter/nf_nat_fullcone.c
create mode 100644 net/netfilter/nft_ext_fullcone.c

View File

@@ -1,7 +1,7 @@
From 6fbfabdc4e5ef8a186c27e4ed2db28ee1ddf4b4e Mon Sep 17 00:00:00 2001
From 242e385bcd49ee7ea5332b27864f81aab9b11718 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Tue, 20 Feb 2018 15:56:02 +0100
Subject: netfilter: add xt_FLOWOFFLOAD target
Subject: [PATCH 2/2] netfilter: add xt_FLOWOFFLOAD target
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Alexandre Frade <kernel@xanmod.org>

View File

@@ -1,7 +1,7 @@
From 5435b92688a57d175607374d5bbff357e4ba3e71 Mon Sep 17 00:00:00 2001
From 1e164adec73236b05d5b84846a460082d3d211d2 Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Tue, 11 Jun 2019 12:26:55 -0400
Subject: net-tcp_bbr: broaden app-limited rate sample detection
Subject: [PATCH 01/18] net-tcp_bbr: broaden app-limited rate sample detection
This commit is a bug fix for the Linux TCP app-limited
(application-limited) logic that is used for collecting rate
@@ -32,7 +32,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3983,6 +3983,7 @@ static int tcp_ack(struct sock *sk, cons
@@ -3994,6 +3994,7 @@ static int tcp_ack(struct sock *sk, cons
prior_fack = tcp_is_sack(tp) ? tcp_highest_sack_seq(tp) : tp->snd_una;
rs.prior_in_flight = tcp_packets_in_flight(tp);
@@ -42,10 +42,10 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
* is in window.
--- a/net/ipv4/tcp_timer.c
+++ b/net/ipv4/tcp_timer.c
@@ -699,6 +699,7 @@ void tcp_write_timer_handler(struct sock
@@ -702,6 +702,7 @@ void tcp_write_timer_handler(struct sock
icsk_timeout(icsk));
return;
}
+ tcp_rate_check_app_limited(sk);
tcp_mstamp_refresh(tcp_sk(sk));
event = icsk->icsk_pending;

View File

@@ -1,7 +1,7 @@
From 9aa33a35b5b9cbe65c87e6f9438e69ede143d11a Mon Sep 17 00:00:00 2001
From e02830baf6c32aceea6c0dfe8a0a4b96db171418 Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Sun, 24 Jun 2018 21:55:59 -0400
Subject: net-tcp_bbr: v2: shrink delivered_mstamp,
Subject: [PATCH 02/18] net-tcp_bbr: v2: shrink delivered_mstamp,
first_tx_mstamp to u32 to free up 8 bytes
Free up some space for tracking inflight and losses for each
@@ -25,7 +25,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -901,6 +901,11 @@ static inline u32 tcp_stamp_us_delta(u64
@@ -945,6 +945,11 @@ static inline u32 tcp_stamp_us_delta(u64
return max_t(s64, t1 - t0, 0);
}
@@ -37,7 +37,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
/* provide the departure time in us unit */
static inline u64 tcp_skb_timestamp_us(const struct sk_buff *skb)
{
@@ -990,9 +995,9 @@ struct tcp_skb_cb {
@@ -1043,9 +1048,9 @@ struct tcp_skb_cb {
/* pkts S/ACKed so far upon tx of skb, incl retrans: */
__u32 delivered;
/* start of send pipeline phase */

View File

@@ -1,7 +1,7 @@
From 63e1d064c4e4355293b9ee7014f4559cdeba4b8b Mon Sep 17 00:00:00 2001
From b39e9e473ed0446e4268cffb09f4a260cea7c341 Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Sat, 5 Aug 2017 11:49:50 -0400
Subject: net-tcp_bbr: v2: snapshot packets in flight at transmit
Subject: [PATCH 03/18] net-tcp_bbr: v2: snapshot packets in flight at transmit
time and pass in rate_sample
CC algorithms may want to snapshot the number of packets in flight at
@@ -27,7 +27,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -998,6 +998,10 @@ struct tcp_skb_cb {
@@ -1051,6 +1051,10 @@ struct tcp_skb_cb {
u32 first_tx_mstamp;
/* when we reached the "delivered" count */
u32 delivered_mstamp;
@@ -38,7 +38,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
} tx; /* only used for outgoing skbs */
union {
struct inet_skb_parm h4;
@@ -1154,6 +1158,7 @@ struct rate_sample {
@@ -1207,6 +1211,7 @@ struct rate_sample {
u64 prior_mstamp; /* starting timestamp for interval */
u32 prior_delivered; /* tp->delivered at "prior_mstamp" */
u32 prior_delivered_ce;/* tp->delivered_ce at "prior_mstamp" */
@@ -46,7 +46,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
s32 delivered; /* number of packets delivered over interval */
s32 delivered_ce; /* number of packets delivered w/ CE marks*/
long interval_us; /* time for tp->delivered to incr "delivered" */
@@ -1276,6 +1281,7 @@ static inline void tcp_ca_event(struct s
@@ -1329,6 +1334,7 @@ static inline void tcp_ca_event(struct s
void tcp_set_ca_state(struct sock *sk, const u8 ca_state);
/* From tcp_rate.c */
@@ -56,7 +56,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
struct rate_sample *rs);
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2776,6 +2776,7 @@ static bool tcp_write_xmit(struct sock *
@@ -2777,6 +2777,7 @@ static bool tcp_write_xmit(struct sock *
skb_set_delivery_time(skb, tp->tcp_wstamp_ns, SKB_CLOCK_MONOTONIC);
list_move_tail(&skb->tcp_tsorted_anchor, &tp->tsorted_sent_queue);
tcp_init_tso_segs(skb, mss_now);

View File

@@ -1,7 +1,7 @@
From 4022fb6da58dd67760dc8f3351067945a377df91 Mon Sep 17 00:00:00 2001
From e4c82a08a05eeee9341511f35e922914520dd401 Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Thu, 12 Oct 2017 23:44:27 -0400
Subject: net-tcp_bbr: v2: count packets lost over TCP rate
Subject: [PATCH 04/18] net-tcp_bbr: v2: count packets lost over TCP rate
sampling interval
For understanding the relationship between inflight and packet loss
@@ -19,7 +19,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1002,6 +1002,7 @@ struct tcp_skb_cb {
@@ -1055,6 +1055,7 @@ struct tcp_skb_cb {
#define TCPCB_IN_FLIGHT_MAX ((1U << TCPCB_IN_FLIGHT_BITS) - 1)
u32 in_flight:20, /* packets in flight at transmit */
unused2:12;
@@ -27,7 +27,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
} tx; /* only used for outgoing skbs */
union {
struct inet_skb_parm h4;
@@ -1156,11 +1157,13 @@ struct ack_sample {
@@ -1209,11 +1210,13 @@ struct ack_sample {
*/
struct rate_sample {
u64 prior_mstamp; /* starting timestamp for interval */

View File

@@ -1,7 +1,7 @@
From 3ff71ca0a15ebe4e5db9c0089121eafd2efc02ba Mon Sep 17 00:00:00 2001
From 3d3b54d263b6271926e0d9800ca000a529267cfe Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Mon, 19 Nov 2018 13:48:36 -0500
Subject: net-tcp_bbr: v2: export FLAG_ECE in rate_sample.is_ece
Subject: [PATCH 05/18] net-tcp_bbr: v2: export FLAG_ECE in rate_sample.is_ece
For understanding the relationship between inflight and ECN signals,
to try to find the highest inflight value that has acceptable levels
@@ -18,7 +18,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1175,6 +1175,7 @@ struct rate_sample {
@@ -1228,6 +1228,7 @@ struct rate_sample {
bool is_app_limited; /* is sample from packet with bubble in pipe? */
bool is_retrans; /* is sample from retransmission? */
bool is_ack_delayed; /* is this (likely) a delayed ACK? */
@@ -28,7 +28,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
struct tcp_congestion_ops {
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -4073,6 +4073,7 @@ static int tcp_ack(struct sock *sk, cons
@@ -4084,6 +4084,7 @@ static int tcp_ack(struct sock *sk, cons
delivered = tcp_newly_delivered(sk, delivered, flag);
lost = tp->lost - lost; /* freshly marked lost */
rs.is_ack_delayed = !!(flag & FLAG_ACK_MAYBE_DELAYED);

View File

@@ -1,7 +1,7 @@
From fa9348cbc2b5a0f1f3fc82e51ae6ce956f8cfb1f Mon Sep 17 00:00:00 2001
From 6f3ecfa5c713cacd451b876f4190da6d36c512eb Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Tue, 7 Aug 2018 21:52:06 -0400
Subject: net-tcp_bbr: v2: introduce ca_ops->skb_marked_lost() CC
Subject: [PATCH 06/18] net-tcp_bbr: v2: introduce ca_ops->skb_marked_lost() CC
module callback API
For connections experiencing reordering, RACK can mark packets lost
@@ -30,7 +30,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1202,6 +1202,9 @@ struct tcp_congestion_ops {
@@ -1255,6 +1255,9 @@ struct tcp_congestion_ops {
/* override sysctl_tcp_min_tso_segs */
u32 (*min_tso_segs)(struct sock *sk);
@@ -42,7 +42,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
*/
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -1140,7 +1140,12 @@ static void tcp_verify_retransmit_hint(s
@@ -1139,7 +1139,12 @@ static void tcp_verify_retransmit_hint(s
*/
static void tcp_notify_skb_loss_event(struct tcp_sock *tp, const struct sk_buff *skb)
{

View File

@@ -1,7 +1,7 @@
From 3add8086d7d76fe240fb341a4e49149ac4332990 Mon Sep 17 00:00:00 2001
From 52b39284416d0d841d4d51db0d3fce1c191a00d7 Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Wed, 1 May 2019 20:16:33 -0400
Subject: net-tcp_bbr: v2: adjust skb tx.in_flight upon merge in
Subject: [PATCH 07/18] net-tcp_bbr: v2: adjust skb tx.in_flight upon merge in
tcp_shifted_skb()
When tcp_shifted_skb() updates state as adjacent SACKed skbs are
@@ -39,7 +39,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -1517,6 +1517,17 @@ static bool tcp_shifted_skb(struct sock
@@ -1516,6 +1516,17 @@ static bool tcp_shifted_skb(struct sock
WARN_ON_ONCE(tcp_skb_pcount(skb) < pcount);
tcp_skb_pcount_add(skb, -pcount);

View File

@@ -1,7 +1,7 @@
From 6363d43645b3383ba590d0574dc37a215386aacf Mon Sep 17 00:00:00 2001
From 64570028a478a2249356345127bb3a3c75509d57 Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Wed, 1 May 2019 20:16:25 -0400
Subject: net-tcp_bbr: v2: adjust skb tx.in_flight upon split in
Subject: [PATCH 08/18] net-tcp_bbr: v2: adjust skb tx.in_flight upon split in
tcp_fragment()
When we fragment an skb that has already been sent, we need to update
@@ -31,7 +31,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1301,6 +1301,21 @@ static inline bool tcp_skb_sent_after(u6
@@ -1354,6 +1354,21 @@ static inline bool tcp_skb_sent_after(u6
return t1 > t2 || (t1 == t2 && after(seq1, seq2));
}
@@ -55,16 +55,16 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
* between different flows.
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1612,7 +1612,7 @@ int tcp_fragment(struct sock *sk, enum t
@@ -1614,7 +1614,7 @@ int tcp_fragment(struct sock *sk, enum t
{
struct tcp_sock *tp = tcp_sk(sk);
struct sk_buff *buff;
- int old_factor;
+ int old_factor, inflight_prev;
long limit;
u16 flags;
int nlen;
u8 flags;
@@ -1687,6 +1687,30 @@ int tcp_fragment(struct sock *sk, enum t
@@ -1689,6 +1689,30 @@ int tcp_fragment(struct sock *sk, enum t
if (diff)
tcp_adjust_pcount(sk, skb, diff);

View File

@@ -1,7 +1,7 @@
From 8c1b5bf6012099cba8911e255487bca5d0a2bd02 Mon Sep 17 00:00:00 2001
From fb3f903921be91a91b577d3771e5d5c9e9fe3aa9 Mon Sep 17 00:00:00 2001
From: Yousuk Seung <ysseung@google.com>
Date: Wed, 23 May 2018 17:55:54 -0700
Subject: net-tcp: add new ca opts flag TCP_CONG_WANTS_CE_EVENTS
Subject: [PATCH 09/18] net-tcp: add new ca opts flag TCP_CONG_WANTS_CE_EVENTS
Add a a new ca opts flag TCP_CONG_WANTS_CE_EVENTS that allows a
congestion control module to receive CE events.
@@ -23,20 +23,20 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1137,7 +1137,11 @@ enum tcp_ca_ack_event_flags {
#define TCP_CONG_NON_RESTRICTED 0x1
@@ -1190,7 +1190,11 @@ enum tcp_ca_ack_event_flags {
#define TCP_CONG_NON_RESTRICTED BIT(0)
/* Requires ECN/ECT set on all packets */
#define TCP_CONG_NEEDS_ECN 0x2
#define TCP_CONG_NEEDS_ECN BIT(1)
-#define TCP_CONG_MASK (TCP_CONG_NON_RESTRICTED | TCP_CONG_NEEDS_ECN)
+/* Wants notification of CE events (CA_EVENT_ECN_IS_CE, CA_EVENT_ECN_NO_CE). */
+#define TCP_CONG_WANTS_CE_EVENTS 0x4
+#define TCP_CONG_WANTS_CE_EVENTS BIT(2)
+#define TCP_CONG_MASK (TCP_CONG_NON_RESTRICTED | \
+ TCP_CONG_NEEDS_ECN | \
+ TCP_CONG_WANTS_CE_EVENTS)
union tcp_cc_info;
@@ -1269,6 +1273,14 @@ static inline char *tcp_ca_get_name_by_k
@@ -1322,6 +1326,14 @@ static inline char *tcp_ca_get_name_by_k
}
#endif
@@ -53,7 +53,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
const struct inet_connection_sock *icsk = inet_csk(sk);
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -376,7 +376,7 @@ static void __tcp_ecn_check_ce(struct so
@@ -381,7 +381,7 @@ static void tcp_data_ecn_check(struct so
tcp_enter_quickack_mode(sk, 2);
break;
case INET_ECN_CE:
@@ -62,7 +62,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
tcp_ca_event(sk, CA_EVENT_ECN_IS_CE);
if (!(tp->ecn_flags & TCP_ECN_DEMAND_CWR)) {
@@ -387,7 +387,7 @@ static void __tcp_ecn_check_ce(struct so
@@ -392,7 +392,7 @@ static void tcp_data_ecn_check(struct so
tp->ecn_flags |= TCP_ECN_SEEN;
break;
default:

View File

@@ -1,7 +1,7 @@
From 15fd38de916127d286bd373903fdfa5215b05aa4 Mon Sep 17 00:00:00 2001
From e0ac041e7e63d138d210fe875120447c11d2d4ba Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Fri, 27 Sep 2019 17:10:26 -0400
Subject: net-tcp: re-generalize TSO sizing in TCP CC module API
Subject: [PATCH 10/18] net-tcp: re-generalize TSO sizing in TCP CC module API
Reorganize the API for CC modules so that the CC module once again
gets complete control of the TSO sizing decision. This is how the API
@@ -28,7 +28,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1203,8 +1203,8 @@ struct tcp_congestion_ops {
@@ -1256,8 +1256,8 @@ struct tcp_congestion_ops {
/* hook for packet ack accounting (optional) */
void (*pkts_acked)(struct sock *sk, const struct ack_sample *sample);
@@ -118,7 +118,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
};
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2068,13 +2068,12 @@ static u32 tcp_tso_autosize(const struct
@@ -2069,13 +2069,12 @@ static u32 tcp_tso_autosize(const struct
static u32 tcp_tso_segs(struct sock *sk, unsigned int mss_now)
{
const struct tcp_congestion_ops *ca_ops = inet_csk(sk)->icsk_ca_ops;

View File

@@ -1,7 +1,7 @@
From 344af0ac329b2b1ce5f1ce920166e4aeb5e83037 Mon Sep 17 00:00:00 2001
From 323945d608bbef5fd3a444f52442bf0154c4ef0b Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Sat, 16 Nov 2019 13:16:25 -0500
Subject: net-tcp: add fast_ack_mode=1: skip rwin check in
Subject: [PATCH 11/18] net-tcp: add fast_ack_mode=1: skip rwin check in
tcp_fast_ack_mode__tcp_ack_snd_check()
Add logic for an optional TCP connection behavior, enabled with
@@ -22,9 +22,9 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -245,7 +245,8 @@ struct tcp_sock {
/* OOO segments go in this rbtree. Socket lock must be held. */
struct rb_root out_of_order_queue;
@@ -248,7 +248,8 @@ struct tcp_sock {
void (*tcp_clean_acked)(struct sock *sk, u32 acked_seq);
#endif
u32 snd_ssthresh; /* Slow start size threshold */
- u8 recvmsg_inq : 1;/* Indicate # of bytes in queue upon recvmsg */
+ u32 recvmsg_inq : 1,/* Indicate # of bytes in queue upon recvmsg */
@@ -34,7 +34,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
/* TX read-write hotpath cache lines */
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -3398,6 +3398,7 @@ int tcp_disconnect(struct sock *sk, int
@@ -3411,6 +3411,7 @@ int tcp_disconnect(struct sock *sk, int
tp->rx_opt.dsack = 0;
tp->rx_opt.num_sacks = 0;
tp->rcv_ooopack = 0;
@@ -54,7 +54,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
if (tcp_ca_needs_ecn(sk))
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -5790,13 +5790,14 @@ static void __tcp_ack_snd_check(struct s
@@ -5800,13 +5800,14 @@ static void __tcp_ack_snd_check(struct s
/* More than one full frame received... */
if (((tp->rcv_nxt - tp->rcv_wup) > inet_csk(sk)->icsk_ack.rcv_mss &&

View File

@@ -1,7 +1,7 @@
From 18f564dbe586ab02c48563a9e05e71aa1a421607 Mon Sep 17 00:00:00 2001
From 30fc364b7834b5dce9434dfab4adb49d4924ac03 Mon Sep 17 00:00:00 2001
From: Jianfeng Wang <jfwang@google.com>
Date: Fri, 19 Jun 2020 17:33:45 +0000
Subject: net-tcp_bbr: v2: record app-limited status of
Subject: [PATCH 12/18] net-tcp_bbr: v2: record app-limited status of
TLP-repaired flight
When sending a TLP retransmit, record whether the outstanding flight
@@ -23,7 +23,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -303,7 +303,8 @@ struct tcp_sock {
@@ -306,7 +306,8 @@ struct tcp_sock {
*/
struct tcp_options_received rx_opt;
u8 nonagle : 4,/* Disable Nagle algorithm? */
@@ -35,7 +35,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
/* RX read-write hotpath cache lines */
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -3012,6 +3012,7 @@ void tcp_send_loss_probe(struct sock *sk
@@ -3013,6 +3013,7 @@ void tcp_send_loss_probe(struct sock *sk
if (WARN_ON(!skb || !tcp_skb_pcount(skb)))
goto rearm_timer;

View File

@@ -1,7 +1,7 @@
From 8da6e7d31a73453ce8495f004951069f5ef67c86 Mon Sep 17 00:00:00 2001
From 0c90659bb5c4af502726a0c71cecc096ece1fc95 Mon Sep 17 00:00:00 2001
From: Jianfeng Wang <jfwang@google.com>
Date: Tue, 16 Jun 2020 17:41:19 +0000
Subject: net-tcp_bbr: v2: inform CC module of losses repaired by
Subject: [PATCH 13/18] net-tcp_bbr: v2: inform CC module of losses repaired by
TLP probe
Before this commit, when there is a packet loss that creates a sequence
@@ -25,7 +25,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1115,6 +1115,7 @@ enum tcp_ca_event {
@@ -1168,6 +1168,7 @@ enum tcp_ca_event {
CA_EVENT_LOSS, /* loss timeout */
CA_EVENT_ECN_NO_CE, /* ECT set, but not CE marked */
CA_EVENT_ECN_IS_CE, /* received CE marked IP packet */
@@ -35,7 +35,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
/* Information about inbound ACK, passed to cong_ops->in_ack_event() */
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3870,6 +3870,7 @@ static void tcp_process_tlp_ack(struct s
@@ -3881,6 +3881,7 @@ static void tcp_process_tlp_ack(struct s
/* ACK advances: there was a loss, so reduce cwnd. Reset
* tlp_high_seq in tcp_init_cwnd_reduction()
*/

View File

@@ -1,7 +1,7 @@
From 528d5f9d97954b32db6ae1fe1729c4965886b6df Mon Sep 17 00:00:00 2001
From 0c9501f0d0743b7ab6958e064760b773b3bdf19b Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Mon, 21 Sep 2020 14:46:26 -0400
Subject: net-tcp_bbr: v2: introduce is_acking_tlp_retrans_seq
Subject: [PATCH 14/18] net-tcp_bbr: v2: introduce is_acking_tlp_retrans_seq
into rate_sample
Introduce is_acking_tlp_retrans_seq into rate_sample. This bool will
@@ -21,7 +21,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1179,6 +1179,7 @@ struct rate_sample {
@@ -1232,6 +1232,7 @@ struct rate_sample {
u32 last_end_seq; /* end_seq of most recently ACKed packet */
bool is_app_limited; /* is sample from packet with bubble in pipe? */
bool is_retrans; /* is sample from retransmission? */
@@ -31,7 +31,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
};
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3853,7 +3853,8 @@ static void tcp_replace_ts_recent(struct
@@ -3864,7 +3864,8 @@ static int tcp_replace_ts_recent(struct
/* This routine deals with acks during a TLP episode and ends an episode by
* resetting tlp_high_seq. Ref: TLP algorithm in draft-ietf-tcpm-rack
*/
@@ -41,7 +41,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
{
struct tcp_sock *tp = tcp_sk(sk);
@@ -3881,6 +3882,11 @@ static void tcp_process_tlp_ack(struct s
@@ -3892,6 +3893,11 @@ static void tcp_process_tlp_ack(struct s
FLAG_NOT_DUP | FLAG_DATA_SACKED))) {
/* Pure dupack: original and TLP probe arrived; no loss */
tp->tlp_high_seq = 0;
@@ -53,7 +53,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
}
@@ -4066,7 +4072,7 @@ static int tcp_ack(struct sock *sk, cons
@@ -4077,7 +4083,7 @@ static int tcp_ack(struct sock *sk, cons
tcp_in_ack_event(sk, flag);
if (tp->tlp_high_seq)
@@ -62,7 +62,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
if (tcp_ack_is_dubious(sk, flag)) {
if (!(flag & (FLAG_SND_UNA_ADVANCED |
@@ -4111,7 +4117,7 @@ no_queue:
@@ -4122,7 +4128,7 @@ no_queue:
tcp_ack_probe(sk);
if (tp->tlp_high_seq)

View File

@@ -1,7 +1,7 @@
From a086cf589b0ab974965d88d338c0a373eff5d67c Mon Sep 17 00:00:00 2001
From c70e032f0effa66e1f67ae0a5ed65fac83c6c267 Mon Sep 17 00:00:00 2001
From: David Morley <morleyd@google.com>
Date: Fri, 14 Jul 2023 11:07:56 -0400
Subject: tcp: introduce per-route feature RTAX_FEATURE_ECN_LOW
Subject: [PATCH 15/18] tcp: introduce per-route feature RTAX_FEATURE_ECN_LOW
Define and implement a new per-route feature, RTAX_FEATURE_ECN_LOW.
@@ -33,15 +33,15 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -376,6 +376,7 @@ static inline void tcp_dec_quickack_mode
#define TCP_ECN_QUEUE_CWR 2
#define TCP_ECN_DEMAND_CWR 4
#define TCP_ECN_SEEN 8
+#define TCP_ECN_LOW 16
@@ -379,6 +379,7 @@ static inline void tcp_dec_quickack_mode
#define TCP_ECN_DEMAND_CWR BIT(2)
#define TCP_ECN_SEEN BIT(3)
#define TCP_ECN_MODE_ACCECN BIT(4)
+#define TCP_ECN_LOW BIT(5)
enum tcp_tw_status {
TCP_TW_SUCCESS = 0,
@@ -796,6 +797,15 @@ static inline void tcp_fast_path_check(s
#define TCP_ECN_DISABLED 0
#define TCP_ECN_MODE_PENDING (TCP_ECN_MODE_RFC3168 | TCP_ECN_MODE_ACCECN)
@@ -840,6 +841,15 @@ static inline void tcp_fast_path_check(s
u32 tcp_delack_max(const struct sock *sk);
@@ -59,7 +59,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
{
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -516,12 +516,14 @@ enum {
@@ -517,12 +517,14 @@ enum {
#define RTAX_FEATURE_TIMESTAMP (1 << 2) /* unused */
#define RTAX_FEATURE_ALLFRAG (1 << 3) /* unused */
#define RTAX_FEATURE_TCP_USEC_TS (1 << 4)
@@ -77,7 +77,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
__u8 proto;
--- a/net/ipv4/tcp_minisocks.c
+++ b/net/ipv4/tcp_minisocks.c
@@ -471,6 +471,8 @@ void tcp_ca_openreq_child(struct sock *s
@@ -472,6 +472,8 @@ void tcp_ca_openreq_child(struct sock *s
u32 ca_key = dst_metric(dst, RTAX_CC_ALGO);
bool ca_got_dst = false;
@@ -101,7 +101,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
use_ecn = true;
}
@@ -354,6 +353,9 @@ static void tcp_ecn_send_syn(struct sock
tp->ecn_flags = TCP_ECN_OK;
tcp_ecn_mode_set(tp, TCP_ECN_MODE_RFC3168);
if (tcp_ca_needs_ecn(sk) || bpf_needs_ecn)
INET_ECN_xmit(sk);
+

View File

@@ -1,7 +1,7 @@
From 3259adaa6771b29fdf023acffe469979cdd1caae Mon Sep 17 00:00:00 2001
From 2e495d77c2494b3ebf22dac97dd5dc025b86ba86 Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Tue, 11 Jun 2019 12:54:22 -0400
Subject: net-tcp_bbr: v3: update TCP "bbr" congestion control
Subject: [PATCH 16/18] net-tcp_bbr: v3: update TCP "bbr" congestion control
module to BBRv3
BBR v3 is an enhacement to the BBR v1 algorithm. It's designed to aim for lower
@@ -135,12 +135,12 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
include/net/tcp.h | 2 +-
include/uapi/linux/inet_diag.h | 23 +
net/ipv4/Kconfig | 21 +-
net/ipv4/tcp_bbr.c | 2217 +++++++++++++++++++++-------
5 files changed, 1742 insertions(+), 525 deletions(-)
net/ipv4/tcp_bbr.c | 2211 +++++++++++++++++++++-------
5 files changed, 1740 insertions(+), 521 deletions(-)
--- a/include/net/inet_connection_sock.h
+++ b/include/net/inet_connection_sock.h
@@ -137,8 +137,8 @@ struct inet_connection_sock {
@@ -132,8 +132,8 @@ struct inet_connection_sock {
u32 icsk_probes_tstamp;
u32 icsk_user_timeout;
@@ -153,7 +153,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
#define ICSK_TIME_RETRANS 1 /* Retransmit timer */
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -2491,7 +2491,7 @@ struct tcp_plb_state {
@@ -2546,7 +2546,7 @@ struct tcp_plb_state {
u8 consec_cong_rounds:5, /* consecutive congested rounds */
unused:3;
u32 pause_until; /* jiffies32 when PLB can resume rerouting */
@@ -472,7 +472,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
/* Gain factor for adding extra_acked to target cwnd: */
static const int bbr_extra_acked_gain = BBR_UNIT;
/* Window length of extra_acked window. */
@@ -201,8 +256,121 @@ static const u32 bbr_ack_epoch_acked_res
@@ -201,8 +256,123 @@ static const u32 bbr_ack_epoch_acked_res
/* Time period for clamping cwnd increment due to ack aggregation */
static const u32 bbr_extra_acked_max_us = 100 * 1000;
@@ -587,14 +587,16 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
+ */
+static bool bbr_can_use_ecn(const struct sock *sk)
+{
+ return (tcp_sk(sk)->ecn_flags & TCP_ECN_OK) &&
+ struct tcp_sock *tp = tcp_sk(sk);
+
+ return tcp_ecn_mode_any(tp) &&
+ (tcp_sk(sk)->ecn_flags & TCP_ECN_LOW);
+}
+
/* Do we estimate that STARTUP filled the pipe? */
static bool bbr_full_bw_reached(const struct sock *sk)
{
@@ -214,17 +382,17 @@ static bool bbr_full_bw_reached(const st
@@ -214,17 +384,17 @@ static bool bbr_full_bw_reached(const st
/* Return the windowed max recent bandwidth sample, in pkts/uS << BW_SCALE. */
static u32 bbr_max_bw(const struct sock *sk)
{
@@ -616,7 +618,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
/* Return maximum extra acked in past k-2k round trips,
@@ -241,15 +409,23 @@ static u16 bbr_extra_acked(const struct
@@ -241,15 +411,23 @@ static u16 bbr_extra_acked(const struct
* The order here is chosen carefully to avoid overflow of u64. This should
* work for input rates of up to 2.9Tbit/sec and gain of 2.89x.
*/
@@ -643,7 +645,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
/* Convert a BBR bw and gain factor to a pacing rate in bytes per second. */
@@ -257,12 +433,13 @@ static unsigned long bbr_bw_to_pacing_ra
@@ -257,12 +435,13 @@ static unsigned long bbr_bw_to_pacing_ra
{
u64 rate = bw;
@@ -659,7 +661,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
static void bbr_init_pacing_rate_from_rtt(struct sock *sk)
{
struct tcp_sock *tp = tcp_sk(sk);
@@ -279,7 +456,8 @@ static void bbr_init_pacing_rate_from_rt
@@ -279,7 +458,8 @@ static void bbr_init_pacing_rate_from_rt
bw = (u64)tcp_snd_cwnd(tp) * BW_UNIT;
do_div(bw, rtt_us);
WRITE_ONCE(sk->sk_pacing_rate,
@@ -669,7 +671,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
/* Pace using current bw estimate and a gain factor. */
@@ -295,31 +473,38 @@ static void bbr_set_pacing_rate(struct s
@@ -295,31 +475,38 @@ static void bbr_set_pacing_rate(struct s
WRITE_ONCE(sk->sk_pacing_rate, rate);
}
@@ -719,7 +721,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
{
return bbr_tso_segs_generic(sk, mss_now, sk->sk_gso_max_size);
}
@@ -329,7 +514,7 @@ static u32 bbr_tso_segs_goal(struct sock
@@ -329,7 +516,7 @@ static u32 bbr_tso_segs_goal(struct sock
{
struct tcp_sock *tp = tcp_sk(sk);
@@ -728,7 +730,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
/* Save "last known good" cwnd so we can restore it after losses or PROBE_RTT */
@@ -349,7 +534,9 @@ __bpf_kfunc static void bbr_cwnd_event(s
@@ -349,7 +536,9 @@ __bpf_kfunc static void bbr_cwnd_event(s
struct tcp_sock *tp = tcp_sk(sk);
struct bbr *bbr = inet_csk_ca(sk);
@@ -739,7 +741,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
bbr->idle_restart = 1;
bbr->ack_epoch_mstamp = tp->tcp_mstamp;
bbr->ack_epoch_acked = 0;
@@ -360,6 +547,16 @@ __bpf_kfunc static void bbr_cwnd_event(s
@@ -360,6 +549,16 @@ __bpf_kfunc static void bbr_cwnd_event(s
bbr_set_pacing_rate(sk, bbr_bw(sk), BBR_UNIT);
else if (bbr->mode == BBR_PROBE_RTT)
bbr_check_probe_rtt_done(sk);
@@ -756,7 +758,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
}
@@ -382,10 +579,10 @@ static u32 bbr_bdp(struct sock *sk, u32
@@ -382,10 +581,10 @@ static u32 bbr_bdp(struct sock *sk, u32
* default. This should only happen when the connection is not using TCP
* timestamps and has retransmitted all of the SYN/SYNACK/data packets
* ACKed so far. In this case, an RTO can cut cwnd to 1, in which
@@ -769,7 +771,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
w = (u64)bw * bbr->min_rtt_us;
@@ -402,23 +599,23 @@ static u32 bbr_bdp(struct sock *sk, u32
@@ -402,23 +601,23 @@ static u32 bbr_bdp(struct sock *sk, u32
* - one skb in sending host Qdisc,
* - one skb in sending host TSO/GSO engine
* - one skb being received by receiver host LRO/GRO/delayed-ACK engine
@@ -801,7 +803,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
cwnd += 2;
return cwnd;
@@ -473,10 +670,10 @@ static u32 bbr_ack_aggregation_cwnd(stru
@@ -473,10 +672,10 @@ static u32 bbr_ack_aggregation_cwnd(stru
{
u32 max_aggr_cwnd, aggr_cwnd = 0;
@@ -814,7 +816,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
>> BBR_SCALE;
aggr_cwnd = min(aggr_cwnd, max_aggr_cwnd);
}
@@ -484,66 +681,27 @@ static u32 bbr_ack_aggregation_cwnd(stru
@@ -484,66 +683,27 @@ static u32 bbr_ack_aggregation_cwnd(stru
return aggr_cwnd;
}
@@ -888,7 +890,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
target_cwnd = bbr_bdp(sk, bw, gain);
/* Increment the cwnd to account for excess ACKed data that seems
@@ -552,74 +710,26 @@ static void bbr_set_cwnd(struct sock *sk
@@ -552,74 +712,26 @@ static void bbr_set_cwnd(struct sock *sk
target_cwnd += bbr_ack_aggregation_cwnd(sk);
target_cwnd = bbr_quantization_budget(sk, target_cwnd);
@@ -980,7 +982,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
static void bbr_reset_startup_mode(struct sock *sk)
@@ -629,191 +739,49 @@ static void bbr_reset_startup_mode(struc
@@ -629,191 +741,49 @@ static void bbr_reset_startup_mode(struc
bbr->mode = BBR_STARTUP;
}
@@ -1058,11 +1060,9 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
+ * returns packets delivered since previous round start plus this ACK.
*/
-static void bbr_lt_bw_sampling(struct sock *sk, const struct rate_sample *rs)
+static u32 bbr_update_round_start(struct sock *sk,
+ const struct rate_sample *rs, struct bbr_context *ctx)
{
struct tcp_sock *tp = tcp_sk(sk);
struct bbr *bbr = inet_csk_ca(sk);
-{
- struct tcp_sock *tp = tcp_sk(sk);
- struct bbr *bbr = inet_csk_ca(sk);
- u32 lost, delivered;
- u64 bw;
- u32 t;
@@ -1133,9 +1133,11 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
-
-/* Estimate the bandwidth based on how fast packets are delivered */
-static void bbr_update_bw(struct sock *sk, const struct rate_sample *rs)
-{
- struct tcp_sock *tp = tcp_sk(sk);
- struct bbr *bbr = inet_csk_ca(sk);
+static u32 bbr_update_round_start(struct sock *sk,
+ const struct rate_sample *rs, struct bbr_context *ctx)
{
struct tcp_sock *tp = tcp_sk(sk);
struct bbr *bbr = inet_csk_ca(sk);
- u64 bw;
+ u32 round_delivered = 0;
@@ -1196,7 +1198,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
/* Estimates the windowed max degree of ack aggregation.
@@ -827,7 +795,7 @@ static void bbr_update_bw(struct sock *s
@@ -827,7 +797,7 @@ static void bbr_update_bw(struct sock *s
*
* Max extra_acked is clamped by cwnd and bw * bbr_extra_acked_max_us (100 ms).
* Max filter is an approximate sliding window of 5-10 (packet timed) round
@@ -1205,7 +1207,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
*/
static void bbr_update_ack_aggregation(struct sock *sk,
const struct rate_sample *rs)
@@ -835,15 +803,19 @@ static void bbr_update_ack_aggregation(s
@@ -835,15 +805,19 @@ static void bbr_update_ack_aggregation(s
u32 epoch_us, expected_acked, extra_acked;
struct bbr *bbr = inet_csk_ca(sk);
struct tcp_sock *tp = tcp_sk(sk);
@@ -1227,7 +1229,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
bbr->extra_acked_win_rtts = 0;
bbr->extra_acked_win_idx = bbr->extra_acked_win_idx ?
0 : 1;
@@ -877,49 +849,6 @@ static void bbr_update_ack_aggregation(s
@@ -877,49 +851,6 @@ static void bbr_update_ack_aggregation(s
bbr->extra_acked[bbr->extra_acked_win_idx] = extra_acked;
}
@@ -1277,7 +1279,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
static void bbr_check_probe_rtt_done(struct sock *sk)
{
struct tcp_sock *tp = tcp_sk(sk);
@@ -929,9 +858,9 @@ static void bbr_check_probe_rtt_done(str
@@ -929,9 +860,9 @@ static void bbr_check_probe_rtt_done(str
after(tcp_jiffies32, bbr->probe_rtt_done_stamp)))
return;
@@ -1289,7 +1291,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
/* The goal of PROBE_RTT mode is to have BBR flows cooperatively and
@@ -957,23 +886,35 @@ static void bbr_update_min_rtt(struct so
@@ -957,23 +888,35 @@ static void bbr_update_min_rtt(struct so
{
struct tcp_sock *tp = tcp_sk(sk);
struct bbr *bbr = inet_csk_ca(sk);
@@ -1334,7 +1336,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
if (bbr->mode == BBR_PROBE_RTT) {
@@ -982,9 +923,9 @@ static void bbr_update_min_rtt(struct so
@@ -982,9 +925,9 @@ static void bbr_update_min_rtt(struct so
(tp->delivered + tcp_packets_in_flight(tp)) ? : 1;
/* Maintain min packets in flight for max(200 ms, 1 round). */
if (!bbr->probe_rtt_done_stamp &&
@@ -1346,7 +1348,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
bbr->probe_rtt_round_done = 0;
bbr->next_rtt_delivered = tp->delivered;
} else if (bbr->probe_rtt_done_stamp) {
@@ -1005,18 +946,20 @@ static void bbr_update_gains(struct sock
@@ -1005,18 +948,20 @@ static void bbr_update_gains(struct sock
switch (bbr->mode) {
case BBR_STARTUP:
@@ -1375,7 +1377,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
break;
case BBR_PROBE_RTT:
bbr->pacing_gain = BBR_UNIT;
@@ -1028,27 +971,1108 @@ static void bbr_update_gains(struct sock
@@ -1028,27 +973,1108 @@ static void bbr_update_gains(struct sock
}
}
@@ -1435,7 +1437,8 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
+
+/* Has the given amount of time elapsed since we marked the phase start? */
+static bool bbr_has_elapsed_in_phase(const struct sock *sk, u32 interval_us)
+{
{
- bbr_update_bw(sk, rs);
+ const struct tcp_sock *tp = tcp_sk(sk);
+ const struct bbr *bbr = inet_csk_ca(sk);
+
@@ -1456,8 +1459,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
+
+/* Exit STARTUP upon N consecutive rounds with ECN mark rate > ecn_thresh. */
+static void bbr_check_ecn_too_high_in_startup(struct sock *sk, u32 ce_ratio)
{
- bbr_update_bw(sk, rs);
+{
+ struct bbr *bbr = inet_csk_ca(sk);
+
+ if (bbr_full_bw_reached(sk) || !bbr->ecn_eligible ||
@@ -2494,7 +2496,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
}
__bpf_kfunc static void bbr_init(struct sock *sk)
@@ -1056,20 +2080,21 @@ __bpf_kfunc static void bbr_init(struct
@@ -1056,20 +2082,21 @@ __bpf_kfunc static void bbr_init(struct
struct tcp_sock *tp = tcp_sk(sk);
struct bbr *bbr = inet_csk_ca(sk);
@@ -2521,7 +2523,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
bbr->has_seen_rtt = 0;
bbr_init_pacing_rate_from_rtt(sk);
@@ -1080,7 +2105,7 @@ __bpf_kfunc static void bbr_init(struct
@@ -1080,7 +2107,7 @@ __bpf_kfunc static void bbr_init(struct
bbr->full_bw_cnt = 0;
bbr->cycle_mstamp = 0;
bbr->cycle_idx = 0;
@@ -2530,7 +2532,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
bbr_reset_startup_mode(sk);
bbr->ack_epoch_mstamp = tp->tcp_mstamp;
@@ -1090,78 +2115,236 @@ __bpf_kfunc static void bbr_init(struct
@@ -1090,78 +2117,236 @@ __bpf_kfunc static void bbr_init(struct
bbr->extra_acked[0] = 0;
bbr->extra_acked[1] = 0;
@@ -2795,7 +2797,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
.undo_cwnd = bbr_undo_cwnd,
.cwnd_event = bbr_cwnd_event,
.ssthresh = bbr_ssthresh,
@@ -1174,10 +2357,11 @@ BTF_KFUNCS_START(tcp_bbr_check_kfunc_ids
@@ -1174,10 +2359,11 @@ BTF_KFUNCS_START(tcp_bbr_check_kfunc_ids
BTF_ID_FLAGS(func, bbr_init)
BTF_ID_FLAGS(func, bbr_main)
BTF_ID_FLAGS(func, bbr_sndbuf_expand)
@@ -2808,7 +2810,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
BTF_ID_FLAGS(func, bbr_set_state)
BTF_KFUNCS_END(tcp_bbr_check_kfunc_ids)
@@ -1210,5 +2394,12 @@ MODULE_AUTHOR("Van Jacobson <vanj@google
@@ -1210,5 +2396,12 @@ MODULE_AUTHOR("Van Jacobson <vanj@google
MODULE_AUTHOR("Neal Cardwell <ncardwell@google.com>");
MODULE_AUTHOR("Yuchung Cheng <ycheng@google.com>");
MODULE_AUTHOR("Soheil Hassas Yeganeh <soheil@google.com>");

View File

@@ -1,7 +1,7 @@
From 79dbc43c63d17b05e0b04c6ed68b5e24515cfe2f Mon Sep 17 00:00:00 2001
From 45615e9d62a6b0b688a284dc712c243295df9e65 Mon Sep 17 00:00:00 2001
From: Adithya Abraham Philip <abrahamphilip@google.com>
Date: Fri, 11 Jun 2021 21:56:10 +0000
Subject: net-tcp_bbr: v3: ensure ECN-enabled BBR flows set ECT
Subject: [PATCH 17/18] net-tcp_bbr: v3: ensure ECN-enabled BBR flows set ECT
on retransmits
Adds a new flag TCP_ECN_ECT_PERMANENT that is used by CCAs to
@@ -25,17 +25,17 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -377,6 +377,7 @@ static inline void tcp_dec_quickack_mode
#define TCP_ECN_DEMAND_CWR 4
#define TCP_ECN_SEEN 8
#define TCP_ECN_LOW 16
+#define TCP_ECN_ECT_PERMANENT 32
@@ -380,6 +380,7 @@ static inline void tcp_dec_quickack_mode
#define TCP_ECN_SEEN BIT(3)
#define TCP_ECN_MODE_ACCECN BIT(4)
#define TCP_ECN_LOW BIT(5)
+#define TCP_ECN_ECT_PERMANENT BIT(6)
enum tcp_tw_status {
TCP_TW_SUCCESS = 0,
#define TCP_ECN_DISABLED 0
#define TCP_ECN_MODE_PENDING (TCP_ECN_MODE_RFC3168 | TCP_ECN_MODE_ACCECN)
--- a/net/ipv4/tcp_bbr.c
+++ b/net/ipv4/tcp_bbr.c
@@ -2152,6 +2152,9 @@ __bpf_kfunc static void bbr_init(struct
@@ -2154,6 +2154,9 @@ __bpf_kfunc static void bbr_init(struct
bbr->plb.pause_until = 0;
tp->fast_ack_mode = bbr_fast_ack_mode ? 1 : 0;

View File

@@ -1,7 +1,7 @@
From 74f5a9e717fb41742cf30802e9f9c55c001d2576 Mon Sep 17 00:00:00 2001
From 461bd4bd12039886127019682ba6e7f372d9fa0b Mon Sep 17 00:00:00 2001
From: Neal Cardwell <ncardwell@google.com>
Date: Sun, 23 Jul 2023 23:25:34 -0400
Subject: tcp: export TCPI_OPT_ECN_LOW in tcp_info tcpi_options
Subject: [PATCH 18/18] tcp: export TCPI_OPT_ECN_LOW in tcp_info tcpi_options
field
Analogous to other important ECN information, export TCPI_OPT_ECN_LOW
@@ -17,7 +17,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/uapi/linux/tcp.h
+++ b/include/uapi/linux/tcp.h
@@ -178,6 +178,7 @@ enum tcp_fastopen_client_fail {
@@ -184,6 +184,7 @@ enum tcp_fastopen_client_fail {
#define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */
#define TCPI_OPT_SYN_DATA 32 /* SYN-ACK acked data in SYN sent or rcvd */
#define TCPI_OPT_USEC_TS 64 /* usec timestamps */
@@ -27,7 +27,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
* Sender's congestion state indicating normal or abnormal situations
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -4125,6 +4125,8 @@ void tcp_get_info(struct sock *sk, struc
@@ -4159,6 +4159,8 @@ void tcp_get_info(struct sock *sk, struc
info->tcpi_options |= TCPI_OPT_ECN;
if (tp->ecn_flags & TCP_ECN_SEEN)
info->tcpi_options |= TCPI_OPT_ECN_SEEN;

View File

@@ -1,4 +1,4 @@
From 2b4dc54edd1589e720e5b27e4536fd549c31f34e Mon Sep 17 00:00:00 2001
From 1b7e9ad0803cef8cf087bb67a6e4c8d63a02405b Mon Sep 17 00:00:00 2001
From: "mfreemon@cloudflare.com" <mfreemon@cloudflare.com>
Date: Tue, 1 Mar 2022 17:06:02 -0600
Subject: [PATCH] tcp: Add a sysctl to skip tcp collapse processing when the
@@ -41,7 +41,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/net/netns/ipv4.h
+++ b/include/net/netns/ipv4.h
@@ -226,6 +226,7 @@ struct netns_ipv4 {
@@ -230,6 +230,7 @@ struct netns_ipv4 {
u8 sysctl_fib_notify_on_flag_change;
u8 sysctl_tcp_syn_linear_timeouts;
@@ -67,7 +67,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
TP_PROTO(const struct sock *sk, const struct request_sock *req),
--- a/net/ipv4/sysctl_net_ipv4.c
+++ b/net/ipv4/sysctl_net_ipv4.c
@@ -1568,6 +1568,13 @@ static struct ctl_table ipv4_net_table[]
@@ -1569,6 +1569,13 @@ static struct ctl_table ipv4_net_table[]
.extra2 = SYSCTL_ONE,
},
{
@@ -83,7 +83,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
.maxlen = sizeof(u8),
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -5672,6 +5672,7 @@ static bool tcp_prune_ofo_queue(struct s
@@ -5682,6 +5682,7 @@ static bool tcp_prune_ofo_queue(struct s
static int tcp_prune_queue(struct sock *sk, const struct sk_buff *in_skb)
{
struct tcp_sock *tp = tcp_sk(sk);
@@ -91,7 +91,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
NET_INC_STATS(sock_net(sk), LINUX_MIB_PRUNECALLED);
@@ -5683,6 +5684,39 @@ static int tcp_prune_queue(struct sock *
@@ -5693,6 +5694,39 @@ static int tcp_prune_queue(struct sock *
if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf)
return 0;
@@ -131,7 +131,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
tcp_collapse_ofo_queue(sk);
if (!skb_queue_empty(&sk->sk_receive_queue))
tcp_collapse(sk, &sk->sk_receive_queue, NULL,
@@ -5701,6 +5735,8 @@ static int tcp_prune_queue(struct sock *
@@ -5711,6 +5745,8 @@ static int tcp_prune_queue(struct sock *
if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf)
return 0;
@@ -142,7 +142,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
* and hopefully then we'll have sufficient space.
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -3530,6 +3530,7 @@ static int __net_init tcp_sk_init(struct
@@ -3541,6 +3541,7 @@ static int __net_init tcp_sk_init(struct
net->ipv4.sysctl_tcp_syn_linear_timeouts = 4;
net->ipv4.sysctl_tcp_shrink_window = 0;

View File

@@ -1,4 +1,4 @@
From 2eb935c59e24cc1303dcb7153261be0a1b61b38b Mon Sep 17 00:00:00 2001
From c98d1c0e1f4b119313eb5852ccbf14b748c5d4a4 Mon Sep 17 00:00:00 2001
From: Mark Weiman <mark.weiman@markzz.com>
Date: Sun, 12 Aug 2018 11:36:21 -0400
Subject: [PATCH] PCI: Enable overrides for missing ACS capabilities
@@ -55,7 +55,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -4664,6 +4664,15 @@
@@ -4691,6 +4691,15 @@
nomsi [MSI] If the PCI_MSI kernel config parameter is
enabled, this kernel boot option can be used to
disable the use of MSI interrupts system-wide.

View File

@@ -1,7 +1,7 @@
From cd6bf6bb5fd26e58638aa441dacd9104eb990fe5 Mon Sep 17 00:00:00 2001
From 14d0907ef9d3f5c708d6aff478e32c64cda3d488 Mon Sep 17 00:00:00 2001
From: Andrey Smirnov <andrew.smirnov@gmail.com>
Date: Sun, 27 Feb 2022 14:46:08 -0800
Subject: extcon: Add driver for Steam Deck
Subject: [PATCH 1/6] extcon: Add driver for Steam Deck
(cherry picked from commit f9f2eddae582ae39d5f89c1218448fc259b90aa8)
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>

View File

@@ -1,7 +1,7 @@
From c4da1a4d0efa203d10fdceda267816f7838c8a85 Mon Sep 17 00:00:00 2001
From 3c5ff39975ce84f9d395349445a8742d58f16a20 Mon Sep 17 00:00:00 2001
From: Andrey Smirnov <andrew.smirnov@gmail.com>
Date: Sat, 19 Feb 2022 16:09:45 -0800
Subject: hwmon: Add driver for Steam Deck's EC sensors
Subject: [PATCH 2/6] hwmon: Add driver for Steam Deck's EC sensors
Add driver for sensors exposed by EC firmware on Steam Deck hardware.
@@ -17,7 +17,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -2089,6 +2089,17 @@ config SENSORS_SCH5636
@@ -2110,6 +2110,17 @@ config SENSORS_SCH5636
This driver can also be built as a module. If so, the module
will be called sch5636.
@@ -37,7 +37,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
depends on I2C
--- a/drivers/hwmon/Makefile
+++ b/drivers/hwmon/Makefile
@@ -211,6 +211,7 @@ obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47
@@ -213,6 +213,7 @@ obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47
obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
obj-$(CONFIG_SENSORS_SPARX5) += sparx5-temp.o
obj-$(CONFIG_SENSORS_SPD5118) += spd5118.o

View File

@@ -1,7 +1,7 @@
From 9f7d5453fd576ddf2c810146c5f61863b52d777d Mon Sep 17 00:00:00 2001
From 5e06cdcc7f6bf61b94a61f5b421573d2e12c0575 Mon Sep 17 00:00:00 2001
From: Andrey Smirnov <andrew.smirnov@gmail.com>
Date: Sat, 15 Jul 2023 12:58:54 -0700
Subject: hwmon: steamdeck-hwmon: Add support for max battery
Subject: [PATCH 3/6] hwmon: steamdeck-hwmon: Add support for max battery
level/rate
Add support for max battery level/charge rate attributes.

View File

@@ -1,7 +1,7 @@
From 93fc97eeb7fd11b7da124eab29c8d455331d364c Mon Sep 17 00:00:00 2001
From a73fb7a13f21fdee3ffe8f900f32b7f3a325e60a Mon Sep 17 00:00:00 2001
From: Andrey Smirnov <andrew.smirnov@gmail.com>
Date: Sun, 27 Feb 2022 12:58:05 -0800
Subject: leds: steamdeck: Add support for Steam Deck LED
Subject: [PATCH 4/6] leds: steamdeck: Add support for Steam Deck LED
(cherry picked from commit 85a86d19aa7022ff0555023d53aef78323a42d0c)
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
@@ -15,7 +15,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -1004,6 +1004,13 @@ config LEDS_ACER_A500
@@ -1013,6 +1013,13 @@ config LEDS_ACER_A500
This option enables support for the Power Button LED of
Acer Iconia Tab A500.
@@ -31,7 +31,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
comment "Flash and Torch LED drivers"
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
@@ -84,6 +84,7 @@ obj-$(CONFIG_LEDS_QNAP_MCU) += leds-qna
@@ -85,6 +85,7 @@ obj-$(CONFIG_LEDS_QNAP_MCU) += leds-qna
obj-$(CONFIG_LEDS_REGULATOR) += leds-regulator.o
obj-$(CONFIG_LEDS_SC27XX_BLTC) += leds-sc27xx-bltc.o
obj-$(CONFIG_LEDS_ST1202) += leds-st1202.o

View File

@@ -1,7 +1,7 @@
From 544af2c7ba194f959e8b317efb6e82b229b8ceff Mon Sep 17 00:00:00 2001
From eaf78d7b957552deba7222ca6bd1dae28bdd420b Mon Sep 17 00:00:00 2001
From: Andrey Smirnov <andrew.smirnov@gmail.com>
Date: Sat, 19 Feb 2022 16:08:36 -0800
Subject: mfd: Add MFD core driver for Steam Deck
Subject: [PATCH 5/6] mfd: Add MFD core driver for Steam Deck
Add MFD core driver for Steam Deck. Doesn't really do much so far
besides instantiating a number of MFD cells that implement all the
@@ -19,7 +19,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -2439,5 +2439,16 @@ config MFD_UPBOARD_FPGA
@@ -2422,5 +2422,16 @@ config MFD_UPBOARD_FPGA
To compile this driver as a module, choose M here: the module will be
called upboard-fpga.
@@ -38,7 +38,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
endif
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -294,3 +294,5 @@ obj-$(CONFIG_MFD_RSMU_I2C) += rsmu_i2c.o
@@ -290,3 +290,5 @@ obj-$(CONFIG_MFD_RSMU_I2C) += rsmu_i2c.o
obj-$(CONFIG_MFD_RSMU_SPI) += rsmu_spi.o rsmu_core.o
obj-$(CONFIG_MFD_UPBOARD_FPGA) += upboard-fpga.o

View File

@@ -1,7 +1,7 @@
From cf5a7be3ab145c5743b673722ce01002dcdac3e6 Mon Sep 17 00:00:00 2001
From 1755d1224560a5d3379489cf83efefdf6fd7d93c Mon Sep 17 00:00:00 2001
From: Andrey Smirnov <andrew.smirnov@gmail.com>
Date: Sun, 24 Sep 2023 15:02:33 -0700
Subject: mfd: steamdeck: Expose controller board power in sysfs
Subject: [PATCH 6/6] mfd: steamdeck: Expose controller board power in sysfs
As of version 118 Deck's BIOS implements "SCBP" method that allows
gating power of the controller board (VBUS). Add a basic WO method to

View File

@@ -1,7 +1,7 @@
From 878cd0d9982ee6810036adce9e9c96cdb3714be1 Mon Sep 17 00:00:00 2001
From 7479efa37dfb05263e0984ca1e1a3da22fa62414 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Thu, 28 Nov 2024 22:55:27 +0000
Subject: kbuild: Re-add .config file required to sign external
Subject: [PATCH 03/19] kbuild: Re-add .config file required to sign external
modules
Signed-off-by: Alexandre Frade <kernel@xanmod.org>

View File

@@ -1,7 +1,7 @@
From 6e1157f40aa2de736b79766c53f87dfe7de36bb5 Mon Sep 17 00:00:00 2001
From 0d678f81894ace50347c6223255b8263161299fe Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Sat, 31 Aug 2024 16:57:41 +0000
Subject: kbuild: Remove GCC minimal function alignment
Subject: [PATCH 04/19] kbuild: Remove GCC minimal function alignment
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
---
@@ -12,7 +12,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/Makefile
+++ b/Makefile
@@ -1055,15 +1055,8 @@ export CC_FLAGS_FPU
@@ -1058,15 +1058,8 @@ export CC_FLAGS_FPU
export CC_FLAGS_NO_FPU
ifneq ($(CONFIG_FUNCTION_ALIGNMENT),0)
@@ -30,7 +30,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
NOSTDINC_FLAGS += -nostdinc
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -1723,18 +1723,6 @@ config FUNCTION_ALIGNMENT
@@ -1734,18 +1734,6 @@ config FUNCTION_ALIGNMENT
default 4 if FUNCTION_ALIGNMENT_4B
default 0

View File

@@ -1,7 +1,7 @@
From 91f0f89ac5315be99ea1aea5d732c68311f68bda Mon Sep 17 00:00:00 2001
From 3cd805916cf93d70ef73a006ed54c737c1bb44ca Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Thu, 11 May 2023 19:41:41 +0000
Subject: XANMOD: fair: Set scheduler tunable latencies to
Subject: [PATCH 05/19] XANMOD: fair: Set scheduler tunable latencies to
unscaled
Signed-off-by: Alexandre Frade <kernel@xanmod.org>

View File

@@ -1,14 +1,14 @@
From 5a126e141df4850073a8f057cc5eeb22e8f6ea57 Mon Sep 17 00:00:00 2001
From fa6afaf41316657a46bc70c9e942051e15e837fd Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Sun, 15 Sep 2024 23:03:38 +0000
Subject: XANMOD: sched: Add yield_type sysctl to reduce or
Subject: [PATCH 06/19] XANMOD: sched: Add yield_type sysctl to reduce or
disable sched_yield
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
---
kernel/sched/syscalls.c | 16 +++++++++++++++-
kernel/sysctl.c | 10 ++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
kernel/sysctl.c | 11 +++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
--- a/kernel/sched/syscalls.c
+++ b/kernel/sched/syscalls.c
@@ -45,15 +45,16 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
rq_unlock_irq(rq, &rf);
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -97,6 +97,7 @@ static const int six_hundred_forty_kb =
#endif
@@ -80,6 +80,8 @@ EXPORT_SYMBOL_GPL(sysctl_long_vals);
#if defined(CONFIG_SYSCTL)
+extern int sysctl_sched_yield_type;
+
/* Constants used for minimum and maximum */
static const int ngroups_max = NGROUPS_MAX;
static const int cap_last_cap = CAP_LAST_CAP;
@@ -1630,6 +1631,15 @@ static const struct ctl_table kern_table
@@ -1608,6 +1610,15 @@ static const struct ctl_table kern_table
.proc_handler = proc_dointvec,
},
#endif

View File

@@ -1,7 +1,7 @@
From f91c466320368433d644a1bbaeb303b682c6b7d1 Mon Sep 17 00:00:00 2001
From 5dc5d7a3a1c25cd5d7c2079bbe56ff7c0066c76a Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Wed, 11 May 2022 18:56:51 +0000
Subject: XANMOD: block/mq-deadline: Increase write priority to
Subject: [PATCH 07/19] XANMOD: block/mq-deadline: Increase write priority to
improve responsiveness
Signed-off-by: Alexandre Frade <kernel@xanmod.org>

View File

@@ -1,7 +1,7 @@
From 99aceb32885686182f2e38ed6c19a380828249b7 Mon Sep 17 00:00:00 2001
From 83f38053e977907d085d7f27a24f1b2844a03f1c Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Thu, 6 Jan 2022 16:59:01 +0000
Subject: XANMOD: block/mq-deadline: Disable front_merges by
Subject: [PATCH 08/19] XANMOD: block/mq-deadline: Disable front_merges by
default
Signed-off-by: Alexandre Frade <kernel@xanmod.org>

View File

@@ -1,7 +1,7 @@
From e664c30c44caccc43b50a7cde90d4ad2a57faef2 Mon Sep 17 00:00:00 2001
From 6c75a84f9f89c848e76650cc66672246fa62843f Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Mon, 16 Sep 2024 15:36:01 +0000
Subject: XANMOD: block: Set rq_affinity to force complete I/O
Subject: [PATCH 09/19] XANMOD: block: Set rq_affinity to force complete I/O
requests on same CPU
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
@@ -11,7 +11,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -626,7 +626,8 @@ enum {
@@ -647,7 +647,8 @@ enum {
QUEUE_FLAG_MAX
};

View File

@@ -1,7 +1,7 @@
From 34db71a0c7669de56fb221bacb4955012f52efa8 Mon Sep 17 00:00:00 2001
From 287c275293025e956f2144e55de8cc51eec0811b Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Mon, 15 Jul 2024 04:50:34 +0000
Subject: XANMOD: blk-wbt: Set wbt_default_latency_nsec() to
Subject: [PATCH 10/19] XANMOD: blk-wbt: Set wbt_default_latency_nsec() to
2msec
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
@@ -11,7 +11,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/block/blk-wbt.c
+++ b/block/blk-wbt.c
@@ -730,14 +730,8 @@ EXPORT_SYMBOL_GPL(wbt_enable_default);
@@ -727,14 +727,8 @@ EXPORT_SYMBOL_GPL(wbt_enable_default);
u64 wbt_default_latency_nsec(struct request_queue *q)
{

View File

@@ -1,7 +1,7 @@
From 6f6902c8942b881988088c7f7d61053b41f00f0a Mon Sep 17 00:00:00 2001
From 25c1d0ad74a27ac80dbda2840eba4fe53046ed55 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Mon, 29 Jan 2018 17:26:15 +0000
Subject: XANMOD: kconfig: add 500Hz timer interrupt kernel
Subject: [PATCH 11/19] XANMOD: kconfig: add 500Hz timer interrupt kernel
config option
Signed-off-by: Alexandre Frade <kernel@xanmod.org>

View File

@@ -1,7 +1,7 @@
From 269ed90bb0c714fc237be05611c82804f81b7038 Mon Sep 17 00:00:00 2001
From 185191cd2a98629f35cb5cd6c0116ceb33635dd8 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Mon, 29 Jan 2018 16:59:22 +0000
Subject: XANMOD: dcache: cache_pressure = 50 decreases the rate
Subject: [PATCH 12/19] XANMOD: dcache: cache_pressure = 50 decreases the rate
at which VFS caches are reclaimed
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
@@ -15,8 +15,8 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
* If no ancestor relationship:
* arbitrary, since it's serialized on rename_lock
*/
-int sysctl_vfs_cache_pressure __read_mostly = 100;
+int sysctl_vfs_cache_pressure __read_mostly = 50;
EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure);
-static int sysctl_vfs_cache_pressure __read_mostly = 100;
+static int sysctl_vfs_cache_pressure __read_mostly = 50;
__cacheline_aligned_in_smp DEFINE_SEQLOCK(rename_lock);
unsigned long vfs_pressure_ratio(unsigned long val)
{

View File

@@ -1,7 +1,7 @@
From ba310efa15e3c9677121c31e79b72695bcca87df Mon Sep 17 00:00:00 2001
From 653701587608c8113dd4c941526104cea83d697e Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Sun, 28 Apr 2024 09:06:54 +0000
Subject: XANMOD: mm: Raise max_map_count default value
Subject: [PATCH 13/19] XANMOD: mm: Raise max_map_count default value
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
---
@@ -11,7 +11,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/Documentation/admin-guide/sysctl/vm.rst
+++ b/Documentation/admin-guide/sysctl/vm.rst
@@ -461,7 +461,7 @@ While most applications need less than a
@@ -470,7 +470,7 @@ While most applications need less than a
programs, particularly malloc debuggers, may consume lots of them,
e.g., up to one or two maps per allocation.
@@ -22,7 +22,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
mem_profiling
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -192,17 +192,18 @@ static inline void __mm_zero_struct_page
@@ -179,17 +179,18 @@ static inline void __mm_zero_struct_page
*
* When a program's coredump is generated as ELF format, a section is created
* per a vma. In ELF, the number of sections is represented in unsigned short.

View File

@@ -1,7 +1,7 @@
From 14ff7a682d0936937d6813105484da7b6245aabb Mon Sep 17 00:00:00 2001
From 7ede458d310744257808696e599b8e9b11333dd0 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Wed, 14 Aug 2024 18:54:53 +0000
Subject: XANMOD: mm/vmscan: Set minimum amount of swapping
Date: Fri, 30 May 2025 19:58:58 +0000
Subject: [PATCH 14/19] XANMOD: mm/vmscan: Reduce amount of swapping
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
---
@@ -15,7 +15,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
* From 0 .. MAX_SWAPPINESS. Higher means more swappy.
*/
-int vm_swappiness = 60;
+int vm_swappiness = 1;
+int vm_swappiness = 10;
#ifdef CONFIG_MEMCG

View File

@@ -1,7 +1,7 @@
From 2354e3f9a9b181ca2e150c27c57a01049b52b6f0 Mon Sep 17 00:00:00 2001
From d5b37aa9862773c0cdf95676cc15d97416311ba2 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Wed, 15 Jun 2022 17:07:29 +0000
Subject: XANMOD: sched/autogroup: Add kernel parameter and
Subject: [PATCH 15/19] XANMOD: sched/autogroup: Add kernel parameter and
config option to enable/disable autogroup feature by default
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
@@ -13,7 +13,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -511,6 +511,10 @@
@@ -507,6 +507,10 @@
Format: <int> (must be >=0)
Default: 64
@@ -24,7 +24,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
bau= [X86_UV] Enable the BAU on SGI UV. The default
behavior is to disable the BAU (i.e. bau=0).
Format: { "0" | "1" }
@@ -4059,8 +4063,6 @@
@@ -4086,8 +4090,6 @@
noapictimer [APIC,X86] Don't set up the APIC timer
@@ -35,7 +35,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
no_console_suspend
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1375,6 +1375,18 @@ config SCHED_AUTOGROUP
@@ -1374,6 +1374,18 @@ config SCHED_AUTOGROUP
desktop applications. Task group autogeneration is currently based
upon task session.

View File

@@ -1,7 +1,7 @@
From fe02f80f7e47a5ae805393bcba3dbe8c2bd74b0e Mon Sep 17 00:00:00 2001
From 475f127d322b1fe12a8f486e779ec60cc03220bc Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Tue, 31 Mar 2020 13:32:08 -0300
Subject: XANMOD: cpufreq: tunes ondemand and conservative
Subject: [PATCH 16/19] XANMOD: cpufreq: tunes ondemand and conservative
governor for performance
Signed-off-by: Alexandre Frade <kernel@xanmod.org>

View File

@@ -1,7 +1,7 @@
From f2c2f7ec98ca5bfda92d4691af46403348ae0d77 Mon Sep 17 00:00:00 2001
From ecbc96ba0c56aa4c94c1a4bcb3184cc79fad1d3d Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Mon, 16 Sep 2024 08:09:56 +0000
Subject: XANMOD: lib/kconfig.debug: disable default
Subject: [PATCH 17/19] XANMOD: lib/kconfig.debug: disable default
SYMBOLIC_ERRNAME and DEBUG_BUGVERBOSE
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
@@ -12,14 +12,14 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
--- a/fs/bcachefs/Kconfig
+++ b/fs/bcachefs/Kconfig
@@ -24,7 +24,6 @@ config BCACHEFS_FS
@@ -23,7 +23,6 @@ config BCACHEFS_FS
select XOR_BLOCKS
select XXHASH
select SRCU
- select SYMBOLIC_ERRNAME
select MIN_HEAP
select XARRAY_MULTI
help
The bcachefs filesystem - a modern, copy on write filesystem, with
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -190,7 +190,7 @@ config DYNAMIC_DEBUG_CORE

View File

@@ -1,7 +1,7 @@
From c706cd7134b55e1f188de6ea23e4b25b0497f18e Mon Sep 17 00:00:00 2001
From 3606c4614583729c8471c98d171d42ff895b38c4 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Sun, 29 May 2022 00:57:40 +0000
Subject: XANMOD: scripts/setlocalversion: remove "+" tag for git
Subject: [PATCH 18/19] XANMOD: scripts/setlocalversion: remove "+" tag for git
repo short version
Signed-off-by: Alexandre Frade <kernel@xanmod.org>

View File

@@ -1,7 +1,7 @@
From 4c8da54c3f59b0e71408b0c980ffb162fc4bb022 Mon Sep 17 00:00:00 2001
From 927fa9cd3d3b0a6f65c44d492c263d0669ec4b7e Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Mon, 24 Apr 2023 04:50:34 +0000
Subject: XANMOD: scripts/setlocalversion: Move localversion*
Subject: [PATCH 19/19] XANMOD: scripts/setlocalversion: Move localversion*
files to the end
Signed-off-by: Alexandre Frade <kernel@xanmod.org>