[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable
From: |
Joao Martins |
Subject: |
Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable |
Date: |
Tue, 12 Jul 2022 11:21:17 +0100 |
On 7/12/22 11:01, Joao Martins wrote:
> On 7/12/22 10:06, Igor Mammedov wrote:
>> On Mon, 11 Jul 2022 21:03:28 +0100
>> Joao Martins <joao.m.martins@oracle.com> wrote:
>>> On 7/11/22 16:31, Joao Martins wrote:
>>>> On 7/11/22 15:52, Joao Martins wrote:
>>>>> On 7/11/22 13:56, Igor Mammedov wrote:
>>>>>> On Fri, 1 Jul 2022 17:10:13 +0100
>>>>>> Joao Martins <joao.m.martins@oracle.com> wrote:
>>> @@ -904,6 +961,29 @@ void pc_memory_init(PCMachineState *pcms,
>>> linux_boot = (machine->kernel_filename != NULL);
>>>
>>> /*
>>> + * The HyperTransport range close to the 1T boundary is unique to AMD
>>> + * hosts with IOMMUs enabled. Restrict the ram-above-4g relocation
>>> + * to above 1T to AMD vCPUs only.
>>> + */
>>> + if (IS_AMD_CPU(&cpu->env) && x86ms->above_4g_mem_size) {
>>
>> it has the same issue as pc_max_used_gpa(), i.e.
>> x86ms->above_4g_mem_size != 0
>> doesn't mean that there isn't any memory above 4Gb nor that there aren't
>> any MMIO (sgx/cxl/pci64hole), that's was the reason we were are considering
>> max_used_gpa
>>
> Argh yes, you are right. I see it now.
>
>> I'd prefer to keep pc_max_used_gpa(),
>> idea but make it work for above cases and be more generic (i.e. not to be
>> tied to AMD only) since 'pc_max_used_gpa() < physbits'
>
> Are you also indirectly suggesting here that the check inside
> pc_set_amd_above_4g_mem_start() should be moved into pc_memory_init()
> given that it's orthogonal to this issue. ISTR that you suggested this
> at some point. If so, then there's probably very little reason to keep
> pc_set_amd_above_4g_mem_start() around.
>
Hold on, I take that back as the check is AMD specific. And I just noticed a
mistake on v6 (other versions didn't had it) specifically on this phys-bits
boundaries. Given how pc_pci_hole64_start() uses x86ms::above_4g_mem_start the
point of the pc_max_used_gpa() < physbits check inside
pc_set_amd_above_4g_mem_start() was
to test the boundaries with AMD_HT_START, not with the typical 4GiB. And
reusing pc_pci_hole64_start() introduced that problem.
So either I'll have to temporarily set x86ms::above_4g_mem_start inside
pc_max_used_gpa() based on passed @above_4g_start value.
- Re: [PATCH v6 05/10] i386/pc: factor out cxl range end to helper, (continued)
- [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Joao Martins, 2022/07/01
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Joao Martins, 2022/07/07
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Igor Mammedov, 2022/07/11
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Joao Martins, 2022/07/11
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Joao Martins, 2022/07/11
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Joao Martins, 2022/07/11
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Igor Mammedov, 2022/07/12
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Joao Martins, 2022/07/12
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable,
Joao Martins <=
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Joao Martins, 2022/07/12
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Igor Mammedov, 2022/07/14
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Joao Martins, 2022/07/14
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Joao Martins, 2022/07/14
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Igor Mammedov, 2022/07/14
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Joao Martins, 2022/07/14
- Re: [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable, Igor Mammedov, 2022/07/14
[PATCH v6 08/10] i386/pc: factor out device_memory base/size to helper, Joao Martins, 2022/07/01