aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-07-14 14:50:52 -0400
committerDan Williams <dan.j.williams@intel.com>2009-08-29 22:09:26 -0400
commitd6f38f31f3ad4b0dd33fe970988f14e7c65ef702 (patch)
tree0b881c68e676376f2f0eccb2eb377dc3561d395f /drivers/md/raid5.h
parent36d1c6476be51101778882897b315bd928c8c7b5 (diff)
md/raid5,6: add percpu scribble region for buffer lists
Use percpu memory rather than stack for storing the buffer lists used in parity calculations. Include space for dma address conversions and pass that to async_tx via the async_submit_ctl.scribble pointer. [ Impact: move memory pressure from stack to heap ] Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/md/raid5.h')
-rw-r--r--drivers/md/raid5.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
index 07a7a4102f05..e7baabffee86 100644
--- a/drivers/md/raid5.h
+++ b/drivers/md/raid5.h
@@ -386,7 +386,15 @@ struct raid5_private_data {
386 /* per cpu variables */ 386 /* per cpu variables */
387 struct raid5_percpu { 387 struct raid5_percpu {
388 struct page *spare_page; /* Used when checking P/Q in raid6 */ 388 struct page *spare_page; /* Used when checking P/Q in raid6 */
389 void *scribble; /* space for constructing buffer
390 * lists and performing address
391 * conversions
392 */
389 } *percpu; 393 } *percpu;
394 size_t scribble_len; /* size of scribble region must be
395 * associated with conf to handle
396 * cpu hotplug while reshaping
397 */
390#ifdef CONFIG_HOTPLUG_CPU 398#ifdef CONFIG_HOTPLUG_CPU
391 struct notifier_block cpu_notify; 399 struct notifier_block cpu_notify;
392#endif 400#endif