From: "Christian König" <ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: "Felix Kuehling" <felix.kuehling-5C7GfCeVMHo@public.gmane.org>,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
"Christian König" <christian.koenig-5C7GfCeVMHo@public.gmane.org>
Subject: Re: [PATCH 06/10] drm/amdgpu: add amdgpu_gmc_agp_location
Date: Tue, 28 Aug 2018 13:57:54 +0200 [thread overview]
Message-ID: <4557674a-76a3-5c49-12ee-249b0328b710@gmail.com> (raw)
In-Reply-To: <995a274e-8478-79ac-bed3-61fe6655a393-5C7GfCeVMHo@public.gmane.org>
Am 27.08.2018 um 20:50 schrieb Felix Kuehling:
> On 2018-08-27 12:53 PM, Christian König wrote:
>> Helper to figure out the location of the AGP BAR.
>>
>> Signed-off-by: Christian König <christian.koenig@amd.com>
>> ---
>> drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 42 +++++++++++++++++++++++++
>> drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 5 +++
>> 2 files changed, 47 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
>> index 4331a0e25cdc..eed5352f3136 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
>> @@ -141,3 +141,45 @@ void amdgpu_gmc_gart_location(struct amdgpu_device *adev, struct amdgpu_gmc *mc)
>> dev_info(adev->dev, "GART: %lluM 0x%016llX - 0x%016llX\n",
>> mc->gart_size >> 20, mc->gart_start, mc->gart_end);
>> }
>> +
>> +/**
>> + * amdgpu_gmc_agp_location - try to find AGP location
>> + * @adev: amdgpu device structure holding all necessary informations
>> + * @mc: memory controller structure holding memory informations
>> + *
>> + * Function will place try to fina a place for the AGP BAR in the MC address
> s/fina/find
>
>> + * space.
>> + *
>> + * AGP BAR will be assigned the largest available hole in the address space.
> I'd add a comment that this function must be called after
> amdgpu_gmc_vram_location and amdgpu_gmc_gart_location.
>
>> + */
>> +void amdgpu_gmc_agp_location(struct amdgpu_device *adev, struct amdgpu_gmc *mc)
>> +{
>> + const uint64_t sixteen_gb = 1ULL << 34;
>> + u64 size_af, size_bf;
>> +
>> + if (mc->vram_start > mc->gart_start) {
>> + size_bf = mc->vram_start - mc->gart_end + 1;
>> + size_af = mc->mc_mask - mc->vram_end;
>> + } else {
>> + size_bf = mc->vram_start;
>> + size_af = mc->mc_mask - mc->gart_end;
>> + }
>> +
>> + size_bf &= ~(sixteen_gb - 1);
>> + size_af &= ~(sixteen_gb - 1);
> This is not correct. E.g. vram_end = 12GB, gart_start = 28GB, size =
> 16GB. agp_start will be rounded up to 16GB and AGP will run into the
> GART aperture.
>
> You need to align the addresses before calculating the sizes.
Ah, crap you are right. Going to fix this.
I'm really wondering if we shouldn't use "struct resource" for that
handling?
This will only get more complicated in the future when even more
apertures are enabled.
Alex what do you think?
Regards,
Christian.
>
> Regards,
> Felix
>
>> +
>> + if (size_bf > size_af) {
>> + mc->agp_start = mc->vram_start > mc->gart_start ?
>> + mc->gart_start : 0;
>> + mc->agp_size = size_bf;
>> + } else {
>> + mc->agp_start = (mc->vram_start > mc->gart_start ?
>> + mc->vram_end : mc->gart_end) + 1,
>> + mc->agp_size = size_af;
>> + }
>> +
>> + mc->agp_start = ALIGN(mc->agp_start, sixteen_gb);
>> + mc->agp_end = mc->agp_start + mc->agp_size - 1;
>> + dev_info(adev->dev, "AGP: %lluM 0x%016llX - 0x%016llX\n",
>> + mc->agp_size >> 20, mc->agp_start, mc->agp_end);
>> +}
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
>> index 72fcc9338f5e..163110fe375d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
>> @@ -81,6 +81,9 @@ struct amdgpu_gmc {
>> * about vram size near mc fb location */
>> u64 mc_vram_size;
>> u64 visible_vram_size;
>> + u64 agp_size;
>> + u64 agp_start;
>> + u64 agp_end;
>> u64 gart_size;
>> u64 gart_start;
>> u64 gart_end;
>> @@ -138,5 +141,7 @@ void amdgpu_gmc_vram_location(struct amdgpu_device *adev, struct amdgpu_gmc *mc,
>> u64 base);
>> void amdgpu_gmc_gart_location(struct amdgpu_device *adev,
>> struct amdgpu_gmc *mc);
>> +void amdgpu_gmc_agp_location(struct amdgpu_device *adev,
>> + struct amdgpu_gmc *mc);
>>
>> #endif
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
next prev parent reply other threads:[~2018-08-28 11:57 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-27 16:53 [PATCH 01/10] drm/amdgpu: use only the lower address space on GMC9 Christian König
[not found] ` <20180827165337.1651-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-08-27 16:53 ` [PATCH 02/10] drm/amdgpu: move amdgpu_device_(vram|gtt)_location Christian König
[not found] ` <20180827165337.1651-2-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-08-27 18:59 ` Alex Deucher
[not found] ` <CADnq5_OPp_EgorzVizo4LpcdJj38daZbRrF0aSRg8emouKLzEg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-28 1:56 ` Zhang, Jerry (Junwei)
2018-08-27 16:53 ` [PATCH 03/10] drm/amdgpu: fix amdgpu_gmc_gart_location a little bit Christian König
[not found] ` <20180827165337.1651-3-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-08-27 19:03 ` Alex Deucher
[not found] ` <CADnq5_OmwbjRufiL30T9EZOrhu4suRDy417xSy=BfdGmb94XJA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-29 9:45 ` Christian König
2018-08-28 1:57 ` Zhang, Jerry (Junwei)
2018-08-27 16:53 ` [PATCH 04/10] drm/amdgpu: use the smaller hole for GART Christian König
[not found] ` <20180827165337.1651-4-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-08-27 19:05 ` Alex Deucher
[not found] ` <CADnq5_OB2HV16p4_idyqowKDTZxZkJF5GmKGnHG5+DPm2=4qEQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-28 1:57 ` Zhang, Jerry (Junwei)
2018-08-27 16:53 ` [PATCH 05/10] drm/amdgpu: put GART away from VRAM Christian König
[not found] ` <20180827165337.1651-5-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-08-28 2:01 ` Zhang, Jerry (Junwei)
2018-08-27 16:53 ` [PATCH 06/10] drm/amdgpu: add amdgpu_gmc_agp_location Christian König
[not found] ` <20180827165337.1651-6-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-08-27 18:50 ` Felix Kuehling
[not found] ` <995a274e-8478-79ac-bed3-61fe6655a393-5C7GfCeVMHo@public.gmane.org>
2018-08-28 11:57 ` Christian König [this message]
2018-08-28 2:35 ` Zhang, Jerry (Junwei)
2018-08-27 16:53 ` [PATCH 07/10] drm/amdgpu: stop using gart_start as offset for the GTT domain Christian König
[not found] ` <20180827165337.1651-7-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-08-27 19:07 ` Alex Deucher
[not found] ` <CADnq5_M-ppsYV3dsUZEeHaLKyVOkVU1LsWJyyyWve0_eMD-7qw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-08-28 2:10 ` Zhang, Jerry (Junwei)
2018-08-27 16:53 ` [PATCH 08/10] drm/amdgpu: distinct between allocated GART space and GMC addr Christian König
[not found] ` <20180827165337.1651-8-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-08-27 18:57 ` Felix Kuehling
2018-08-28 2:16 ` Zhang, Jerry (Junwei)
2018-08-27 16:53 ` [PATCH 09/10] drm/amdgpu: use the AGP aperture for system memory access Christian König
[not found] ` <20180827165337.1651-9-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-08-28 2:50 ` Zhang, Jerry (Junwei)
2018-08-27 16:53 ` [PATCH 10/10] drm/amdgpu: enable AGP aperture for GMC9 Christian König
[not found] ` <20180827165337.1651-10-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-08-28 2:52 ` Zhang, Jerry (Junwei)
[not found] ` <5B84B901.5010709-5C7GfCeVMHo@public.gmane.org>
2018-08-28 11:55 ` Christian König
2018-08-27 18:58 ` [PATCH 01/10] drm/amdgpu: use only the lower address space on GMC9 Alex Deucher
2018-08-27 19:03 ` Felix Kuehling
[not found] ` <e5ef79ee-caef-9df4-aadc-bbd15b5eb9b3-5C7GfCeVMHo@public.gmane.org>
2018-08-28 4:21 ` zhoucm1
[not found] ` <75818784-27b6-21bc-274f-f29b0dd479e0-5C7GfCeVMHo@public.gmane.org>
2018-08-28 6:53 ` Christian König
[not found] ` <e21d83cd-fee8-fd99-ac02-39b5f29df92e-5C7GfCeVMHo@public.gmane.org>
2018-08-28 18:08 ` Felix Kuehling
2018-08-28 5:31 ` Xiao, Jack
[not found] ` <BYAPR12MB2662148F853F560ED08FDBCFEF0A0-ZGDeBxoHBPm6habpV69vmAdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-08-28 6:45 ` Christian König
[not found] ` <5812c9d9-00bb-9065-fefe-49d661ab9439-5C7GfCeVMHo@public.gmane.org>
2018-08-28 7:06 ` Xiao, Jack
[not found] ` <DM6PR12MB2666F87E35885284AB6B29A7EF0A0-lmeGfMZKVrEbyIpG/Z/xuAdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-08-28 11:41 ` Christian König
[not found] ` <b845f750-d6a7-c8ae-5235-7d961a3db428-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-08-28 18:12 ` Felix Kuehling
[not found] ` <491b519e-6f02-1c4c-3cc8-c0ed147a82cd-5C7GfCeVMHo@public.gmane.org>
2018-08-29 8:47 ` Christian König
[not found] ` <a2680c89-493a-2df8-f767-5d0f25e9f7ef-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-08-30 3:48 ` Xiao, Jack
[not found] ` <BYAPR12MB2662C7816E74F1C90E2E73BAEF080-ZGDeBxoHBPm6habpV69vmAdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2018-08-30 6:40 ` Christian König
2018-08-29 6:30 ` Xiao, Jack
2018-08-28 1:56 ` Zhang, Jerry (Junwei)
[not found] ` <5B84ABBC.40005-5C7GfCeVMHo@public.gmane.org>
2018-08-28 2:09 ` Zhang, Jerry (Junwei)
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=4557674a-76a3-5c49-12ee-249b0328b710@gmail.com \
--to=ckoenig.leichtzumerken-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=christian.koenig-5C7GfCeVMHo@public.gmane.org \
--cc=felix.kuehling-5C7GfCeVMHo@public.gmane.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