Re: [kvm-unit-tests PATCH 4/5] s390x: smp: Allocate memory in DMA31 space

Janosch Frank
2022-01-14T13:18:35Z

On 1/14/22 14:16, Claudio Imbrenda wrote:
> On Fri, 14 Jan 2022 14:13:01 +0100
> Janosch Frank <frankja@linux.ibm.com> wrote:
>
>> On 1/14/22 14:01, Claudio Imbrenda wrote:
>>> On Fri, 14 Jan 2022 13:50:52 +0100
>>> Nico Boehr <nrb@linux.ibm.com> wrote:
>>>
>>>> On Fri, 2022-01-14 at 10:02 +0000, Janosch Frank wrote:
>>>>> The store status at address order works with 31 bit addresses so
>>>>> let's
>>>>> use them.
>>>>>
>>>>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
>>>>> ---
>>>>>  s390x/smp.c | 4 ++--
>>>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/s390x/smp.c b/s390x/smp.c
>>>>> index 32f128b3..c91f170b 100644
>>>>> --- a/s390x/smp.c
>>>>> +++ b/s390x/smp.c
>>>>
>>>> [...]
>>>>
>>>>> @@ -244,7 +244,7 @@ static void test_func_initial(void)
>>>>>
>>>>>  static void test_reset_initial(void)
>>>>>  {
>>>>> -       struct cpu_status *status = alloc_pages(0);
>>>>> +       struct cpu_status *status = alloc_pages_flags(1, AREA_DMA31);
>>>>
>>>> Why do we need two pages now?
>>>
>>> actually, wait.....
>>>
>>> struct cpu_status *status = alloc_pages_flags(1, AREA_DMA31);
>>> uint32_t r;
>>>
>>> report_prefix_push("store status at address");
>>> memset(status, 0, PAGE_SIZE * 2);
>>>
>>> we were allocating one page, and using 2!
>>>
>>> @Janosch do we need 1 or 2 pages?
>>>
>>
>> Have a look at the memcmp() below those lines.
>>
>> I test if the status page has changed by doing a memcmp against the
>> second page.
>
> so we do need 2 pages, and using 1 was a bug
>

We need two for the store status at address tests but only one for the
initial reset test Nico is pointing out here.