From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Vishal Verma <vishal.l.verma@intel.com>,
Dan Williams <dan.j.williams@intel.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.19 55/67] tools/testing/nvdimm: Align test resources to 128M
Date: Thu, 20 Dec 2018 10:19:07 +0100 [thread overview]
Message-ID: <20181220085905.725572376@linuxfoundation.org> (raw)
In-Reply-To: <20181220085903.562090333@linuxfoundation.org>
4.19-stable review patch. If anyone has any objections, please let me know.
------------------
[ Upstream commit e3f5df762d4a6ef6326c3c09bc9f89ea8a2eab2c ]
In preparation for libnvdimm growing new restrictions to detect section
conflicts between persistent memory regions, enable nfit_test to
allocate aligned resources. Use a gen_pool to allocate nfit_test's fake
resources in a separate address space from the virtual translation of
the same.
Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
Tested-by: Vishal Verma <vishal.l.verma@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
tools/testing/nvdimm/test/nfit.c | 35 ++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
diff --git a/tools/testing/nvdimm/test/nfit.c b/tools/testing/nvdimm/test/nfit.c
index ec50d2a95076..fa763dbfdad7 100644
--- a/tools/testing/nvdimm/test/nfit.c
+++ b/tools/testing/nvdimm/test/nfit.c
@@ -15,6 +15,7 @@
#include <linux/dma-mapping.h>
#include <linux/workqueue.h>
#include <linux/libnvdimm.h>
+#include <linux/genalloc.h>
#include <linux/vmalloc.h>
#include <linux/device.h>
#include <linux/module.h>
@@ -213,6 +214,8 @@ struct nfit_test {
static struct workqueue_struct *nfit_wq;
+static struct gen_pool *nfit_pool;
+
static struct nfit_test *to_nfit_test(struct device *dev)
{
struct platform_device *pdev = to_platform_device(dev);
@@ -1130,6 +1133,9 @@ static void release_nfit_res(void *data)
list_del(&nfit_res->list);
spin_unlock(&nfit_test_lock);
+ if (resource_size(&nfit_res->res) >= DIMM_SIZE)
+ gen_pool_free(nfit_pool, nfit_res->res.start,
+ resource_size(&nfit_res->res));
vfree(nfit_res->buf);
kfree(nfit_res);
}
@@ -1142,7 +1148,7 @@ static void *__test_alloc(struct nfit_test *t, size_t size, dma_addr_t *dma,
GFP_KERNEL);
int rc;
- if (!buf || !nfit_res)
+ if (!buf || !nfit_res || !*dma)
goto err;
rc = devm_add_action(dev, release_nfit_res, nfit_res);
if (rc)
@@ -1162,6 +1168,8 @@ static void *__test_alloc(struct nfit_test *t, size_t size, dma_addr_t *dma,
return nfit_res->buf;
err:
+ if (*dma && size >= DIMM_SIZE)
+ gen_pool_free(nfit_pool, *dma, size);
if (buf)
vfree(buf);
kfree(nfit_res);
@@ -1170,9 +1178,16 @@ static void *__test_alloc(struct nfit_test *t, size_t size, dma_addr_t *dma,
static void *test_alloc(struct nfit_test *t, size_t size, dma_addr_t *dma)
{
+ struct genpool_data_align data = {
+ .align = SZ_128M,
+ };
void *buf = vmalloc(size);
- *dma = (unsigned long) buf;
+ if (size >= DIMM_SIZE)
+ *dma = gen_pool_alloc_algo(nfit_pool, size,
+ gen_pool_first_fit_align, &data);
+ else
+ *dma = (unsigned long) buf;
return __test_alloc(t, size, dma, buf);
}
@@ -2837,6 +2852,17 @@ static __init int nfit_test_init(void)
goto err_register;
}
+ nfit_pool = gen_pool_create(ilog2(SZ_4M), NUMA_NO_NODE);
+ if (!nfit_pool) {
+ rc = -ENOMEM;
+ goto err_register;
+ }
+
+ if (gen_pool_add(nfit_pool, SZ_4G, SZ_4G, NUMA_NO_NODE)) {
+ rc = -ENOMEM;
+ goto err_register;
+ }
+
for (i = 0; i < NUM_NFITS; i++) {
struct nfit_test *nfit_test;
struct platform_device *pdev;
@@ -2892,6 +2918,9 @@ static __init int nfit_test_init(void)
return 0;
err_register:
+ if (nfit_pool)
+ gen_pool_destroy(nfit_pool);
+
destroy_workqueue(nfit_wq);
for (i = 0; i < NUM_NFITS; i++)
if (instances[i])
@@ -2915,6 +2944,8 @@ static __exit void nfit_test_exit(void)
platform_driver_unregister(&nfit_test_driver);
nfit_test_teardown();
+ gen_pool_destroy(nfit_pool);
+
for (i = 0; i < NUM_NFITS; i++)
put_device(&instances[i]->pdev.dev);
class_destroy(nfit_test_dimm);
--
2.19.1
next prev parent reply other threads:[~2018-12-20 9:19 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-20 9:18 [PATCH 4.19 00/67] 4.19.12-stable review Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 01/67] locking/qspinlock: Re-order code Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 02/67] locking/qspinlock, x86: Provide liveness guarantee Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 03/67] IB/hfi1: Remove race conditions in user_sdma send path Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 04/67] mac80211_hwsim: fix module init error paths for netlink Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 05/67] Input: hyper-v - fix wakeup from suspend-to-idle Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 06/67] i2c: rcar: check bus state before reinitializing Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 07/67] scsi: libiscsi: Fix NULL pointer dereference in iscsi_eh_session_reset Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 08/67] scsi: vmw_pscsi: Rearrange code to avoid multiple calls to free_irq during unload Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 09/67] tools/bpf: fix two test_btf unit test cases Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 10/67] tools/bpf: add addition type tests to test_btf Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 11/67] net: ethernet: ave: Replace NET_IP_ALIGN with AVE_FRAME_HEADROOM Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 12/67] drm/amd/display: Fix 6x4K displays light-up on Vega20 (v2) Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 13/67] x86/earlyprintk/efi: Fix infinite loop on some screen widths Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 14/67] drm/msm: Fix task dump in gpu recovery Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 15/67] drm/msm/gpu: Fix a couple memory leaks in debugfs Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 16/67] drm/msm: fix handling of cmdstream offset Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 17/67] drm/msm/dsi: configure VCO rate for 10nm PLL driver Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 18/67] drm/msm: Grab a vblank reference when waiting for commit_done Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 19/67] drm/ttm: fix LRU handling in ttm_buffer_object_transfer Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 20/67] drm/amdgpu: wait for IB test on first device open Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 21/67] ARC: io.h: Implement reads{x}()/writes{x}() Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 22/67] net: stmmac: Move debugfs init/exit to ->probe()/->remove() Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 23/67] net: aquantia: fix rx checksum offload bits Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 24/67] bonding: fix 802.3ad state sent to partner when unbinding slave Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 25/67] bpf: Fix verifier log string check for bad alignment Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 26/67] liquidio: read sc->iq_no before release sc Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 27/67] nfs: dont dirty kernel pages read by direct-io Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 28/67] SUNRPC: Fix a potential race in xprt_connect() Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 29/67] sbus: char: add of_node_put() Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 30/67] drivers/sbus/char: " Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 31/67] drivers/tty: add missing of_node_put() Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 32/67] ide: pmac: add of_node_put() Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 33/67] drm/msm/hdmi: Enable HPD after HDMI IRQ is set up Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 34/67] drm/msm: dpu: Dont set legacy plane->crtc pointer Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 35/67] drm/msm: dpu: Fix "WARNING: invalid free of devm_ allocated data" Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 36/67] drm/msm: Fix error return checking Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 37/67] drm/amd/powerplay: issue pre-display settings for display change event Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 38/67] clk: mvebu: Off by one bugs in cp110_of_clk_get() Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 39/67] clk: mmp: Off by one in mmp_clk_add() Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 40/67] Input: synaptics - enable SMBus for HP 15-ay000 Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 41/67] Input: omap-keypad - fix keyboard debounce configuration Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 42/67] libata: whitelist all SAMSUNG MZ7KM* solid-state disks Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 43/67] macvlan: return correct error value Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 44/67] mv88e6060: disable hardware level MAC learning Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 45/67] net/mlx4_en: Fix build break when CONFIG_INET is off Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 46/67] bpf: check pending signals while verifying programs Greg Kroah-Hartman
2018-12-20 9:18 ` [PATCH 4.19 47/67] ARM: 8814/1: mm: improve/fix ARM v7_dma_inv_range() unaligned address handling Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 48/67] ARM: 8815/1: V7M: align v7m_dma_inv_range() with v7 counterpart Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 49/67] ARM: 8816/1: dma-mapping: fix potential uninitialized return Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 50/67] ethernet: fman: fix wrong of_node_put() in probe function Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 51/67] thermal: armada: fix legacy validity test sense Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 52/67] net: mvpp2: fix detection of 10G SFP modules Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 53/67] net: mvpp2: fix phylink handling of invalid PHY modes Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 54/67] drm/amdgpu/vcn: Update vcn.cur_state during suspend Greg Kroah-Hartman
2018-12-20 9:19 ` Greg Kroah-Hartman [this message]
2018-12-20 9:19 ` [PATCH 4.19 56/67] acpi/nfit: Fix user-initiated ARS to be "ARS-long" rather than "ARS-short" Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 57/67] drm/ast: Fix connector leak during driver unload Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 58/67] cifs: In Kconfig CONFIG_CIFS_POSIX needs depends on legacy (insecure cifs) Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 59/67] vhost/vsock: fix reset orphans race with close timeout Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 60/67] mlxsw: spectrum_switchdev: Fix VLAN device deletion via ioctl Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 61/67] i2c: axxia: properly handle master timeout Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 62/67] i2c: scmi: Fix probe error on devices with an empty SMB0001 ACPI device node Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 63/67] i2c: uniphier: fix violation of tLOW requirement for Fast-mode Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 64/67] i2c: uniphier-f: " Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 65/67] nvme: validate controller state before rescheduling keep alive Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 66/67] nvmet-rdma: fix response use after free Greg Kroah-Hartman
2018-12-20 9:19 ` [PATCH 4.19 67/67] Btrfs: fix missing delayed iputs on unmount Greg Kroah-Hartman
2018-12-20 15:03 ` [PATCH 4.19 00/67] 4.19.12-stable review Naresh Kamboju
2018-12-21 7:10 ` Greg Kroah-Hartman
2018-12-20 18:29 ` Guenter Roeck
2018-12-21 7:10 ` Greg Kroah-Hartman
2018-12-20 22:48 ` shuah
2018-12-21 7:09 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181220085905.725572376@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=dan.j.williams@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=vishal.l.verma@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).