summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python3/ptesthack.patch
blob: 8cfa92f9e8178f8763c3584ab00e231291b87076 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
This test hangs under 5.0 kernels onwards. It appears to be caused by the commit in the kernel:

commit 4f693b55c3d2d2239b8a0094b518a1e533cf75d5 (HEAD, refs/bisect/bad)
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Nov 27 14:42:03 2018 -0800

    tcp: implement coalescing on backlog queue
    
    In case GRO is not as efficient as it should be or disabled,
    we might have a user thread trapped in __release_sock() while
    softirq handler flood packets up to the point we have to drop.
    
    This patch balances work done from user thread and softirq,
    to give more chances to __release_sock() to complete its work
    before new packets are added the the backlog.
    
    This also helps if we receive many ACK packets, since GRO
    does not aggregate them.
    
    This patch brings ~60% throughput increase on a receiver
    without GRO, but the spectacular gain is really on
    1000x release_sock() latency reduction I have measured.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>


Reported to upstream kernel for advice: https://lore.kernel.org/netdev/85aabf9d4f41b6c57629e736993233f80a037e59.camel@linuxfoundation.org/T/#u

Disable the test for now to stop ptests hanging

Upstream-Status: Inappropriate [real cause of issue still TBD]

Index: Python-3.7.2/Lib/test/test_httplib.py
===================================================================
--- Python-3.7.2.orig/Lib/test/test_httplib.py
+++ Python-3.7.2/Lib/test/test_httplib.py
@@ -1114,6 +1114,7 @@ class BasicTest(TestCase):
         self.assertEqual(sock.file.read(), extradata) #we read to the end
         resp.close()
 
+    @unittest.skip("broken on newer kernels")
     def test_response_fileno(self):
         # Make sure fd returned by fileno is valid.
         serv = socket.socket(
Index: Python-3.7.2/Lib/test/test_ssl.py
===================================================================
--- Python-3.7.2.orig/Lib/test/test_ssl.py
+++ Python-3.7.2/Lib/test/test_ssl.py
@@ -4146,6 +4146,7 @@ class ThreadedTests(unittest.TestCase):
         self.assertEqual(sess_stat['accept'], 4)
         self.assertEqual(sess_stat['hits'], 2)
 
+    @unittest.skip("broken on newer kernels")
     def test_session_handling(self):
         client_context, server_context, hostname = testing_context()
         client_context2, _, _ = testing_context()