]> git.pld-linux.org Git - packages/kernel.git/blob - kernel-small_fixes.patch
- up to 4.3.0; builds on x86_64; untested, so rel 0.1
[packages/kernel.git] / kernel-small_fixes.patch
1 --- linux-2.6.33/scripts/mod/modpost.c~ 2010-02-24 19:52:17.000000000 +0100
2 +++ linux-2.6.33/scripts/mod/modpost.c  2010-03-07 14:26:47.242168558 +0100
3 @@ -15,7 +15,8 @@
4  #include <stdio.h>
5  #include <ctype.h>
6  #include "modpost.h"
7 -#include "../../include/generated/autoconf.h"
8 +// PLD architectures don't use CONFIG_SYMBOL_PREFIX
9 +//#include "../../include/generated/autoconf.h"
10  #include "../../include/linux/license.h"
11  
12  /* Some toolchains use a `_' prefix for all user symbols. */
13
14 --- linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh~       2011-07-22 04:17:23.000000000 +0200
15 +++ linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh        2011-08-25 21:26:04.799150642 +0200
16 @@ -9,6 +9,12 @@
17                         $cc -print-file-name=lib${lib}.${ext} | grep -q /
18                         if [ $? -eq 0 ]; then
19                                 echo "-l${lib}"
20 +                               for libt in tinfow tinfo ; do
21 +                                       $cc -print-file-name=lib${libt}.${ext} | grep -q /
22 +                                       if [ $? -eq 0 ]; then
23 +                                               echo "-l${libt}"
24 +                                       fi
25 +                               done
26                                 exit
27                         fi
28                 done
29
30 From 7a29ac474a47eb8cf212b45917683ae89d6fa13b Mon Sep 17 00:00:00 2001
31 From: Chris Mason <clm@fb.com>
32 Date: Tue, 10 Nov 2015 10:10:34 +1100
33 Subject: xfs: give all workqueues rescuer threads
34
35 We're consistently hitting deadlocks here with XFS on recent kernels.
36 After some digging through the crash files, it looks like everyone in
37 the system is waiting for XFS to reclaim memory.
38
39 Something like this:
40
41 PID: 2733434  TASK: ffff8808cd242800  CPU: 19  COMMAND: "java"
42  #0 [ffff880019c53588] __schedule at ffffffff818c4df2
43  #1 [ffff880019c535d8] schedule at ffffffff818c5517
44  #2 [ffff880019c535f8] _xfs_log_force_lsn at ffffffff81316348
45  #3 [ffff880019c53688] xfs_log_force_lsn at ffffffff813164fb
46  #4 [ffff880019c536b8] xfs_iunpin_wait at ffffffff8130835e
47  #5 [ffff880019c53728] xfs_reclaim_inode at ffffffff812fd453
48  #6 [ffff880019c53778] xfs_reclaim_inodes_ag at ffffffff812fd8c7
49  #7 [ffff880019c53928] xfs_reclaim_inodes_nr at ffffffff812fe433
50  #8 [ffff880019c53958] xfs_fs_free_cached_objects at ffffffff8130d3b9
51  #9 [ffff880019c53968] super_cache_scan at ffffffff811a6f73
52 #10 [ffff880019c539c8] shrink_slab at ffffffff811460e6
53 #11 [ffff880019c53aa8] shrink_zone at ffffffff8114a53f
54 #12 [ffff880019c53b48] do_try_to_free_pages at ffffffff8114a8ba
55 #13 [ffff880019c53be8] try_to_free_pages at ffffffff8114ad5a
56 #14 [ffff880019c53c78] __alloc_pages_nodemask at ffffffff8113e1b8
57 #15 [ffff880019c53d88] alloc_kmem_pages_node at ffffffff8113e671
58 #16 [ffff880019c53dd8] copy_process at ffffffff8104f781
59 #17 [ffff880019c53ec8] do_fork at ffffffff8105129c
60 #18 [ffff880019c53f38] sys_clone at ffffffff810515b6
61 #19 [ffff880019c53f48] stub_clone at ffffffff818c8e4d
62
63 xfs_log_force_lsn is waiting for logs to get cleaned, which is waiting
64 for IO, which is waiting for workers to complete the IO which is waiting
65 for worker threads that don't exist yet:
66
67 PID: 2752451  TASK: ffff880bd6bdda00  CPU: 37  COMMAND: "kworker/37:1"
68  #0 [ffff8808d20abbb0] __schedule at ffffffff818c4df2
69  #1 [ffff8808d20abc00] schedule at ffffffff818c5517
70  #2 [ffff8808d20abc20] schedule_timeout at ffffffff818c7c6c
71  #3 [ffff8808d20abcc0] wait_for_completion_killable at ffffffff818c6495
72  #4 [ffff8808d20abd30] kthread_create_on_node at ffffffff8106ec82
73  #5 [ffff8808d20abdf0] create_worker at ffffffff8106752f
74  #6 [ffff8808d20abe40] worker_thread at ffffffff810699be
75  #7 [ffff8808d20abec0] kthread at ffffffff8106ef59
76  #8 [ffff8808d20abf50] ret_from_fork at ffffffff818c8ac8
77
78 I think we should be using WQ_MEM_RECLAIM to make sure this thread
79 pool makes progress when we're not able to allocate new workers.
80
81 [dchinner: make all workqueues WQ_MEM_RECLAIM]
82
83 Signed-off-by: Chris Mason <clm@fb.com>
84 Reviewed-by: Dave Chinner <dchinner@redhat.com>
85 Signed-off-by: Dave Chinner <david@fromorbit.com>
86 ---
87  fs/xfs/xfs_super.c | 7 ++++---
88  1 file changed, 4 insertions(+), 3 deletions(-)
89
90 diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
91 index 29531ec..65fbfb7 100644
92 --- a/fs/xfs/xfs_super.c
93 +++ b/fs/xfs/xfs_super.c
94 @@ -838,17 +838,18 @@ xfs_init_mount_workqueues(
95                 goto out_destroy_unwritten;
96  
97         mp->m_reclaim_workqueue = alloc_workqueue("xfs-reclaim/%s",
98 -                       WQ_FREEZABLE, 0, mp->m_fsname);
99 +                       WQ_MEM_RECLAIM|WQ_FREEZABLE, 0, mp->m_fsname);
100         if (!mp->m_reclaim_workqueue)
101                 goto out_destroy_cil;
102  
103         mp->m_log_workqueue = alloc_workqueue("xfs-log/%s",
104 -                       WQ_FREEZABLE|WQ_HIGHPRI, 0, mp->m_fsname);
105 +                       WQ_MEM_RECLAIM|WQ_FREEZABLE|WQ_HIGHPRI, 0,
106 +                       mp->m_fsname);
107         if (!mp->m_log_workqueue)
108                 goto out_destroy_reclaim;
109  
110         mp->m_eofblocks_workqueue = alloc_workqueue("xfs-eofblocks/%s",
111 -                       WQ_FREEZABLE, 0, mp->m_fsname);
112 +                       WQ_MEM_RECLAIM|WQ_FREEZABLE, 0, mp->m_fsname);
113         if (!mp->m_eofblocks_workqueue)
114                 goto out_destroy_log;
115  
116 -- 
117 cgit v0.11.2
118
This page took 0.097251 seconds and 4 git commands to generate.