From: "Christian König" <deathsimple@vodafone.de>
To: alexdeucher@gmail.com
Cc: Alex Deucher <alexander.deucher@amd.com>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/radeon: update comments to clarify VM setup
Date: Mon, 08 Oct 2012 17:29:05 +0200 [thread overview]
Message-ID: <5072F141.3030607@vodafone.de> (raw)
In-Reply-To: <1349704206-14011-1-git-send-email-alexdeucher@gmail.com>
On 08.10.2012 15:50, alexdeucher@gmail.com wrote:
> From: Alex Deucher <alexander.deucher@amd.com>
>
> The actual set up and assignment of VM page tables
> is done on the fly in radeon_gart.c.
>
> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
One comment below, apart from that it's:
Reviewed-by: Christian König <christian.koenig@amd.com>
> ---
> drivers/gpu/drm/radeon/ni.c | 4 ++++
> drivers/gpu/drm/radeon/radeon_device.c | 3 +++
> drivers/gpu/drm/radeon/si.c | 7 ++++---
> 3 files changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
> index 48e2337..cfb9276 100644
> --- a/drivers/gpu/drm/radeon/ni.c
> +++ b/drivers/gpu/drm/radeon/ni.c
> @@ -770,6 +770,10 @@ static int cayman_pcie_gart_enable(struct radeon_device *rdev)
> WREG32(0x15DC, 0);
>
> /* empty context1-7 */
> + /* Assign the pt base to something valid for now; the pts used for
> + * the VMs are determined by the application and setup and assigned
> + * on the fly in the vm part of radeon_gart.c
> + */
> for (i = 1; i < 8; i++) {
> WREG32(VM_CONTEXT0_PAGE_TABLE_START_ADDR + (i << 2), 0);
> WREG32(VM_CONTEXT0_PAGE_TABLE_END_ADDR + (i << 2), 0);
> diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
> index 64a4264..1fad47e 100644
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -1018,6 +1018,9 @@ int radeon_device_init(struct radeon_device *rdev,
> return r;
> /* initialize vm here */
> mutex_init(&rdev->vm_manager.lock);
> + /* FIXME start with 4G, once using 2 level pt switch to full
> + * vm size space
> + */
Even with 2 level pt I don't think we want to switch to the full vm size
space.
Having 40bits address space minus 12bits offsets gives us 28bits for the
page directory/page table, assuming a 50/50 split between them we would
get 2 ^ 14 * 8 = 128kb for each page, which in my eyes is a bit much
(and that gets even worth when we get 48bits address space.....)
I would rather say to make max_pfn depend on the available memory, so
that a single application can at least map all VRAM + GART memory.
> rdev->vm_manager.max_pfn = 1 << 20;
> INIT_LIST_HEAD(&rdev->vm_manager.lru_vm);
>
> diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
> index c76825f..f272ead 100644
> --- a/drivers/gpu/drm/radeon/si.c
> +++ b/drivers/gpu/drm/radeon/si.c
> @@ -2407,12 +2407,13 @@ static int si_pcie_gart_enable(struct radeon_device *rdev)
> WREG32(0x15DC, 0);
>
> /* empty context1-15 */
> - /* FIXME start with 4G, once using 2 level pt switch to full
> - * vm size space
> - */
> /* set vm size, must be a multiple of 4 */
> WREG32(VM_CONTEXT1_PAGE_TABLE_START_ADDR, 0);
> WREG32(VM_CONTEXT1_PAGE_TABLE_END_ADDR, rdev->vm_manager.max_pfn);
> + /* Assign the pt base to something valid for now; the pts used for
> + * the VMs are determined by the application and setup and assigned
> + * on the fly in the vm part of radeon_gart.c
> + */
> for (i = 1; i < 16; i++) {
> if (i < 8)
> WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR + (i << 2),
next prev parent reply other threads:[~2012-10-08 15:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-08 13:50 [PATCH] drm/radeon: update comments to clarify VM setup alexdeucher
2012-10-08 15:29 ` Christian König [this message]
2012-10-08 15:49 ` Alex Deucher
2012-10-08 16:02 ` [PATCH 1/2] drm/radeon: update comments to clarify VM setup (v2) alexdeucher
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=5072F141.3030607@vodafone.de \
--to=deathsimple@vodafone.de \
--cc=alexander.deucher@amd.com \
--cc=alexdeucher@gmail.com \
--cc=dri-devel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.