From: Darren Salt <devspam@moreofthesa.me.uk>
To: amd-gfx@lists.freedesktop.org
Cc: Darren Salt <devspam@moreofthesa.me.uk>
Subject: [PATCH 5/7] amdgpu: limit maximum FB BAR size when attempting to enlarge
Date: Fri, 11 Dec 2020 00:55:04 +0000 [thread overview]
Message-ID: <20201211005506.4554-6-devspam@moreofthesa.me.uk> (raw)
In-Reply-To: <20201211005506.4554-1-devspam@moreofthesa.me.uk>
This is coarse, applying to all dGPUs.
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 +++++++-
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 9 +++++++++
3 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 2efce7fa6a4b..c844e2a8500a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -202,6 +202,7 @@ static const bool __maybe_unused no_system_mem_limit;
extern int amdgpu_tmz;
extern int amdgpu_reset_method;
extern bool amdgpu_resize_bar;
+extern int amdgpu_max_bar_size;
#ifdef CONFIG_DRM_AMDGPU_SI
extern int amdgpu_si_support;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 292796e9f83d..b6c5ee490cbf 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -1125,7 +1125,13 @@ int amdgpu_device_resize_fb_bar(struct amdgpu_device *adev)
rbar_size = pci_rebar_bytes_to_size(adev->gmc.real_vram_size);
current_size = pci_rebar_get_current_size(adev->pdev, 0);
- /* Skip if the BIOS has already enabled large BAR, covering the VRAM */
+ /* Skip if the BIOS has already enabled large BAR, covering the VRAM (or >= limit, if set) */
+ if (amdgpu_max_bar_size >= 0) {
+ const u32 max_size = max(amdgpu_max_bar_size, 8); /* clamp to min. 256MB */
+
+ if (rbar_size > max_size)
+ rbar_size = max_size;
+ }
if (current_size >= rbar_size)
return 0;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 6df33df74775..0542843c7d63 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -162,6 +162,7 @@ int amdgpu_tmz;
int amdgpu_reset_method = -1; /* auto */
int amdgpu_num_kcq = -1;
bool amdgpu_resize_bar = true;
+int amdgpu_max_bar_size = -1;
struct amdgpu_mgpu_info mgpu_info = {
.mutex = __MUTEX_INITIALIZER(mgpu_info.mutex),
@@ -816,6 +817,14 @@ module_param_named(num_kcq, amdgpu_num_kcq, int, 0444);
module_param_named(resize_bar, amdgpu_resize_bar, bool, 0444);
MODULE_PARM_DESC(resize_bar, "Controls whether the FB BAR should be resized (default = true).");
+/**
+ * DOC: max_bar_size (int)
+ * The maximum BAR size, in megabytes. Only affects BARs which the BIOS hasn't already made larger.
+ * Unlimited by default.
+ */
+module_param_named(max_bar_size, amdgpu_max_bar_size, int, 0444);
+MODULE_PARM_DESC(max_bar_size, "Maximum FB BAR size, log2(megabytes) (default = -1, meaning unlimited; minimum is 8 for 256MB).");
+
static const struct pci_device_id pciidlist[] = {
#ifdef CONFIG_DRM_AMDGPU_SI
{0x1002, 0x6780, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI},
--
2.20.1
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
next prev parent reply other threads:[~2020-12-11 0:55 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-11 0:54 [PATCH 0/7] amdgpu, pci: improved BAR resizing support Darren Salt
2020-12-11 0:55 ` [PATCH 1/7] pci: export PCI BAR size-reading functions Darren Salt
2020-12-11 9:07 ` Christian König
2020-12-11 0:55 ` [PATCH 2/7] pci: add BAR bytes->size helper & expose size->bytes helper Darren Salt
2020-12-11 0:55 ` [PATCH 3/7] amdgpu: resize BAR0 to the maximum available size, even if it doesn't cover VRAM (v2) Darren Salt
2020-12-11 16:42 ` Christian König
2020-12-11 17:31 ` Darren Salt
2020-12-11 19:06 ` Alex Deucher
2020-12-14 8:12 ` Christian König
2020-12-14 15:46 ` Darren Salt
2020-12-14 20:44 ` Christian König
2020-12-11 0:55 ` [PATCH 4/7] amdgpu: module option controlling whether BAR0 resizing is done Darren Salt
2020-12-11 9:09 ` Christian König
2020-12-11 0:55 ` Darren Salt [this message]
2020-12-11 0:55 ` [PATCH 6/7] pci: allow for overriding the list of advertised BAR sizes Darren Salt
2020-12-11 0:55 ` [PATCH 7/7] amdgpu: allow overriding of the GPU's list of supported " Darren Salt
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=20201211005506.4554-6-devspam@moreofthesa.me.uk \
--to=devspam@moreofthesa.me.uk \
--cc=amd-gfx@lists.freedesktop.org \
/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