aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/appldata/appldata_os.c
diff options
context:
space:
mode:
authorGerald Schaefer <geraldsc@de.ibm.com>2005-06-04 18:43:33 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-04 20:13:00 -0400
commitf26d583e41aedad8159acf9533fa287d7209dfbf (patch)
tree215ef8ae71cd2b6bb6fec824d1db4a9f39db97ca /arch/s390/appldata/appldata_os.c
parent595bf2aacae96d0f87352a1ff5476b79e52e212f (diff)
[PATCH] s390: deadlock in appldata
The system might hang when using appldata_mem with high I/O traffic and a large number of devices. The spinlocks bdev_lock and swaplock are acquired via calls to si_meminfo() and si_swapinfo() from a tasklet, i.e. interrupt context, which can lead to a deadlock. Replace tasklet with work queue. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/s390/appldata/appldata_os.c')
-rw-r--r--arch/s390/appldata/appldata_os.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/appldata/appldata_os.c b/arch/s390/appldata/appldata_os.c
index b83f07484551..e0a476bf4fd6 100644
--- a/arch/s390/appldata/appldata_os.c
+++ b/arch/s390/appldata/appldata_os.c
@@ -49,7 +49,7 @@ struct appldata_os_per_cpu {
49 u32 per_cpu_softirq; /* ... spent in softirqs */ 49 u32 per_cpu_softirq; /* ... spent in softirqs */
50 u32 per_cpu_iowait; /* ... spent while waiting for I/O */ 50 u32 per_cpu_iowait; /* ... spent while waiting for I/O */
51// <-- New in 2.6 51// <-- New in 2.6
52}; 52} __attribute__((packed));
53 53
54struct appldata_os_data { 54struct appldata_os_data {
55 u64 timestamp; 55 u64 timestamp;
@@ -75,7 +75,7 @@ struct appldata_os_data {
75 75
76 /* per cpu data */ 76 /* per cpu data */
77 struct appldata_os_per_cpu os_cpu[0]; 77 struct appldata_os_per_cpu os_cpu[0];
78}; 78} __attribute__((packed));
79 79
80static struct appldata_os_data *appldata_os_data; 80static struct appldata_os_data *appldata_os_data;
81 81