On Fri, 2016-06-03 at 14:50 -0600, Logan Gunthorpe wrote:
> On my system, dma_alloc_coherent won't produce memory anywhere
> near the size of the BAR. So I needed a way to limit this.
> 
> It's pretty much copied straight from ntb_transport.
> 
> Signed-off-by: Logan Gunthorpe <log...@deltatee.com>
Acked-by: Dave Jiang <dave.ji...@intel.com>

> ---
>  drivers/ntb/test/ntb_perf.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/ntb/test/ntb_perf.c
> b/drivers/ntb/test/ntb_perf.c
> index 8dfce9c..30635c8 100644
> --- a/drivers/ntb/test/ntb_perf.c
> +++ b/drivers/ntb/test/ntb_perf.c
> @@ -83,6 +83,10 @@ MODULE_DESCRIPTION(DRIVER_DESCRIPTION);
>  
>  static struct dentry *perf_debugfs_dir;
>  
> +static unsigned long max_mw_size;
> +module_param(max_mw_size, ulong, 0644);
> +MODULE_PARM_DESC(max_mw_size, "Limit size of large memory windows");
> +
>  static unsigned int seg_order = 19; /* 512K */
>  module_param(seg_order, uint, 0644);
>  MODULE_PARM_DESC(seg_order, "size order [n^2] of buffer segment for
> testing");
> @@ -472,6 +476,10 @@ static void perf_link_work(struct work_struct
> *work)
>       dev_dbg(&perf->ntb->pdev->dev, "%s called\n", __func__);
>  
>       size = perf->mw.phys_size;
> +
> +     if (max_mw_size && size > max_mw_size)
> +             size = max_mw_size;
> +
>       ntb_peer_spad_write(ndev, MW_SZ_HIGH, upper_32_bits(size));
>       ntb_peer_spad_write(ndev, MW_SZ_LOW, lower_32_bits(size));
>       ntb_peer_spad_write(ndev, VERSION, PERF_VERSION);
> -- 
> 2.1.4
> 

Reply via email to