-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TCP Prague Implementation for Kernel v6 #22
Comments
I'm also interested in this. I'm trying my best to compile tcp-prague and dualpi2 on a NanoPi R5S to test it in real world conditions but I'm getting nowhere, Tried Stock Arm Debian 11 and Debian 12. The only time it worked was when installing the .deb files on a virtual machine amd64 Debian 12, not even stock Debian 11 accepts the .deb files (It complains about zstd compression used in the .debs). |
I would like to share with you that the first v6 kernel is available: https://github.com/minuscat/l4steam-6.6.y That branch will soon move back to L4STeam. |
Thanks for the new version. One request. While moving the branch to the L4STeam, it would be great if you can publish the pre-built kernel version with eBPF support (i.e. enable BTF info during kernel build). Thank you |
With recent changes to dualpi2 I'm seeing a compiler warning when building with modern versions of Gcc (14) and Clang (18). This warning becomes fatal when compiling with CONFIG_WERROR=y. I was able to silence it but I'm not sure what the correct fix is: diff --git a/net/sched/sch_dualpi2.c b/net/sched/sch_dualpi2.c
index 69a26e3d22c0..3f19f122ad68 100644
--- a/net/sched/sch_dualpi2.c
+++ b/net/sched/sch_dualpi2.c
@@ -673,6 +673,11 @@ static const struct netlink_range_validation dualpi2_wc_range = {
.max = MAX_WC,
};
+#ifndef CONFIG_CC_IS_CLANG
+#pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
+#else
+#pragma GCC diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers"
+#endif
static const struct nla_policy dualpi2_policy[TCA_DUALPI2_MAX + 1] = {
[TCA_DUALPI2_LIMIT] =
NLA_POLICY_FULL_RANGE(NLA_U32, &dualpi2_nonzero_range),
|
@aidanharris This was because the const keyword there, and they are removed since my last push. Lines 662 to 674 in d0e7371
Note that this v6 branch will be constantly "rebased" to retain the same patches submitted for Linux upstreaming. If the problem persists, please share the complete compilation message. |
[ Upstream commit 9bde7c3b3ad0e1f39d6df93dd1c9caf63e19e50f ] This updates iso_sock_accept to use nested locking for the parent socket, to avoid lockdep warnings caused because the parent and child sockets are locked by the same thread: [ 41.585683] ============================================ [ 41.585688] WARNING: possible recursive locking detected [ 41.585694] 6.12.0-rc6+ #22 Not tainted [ 41.585701] -------------------------------------------- [ 41.585705] iso-tester/3139 is trying to acquire lock: [ 41.585711] ffff988b29530a58 (sk_lock-AF_BLUETOOTH) at: bt_accept_dequeue+0xe3/0x280 [bluetooth] [ 41.585905] but task is already holding lock: [ 41.585909] ffff988b29533a58 (sk_lock-AF_BLUETOOTH) at: iso_sock_accept+0x61/0x2d0 [bluetooth] [ 41.586064] other info that might help us debug this: [ 41.586069] Possible unsafe locking scenario: [ 41.586072] CPU0 [ 41.586076] ---- [ 41.586079] lock(sk_lock-AF_BLUETOOTH); [ 41.586086] lock(sk_lock-AF_BLUETOOTH); [ 41.586093] *** DEADLOCK *** [ 41.586097] May be due to missing lock nesting notation [ 41.586101] 1 lock held by iso-tester/3139: [ 41.586107] #0: ffff988b29533a58 (sk_lock-AF_BLUETOOTH) at: iso_sock_accept+0x61/0x2d0 [bluetooth] Fixes: ccf74f2 ("Bluetooth: Add BTPROTO_ISO socket type") Signed-off-by: Iulia Tanasescu <[email protected]> Signed-off-by: Luiz Augusto von Dentz <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
I'd like to include TCP Prague as a candidate in a list of TCP optimizations I am working on performance comparisons for. My current testing setup is based on the somewhat recent kernel version 6.3, but haven't found a good way to get TCP Prague enabled for that kernel version.
Due to the way this repo is set up applying the commits on top of the Linux kernel in this repo doesn't really work. Is there an existing effort to get TCP Prague into kernel version 6?
Thank you in advance!
Till
The text was updated successfully, but these errors were encountered: