]> git.pld-linux.org Git - packages/kernel.git/blob - kernel-small_fixes.patch
9f696d797397ae74c77c687279a771808aed0be6
[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 --- a/Makefile  2016-11-10 20:41:43.646224629 +0100
30 +++ b/Makefile  2016-11-10 20:40:35.640323501 +0100
31 @@ -784,6 +774,9 @@
32  # Prohibit date/time macros, which would make the build non-deterministic
33  KBUILD_CFLAGS   += $(call cc-option,-Werror=date-time)
34  
35 +# enforce correct pointer usage
36 +KBUILD_CFLAGS   += $(call cc-option,-Werror=incompatible-pointer-types)
37 +
38  # use the deterministic mode of AR if available
39  KBUILD_ARFLAGS := $(call ar-option,D)
40  
41
42 From 7a29ac474a47eb8cf212b45917683ae89d6fa13b Mon Sep 17 00:00:00 2001
43 From: Chris Mason <clm@fb.com>
44 Date: Tue, 10 Nov 2015 10:10:34 +1100
45 Subject: xfs: give all workqueues rescuer threads
46
47 We're consistently hitting deadlocks here with XFS on recent kernels.
48 After some digging through the crash files, it looks like everyone in
49 the system is waiting for XFS to reclaim memory.
50
51 Something like this:
52
53 PID: 2733434  TASK: ffff8808cd242800  CPU: 19  COMMAND: "java"
54  #0 [ffff880019c53588] __schedule at ffffffff818c4df2
55  #1 [ffff880019c535d8] schedule at ffffffff818c5517
56  #2 [ffff880019c535f8] _xfs_log_force_lsn at ffffffff81316348
57  #3 [ffff880019c53688] xfs_log_force_lsn at ffffffff813164fb
58  #4 [ffff880019c536b8] xfs_iunpin_wait at ffffffff8130835e
59  #5 [ffff880019c53728] xfs_reclaim_inode at ffffffff812fd453
60  #6 [ffff880019c53778] xfs_reclaim_inodes_ag at ffffffff812fd8c7
61  #7 [ffff880019c53928] xfs_reclaim_inodes_nr at ffffffff812fe433
62  #8 [ffff880019c53958] xfs_fs_free_cached_objects at ffffffff8130d3b9
63  #9 [ffff880019c53968] super_cache_scan at ffffffff811a6f73
64 #10 [ffff880019c539c8] shrink_slab at ffffffff811460e6
65 #11 [ffff880019c53aa8] shrink_zone at ffffffff8114a53f
66 #12 [ffff880019c53b48] do_try_to_free_pages at ffffffff8114a8ba
67 #13 [ffff880019c53be8] try_to_free_pages at ffffffff8114ad5a
68 #14 [ffff880019c53c78] __alloc_pages_nodemask at ffffffff8113e1b8
69 #15 [ffff880019c53d88] alloc_kmem_pages_node at ffffffff8113e671
70 #16 [ffff880019c53dd8] copy_process at ffffffff8104f781
71 #17 [ffff880019c53ec8] do_fork at ffffffff8105129c
72 #18 [ffff880019c53f38] sys_clone at ffffffff810515b6
73 #19 [ffff880019c53f48] stub_clone at ffffffff818c8e4d
74
75 xfs_log_force_lsn is waiting for logs to get cleaned, which is waiting
76 for IO, which is waiting for workers to complete the IO which is waiting
77 for worker threads that don't exist yet:
78
79 PID: 2752451  TASK: ffff880bd6bdda00  CPU: 37  COMMAND: "kworker/37:1"
80  #0 [ffff8808d20abbb0] __schedule at ffffffff818c4df2
81  #1 [ffff8808d20abc00] schedule at ffffffff818c5517
82  #2 [ffff8808d20abc20] schedule_timeout at ffffffff818c7c6c
83  #3 [ffff8808d20abcc0] wait_for_completion_killable at ffffffff818c6495
84  #4 [ffff8808d20abd30] kthread_create_on_node at ffffffff8106ec82
85  #5 [ffff8808d20abdf0] create_worker at ffffffff8106752f
86  #6 [ffff8808d20abe40] worker_thread at ffffffff810699be
87  #7 [ffff8808d20abec0] kthread at ffffffff8106ef59
88  #8 [ffff8808d20abf50] ret_from_fork at ffffffff818c8ac8
89
90 I think we should be using WQ_MEM_RECLAIM to make sure this thread
91 pool makes progress when we're not able to allocate new workers.
92
93 [dchinner: make all workqueues WQ_MEM_RECLAIM]
94
95 Signed-off-by: Chris Mason <clm@fb.com>
96 Reviewed-by: Dave Chinner <dchinner@redhat.com>
97 Signed-off-by: Dave Chinner <david@fromorbit.com>
98 ---
99  fs/xfs/xfs_super.c | 7 ++++---
100  1 file changed, 4 insertions(+), 3 deletions(-)
101
102 diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
103 index 29531ec..65fbfb7 100644
104 --- a/fs/xfs/xfs_super.c
105 +++ b/fs/xfs/xfs_super.c
106 @@ -838,17 +838,18 @@ xfs_init_mount_workqueues(
107                 goto out_destroy_unwritten;
108  
109         mp->m_reclaim_workqueue = alloc_workqueue("xfs-reclaim/%s",
110 -                       WQ_FREEZABLE, 0, mp->m_fsname);
111 +                       WQ_MEM_RECLAIM|WQ_FREEZABLE, 0, mp->m_fsname);
112         if (!mp->m_reclaim_workqueue)
113                 goto out_destroy_cil;
114  
115         mp->m_log_workqueue = alloc_workqueue("xfs-log/%s",
116 -                       WQ_FREEZABLE|WQ_HIGHPRI, 0, mp->m_fsname);
117 +                       WQ_MEM_RECLAIM|WQ_FREEZABLE|WQ_HIGHPRI, 0,
118 +                       mp->m_fsname);
119         if (!mp->m_log_workqueue)
120                 goto out_destroy_reclaim;
121  
122         mp->m_eofblocks_workqueue = alloc_workqueue("xfs-eofblocks/%s",
123 -                       WQ_FREEZABLE, 0, mp->m_fsname);
124 +                       WQ_MEM_RECLAIM|WQ_FREEZABLE, 0, mp->m_fsname);
125         if (!mp->m_eofblocks_workqueue)
126                 goto out_destroy_log;
This page took 0.030679 seconds and 2 git commands to generate.