diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-07-14 11:50:52 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-08-29 19:09:26 -0700 |
commit | d6f38f31f3ad4b0dd33fe970988f14e7c65ef702 (patch) | |
tree | 0b881c68e676376f2f0eccb2eb377dc3561d395f /drivers/md/raid5.h | |
parent | 36d1c6476be51101778882897b315bd928c8c7b5 (diff) | |
download | op-kernel-dev-d6f38f31f3ad4b0dd33fe970988f14e7c65ef702.zip op-kernel-dev-d6f38f31f3ad4b0dd33fe970988f14e7c65ef702.tar.gz |
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.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h index 07a7a41..e7baabf 100644 --- a/drivers/md/raid5.h +++ b/drivers/md/raid5.h @@ -386,7 +386,15 @@ struct raid5_private_data { /* per cpu variables */ struct raid5_percpu { struct page *spare_page; /* Used when checking P/Q in raid6 */ + void *scribble; /* space for constructing buffer + * lists and performing address + * conversions + */ } *percpu; + size_t scribble_len; /* size of scribble region must be + * associated with conf to handle + * cpu hotplug while reshaping + */ #ifdef CONFIG_HOTPLUG_CPU struct notifier_block cpu_notify; #endif |