]>
Commit | Line | Data |
---|---|---|
08aa9d92 | 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 | ||
2136e199 AM |
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 | |
7e7bde06 | 29 | |
99992ee3 AM |
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 |