From: David Hildenbrand <david@redhat.com>
To: Claudio Imbrenda <imbrenda@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Nina Schoetterl-Glausch <nsg@linux.ibm.com>,
qemu-devel@nongnu.org, qemu-s390x@nongnu.org,
Paolo Bonzini <pbonzini@redhat.com>,
Thomas Huth <thuth@redhat.com>, Halil Pasic <pasic@linux.ibm.com>,
Eric Farman <farman@linux.ibm.com>,
Richard Henderson <richard.henderson@linaro.org>,
Ilya Leoshkevich <iii@linux.ibm.com>,
Janosch Frank <frankja@linux.ibm.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Cornelia Huck <cohuck@redhat.com>
Subject: Re: [PATCH v1 10/14] s390x/pv: check initial, not maximum RAM size
Date: Mon, 30 Sep 2024 15:14:52 +0200 [thread overview]
Message-ID: <1e5863d9-eeed-40d0-9aa8-e5fe586339c4@redhat.com> (raw)
In-Reply-To: <20240930133739.5fed4790@p-imbrenda.boeblingen.de.ibm.com>
On 30.09.24 13:37, Claudio Imbrenda wrote:
> On Mon, 30 Sep 2024 13:15:52 +0200
> Christian Borntraeger <borntraeger@linux.ibm.com> wrote:
>
>> Am 24.09.24 um 22:17 schrieb David Hildenbrand:
>>> On 24.09.24 18:22, Nina Schoetterl-Glausch wrote:
>>>> On Tue, 2024-09-10 at 19:58 +0200, David Hildenbrand wrote:
>>>>> We actually want to check the available RAM, not the maximum RAM size.
>>>>>
>>>>> Signed-off-by: David Hildenbrand <david@redhat.com>
>>>>
>>>> Reviewed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
>>>> Nit below.
>>>>> ---
>>>>> target/s390x/kvm/pv.c | 2 +-
>>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/target/s390x/kvm/pv.c b/target/s390x/kvm/pv.c
>>>>> index dde836d21a..424cce75ca 100644
>>>>> --- a/target/s390x/kvm/pv.c
>>>>> +++ b/target/s390x/kvm/pv.c
>>>>> @@ -133,7 +133,7 @@ bool s390_pv_vm_try_disable_async(S390CcwMachineState *ms)
>>>>> * If the feature is not present or if the VM is not larger than 2 GiB,
>>>>> * KVM_PV_ASYNC_CLEANUP_PREPARE fill fail; no point in attempting it.
>>>>> */
>>>>> - if ((MACHINE(ms)->maxram_size <= 2 * GiB) ||
>>>>> + if ((MACHINE(ms)->ram_size <= 2 * GiB) ||
>>>>> !kvm_check_extension(kvm_state, KVM_CAP_S390_PROTECTED_ASYNC_DISABLE)) {
>>>>> return false;
>>>>> }
>>>>
>>>> If I understood the kernel code right, the decision is made wrt
>>>> the size of the gmap address space, which is the same as the
>>>> limit set for the VM. So using s390_get_memory_limit would be
>>>> semantically cleaner.
>>>
>>> I wonder if we should just drop the RAM size check. Not convinced the slightly faster reboot for such small VMs is really relevant? Makes the code more complicated than really necessary.
>>
>> IIRC there have been functional issues with small guests and asnyc. Claudio, do you remember?
>
> if we are <2G, KVM allocates a segment table as the highest level table
> for the gmap ASCE. there are pointers lurking around in the reverse
> mapping prefix_tree, which point directly into segment tables.
>
> if the ASCE is region3 or higher, that's not an issue. if it's a
> segment table, then it's an issue, because those pointers will end up
> pointing into freed memory, once the old asce is freed.
>
> in short, we have to guarantee that we will never set aside a gmap ASCE
> if it is a segment table.
Thanks for the details, the kernel seems to properly safeguard against
that. For now, I'll turn it into a check against the memory limit, which
directly translates to the gmap ASCE used.
Thanks!
--
Cheers,
David / dhildenb
next prev parent reply other threads:[~2024-09-30 13:15 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-10 17:57 [PATCH v1 00/14] s390x: virtio-mem support David Hildenbrand
2024-09-10 17:57 ` [PATCH v1 01/14] s390x/s390-virtio-ccw: don't crash on weird RAM sizes David Hildenbrand
2024-09-11 11:28 ` Janosch Frank
2024-09-11 12:38 ` David Hildenbrand
2024-09-11 12:46 ` Thomas Huth
2024-09-11 12:54 ` David Hildenbrand
2024-09-11 11:58 ` Thomas Huth
2024-09-12 20:28 ` Eric Farman
2024-09-23 9:19 ` David Hildenbrand
2024-09-23 15:36 ` Thomas Huth
2024-09-23 15:39 ` David Hildenbrand
2024-09-10 17:57 ` [PATCH v1 02/14] s390x/s390-virtio-hcall: remove hypercall registration mechanism David Hildenbrand
2024-09-11 16:02 ` Thomas Huth
2024-09-10 17:57 ` [PATCH v1 03/14] s390x/s390-virtio-hcall: prepare for more diag500 hypercalls David Hildenbrand
2024-09-11 17:04 ` Thomas Huth
2024-09-12 13:22 ` Nina Schoetterl-Glausch
2024-09-17 10:45 ` David Hildenbrand
2024-09-17 10:50 ` David Hildenbrand
2024-09-17 11:02 ` David Hildenbrand
2024-09-17 12:59 ` Nina Schoetterl-Glausch
2024-09-10 17:57 ` [PATCH v1 04/14] s390x: rename s390-virtio-hcall* to s390-hypercall* David Hildenbrand
2024-09-11 17:05 ` Thomas Huth
2024-09-10 17:58 ` [PATCH v1 05/14] s390x/s390-virtio-ccw: move setting the maximum guest size from sclp to machine code David Hildenbrand
2024-09-12 8:07 ` Thomas Huth
2024-09-10 17:58 ` [PATCH v1 06/14] s390x: introduce s390_get_memory_limit() David Hildenbrand
2024-09-12 8:10 ` Thomas Huth
2024-09-16 13:20 ` Nina Schoetterl-Glausch
2024-09-17 11:23 ` David Hildenbrand
2024-09-17 12:48 ` Nina Schoetterl-Glausch
2024-09-23 9:20 ` David Hildenbrand
2024-09-10 17:58 ` [PATCH v1 07/14] s390x/s390-hypercall: introduce DIAG500 STORAGE_LIMIT David Hildenbrand
2024-09-12 8:19 ` Thomas Huth
2024-09-12 10:54 ` Janosch Frank
2024-09-27 18:05 ` Halil Pasic
2024-09-27 18:34 ` David Hildenbrand
2024-09-30 11:11 ` Christian Borntraeger
2024-09-30 12:57 ` Halil Pasic
2024-10-01 9:15 ` Christian Borntraeger
2024-10-01 13:31 ` Halil Pasic
2024-10-01 14:35 ` Christian Borntraeger
2024-09-30 13:13 ` David Hildenbrand
2024-09-10 17:58 ` [PATCH v1 08/14] s390x/s390-stattrib-kvm: prepare memory devices and sparse memory layouts David Hildenbrand
2024-09-10 17:58 ` [PATCH v1 09/14] s390x/s390-skeys: prepare for memory devices David Hildenbrand
2024-09-10 17:58 ` [PATCH v1 10/14] s390x/pv: check initial, not maximum RAM size David Hildenbrand
2024-09-24 16:22 ` Nina Schoetterl-Glausch
2024-09-24 20:17 ` David Hildenbrand
2024-09-26 9:04 ` David Hildenbrand
2024-09-30 11:15 ` Christian Borntraeger
2024-09-30 11:37 ` Claudio Imbrenda
2024-09-30 13:14 ` David Hildenbrand [this message]
2024-09-30 13:26 ` Claudio Imbrenda
2024-09-10 17:58 ` [PATCH v1 11/14] s390x/s390-virtio-ccw: prepare for memory devices David Hildenbrand
2024-09-10 17:58 ` [PATCH v1 12/14] s390x: introduce s390_get_max_pagesize() David Hildenbrand
2024-09-26 10:22 ` David Hildenbrand
2024-09-10 17:58 ` [PATCH v1 13/14] s390x/virtio-ccw: add support for virtio based memory devices David Hildenbrand
2024-09-10 17:58 ` [PATCH v1 14/14] s390x: virtio-mem support David Hildenbrand
2024-09-10 18:33 ` [PATCH v1 00/14] " Michael S. Tsirkin
2024-09-10 18:45 ` David Hildenbrand
2024-09-11 11:49 ` Janosch Frank
2024-09-11 12:28 ` David Hildenbrand
2024-09-11 14:04 ` Michael S. Tsirkin
2024-09-11 15:38 ` Cornelia Huck
2024-09-11 19:09 ` David Hildenbrand
2024-09-27 18:20 ` Halil Pasic
2024-09-27 18:29 ` David Hildenbrand
2024-09-30 21:49 ` Halil Pasic
2024-10-01 8:54 ` David Hildenbrand
2024-10-02 9:04 ` Janosch Frank
2024-10-07 12:23 ` David Hildenbrand
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=1e5863d9-eeed-40d0-9aa8-e5fe586339c4@redhat.com \
--to=david@redhat.com \
--cc=borntraeger@linux.ibm.com \
--cc=cohuck@redhat.com \
--cc=farman@linux.ibm.com \
--cc=frankja@linux.ibm.com \
--cc=iii@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=mst@redhat.com \
--cc=nsg@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
/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;
as well as URLs for NNTP newsgroup(s).