From: David Hildenbrand <david@redhat.com>
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-s390@vger.kernel.org, virtualization@lists.linux.dev,
linux-doc@vger.kernel.org, kvm@vger.kernel.org,
"Heiko Carstens" <hca@linux.ibm.com>,
"Vasily Gorbik" <gor@linux.ibm.com>,
"Christian Borntraeger" <borntraeger@linux.ibm.com>,
"Sven Schnelle" <svens@linux.ibm.com>,
"Thomas Huth" <thuth@redhat.com>,
"Cornelia Huck" <cohuck@redhat.com>,
"Janosch Frank" <frankja@linux.ibm.com>,
"Claudio Imbrenda" <imbrenda@linux.ibm.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
"Eugenio Pérez" <eperezma@redhat.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"Mario Casquero" <mcasquer@redhat.com>
Subject: Re: [PATCH v2 4/7] s390/physmem_info: query diag500(STORAGE LIMIT) to support QEMU/KVM memory devices
Date: Thu, 17 Oct 2024 14:07:12 +0200 [thread overview]
Message-ID: <45de474c-9af3-4d71-959f-6dbc223b432b@redhat.com> (raw)
In-Reply-To: <1c7ef09e-9ba2-488e-a249-4db3f65e077d@redhat.com>
On 17.10.24 12:00, David Hildenbrand wrote:
> On 17.10.24 11:53, Alexander Gordeev wrote:
>>>> Why search_mem_end() is not tried in case sclp_early_get_memsize() failed?
>>>
>>> Patch #3 documents that:
>>>
>>> + The storage limit does not indicate currently usable storage, it may
>>> + include holes, standby storage and areas reserved for other means, such
>>> + as memory hotplug or virtio-mem devices. Other interfaces for detecting
>>> + actually usable storage, such as SCLP, must be used in conjunction with
>>> + this subfunction.
>>
>> Yes, I read this and that exactly what causes my confusion. In this wording it
>> sounds like SCLP *or* other methods are fine to use. But then you use SCLP or
>> DIAGNOSE 260, but not memory scanning. So I am still confused ;)
>
> Well, DIAGNOSE 260 is z/VM only and DIAG 500 is KVM only. So there are
> currently not really any other reasonable ways besides SCLP.
Correction: Staring at the code again, in detect_physmem_online_ranges()
we will indeed try:
a) sclp_early_read_storage_info()
b) diag260()
But if neither works, we cannot blindly add all that memory, something is
messed up. So we'll fallback to
c) sclp_early_get_memsize()
But if none of that works, something is seriously wrong.
I will squash the following:
diff --git a/arch/s390/boot/physmem_info.c b/arch/s390/boot/physmem_info.c
index 975fc478e0e3..6ad3ac2050eb 100644
--- a/arch/s390/boot/physmem_info.c
+++ b/arch/s390/boot/physmem_info.c
@@ -214,6 +214,12 @@ void detect_physmem_online_ranges(unsigned long max_physmem_end)
return;
} else if (physmem_info.info_source == MEM_DETECT_DIAG500_STOR_LIMIT) {
max_physmem_end = 0;
+ /*
+ * If we know the storage limit but do not find any other
+ * indication of usable initial memory, something is messed
+ * up. In that case, we'll not add any physical memory so
+ * we'll run into die_oom() later.
+ */
if (!sclp_early_get_memsize(&max_physmem_end))
physmem_info.info_source = MEM_DETECT_SCLP_READ_INFO;
}
--
Cheers,
David / dhildenb
next prev parent reply other threads:[~2024-10-17 12:07 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-14 14:46 [PATCH v2 0/7] virtio-mem: s390 support David Hildenbrand
2024-10-14 14:46 ` [PATCH v2 1/7] s390/kdump: implement is_kdump_kernel() David Hildenbrand
2024-10-14 18:20 ` Heiko Carstens
2024-10-14 19:26 ` David Hildenbrand
2024-10-15 8:30 ` Heiko Carstens
2024-10-15 8:41 ` David Hildenbrand
2024-10-15 8:53 ` David Hildenbrand
2024-10-15 8:56 ` David Hildenbrand
2024-10-15 10:08 ` Heiko Carstens
2024-10-15 10:40 ` David Hildenbrand
2024-10-16 13:35 ` Alexander Egorenkov
2024-10-16 15:47 ` David Hildenbrand
2024-10-16 15:54 ` David Hildenbrand
2024-10-21 12:46 ` Alexander Egorenkov
2024-10-21 14:45 ` David Hildenbrand
2024-10-23 7:42 ` Heiko Carstens
2024-10-23 7:45 ` David Hildenbrand
2024-10-23 11:17 ` Alexander Egorenkov
2024-10-14 14:46 ` [PATCH v2 2/7] Documentation: s390-diag.rst: make diag500 a generic KVM hypercall David Hildenbrand
2024-10-14 18:04 ` Heiko Carstens
2024-10-14 19:35 ` David Hildenbrand
2024-10-15 8:12 ` Heiko Carstens
2024-10-15 8:16 ` David Hildenbrand
2024-10-15 8:21 ` Heiko Carstens
2024-10-15 8:32 ` David Hildenbrand
2024-10-15 8:46 ` Heiko Carstens
2024-10-15 8:48 ` David Hildenbrand
2024-10-14 14:46 ` [PATCH v2 3/7] Documentation: s390-diag.rst: document diag500(STORAGE LIMIT) subfunction David Hildenbrand
2024-10-14 14:46 ` [PATCH v2 4/7] s390/physmem_info: query diag500(STORAGE LIMIT) to support QEMU/KVM memory devices David Hildenbrand
2024-10-14 18:43 ` Heiko Carstens
2024-10-14 19:42 ` David Hildenbrand
2024-10-15 15:01 ` Eric Farman
2024-10-15 15:20 ` Heiko Carstens
2024-10-25 10:52 ` David Hildenbrand
2024-10-16 10:37 ` Halil Pasic
2024-10-17 7:36 ` Alexander Gordeev
2024-10-17 8:19 ` David Hildenbrand
2024-10-17 9:53 ` Alexander Gordeev
2024-10-17 10:00 ` David Hildenbrand
2024-10-17 12:07 ` David Hildenbrand [this message]
2024-10-17 14:32 ` Alexander Gordeev
2024-10-17 14:36 ` David Hildenbrand
2024-10-30 14:30 ` Alexander Gordeev
2024-10-30 14:33 ` Alexander Gordeev
2024-10-14 14:46 ` [PATCH v2 5/7] virtio-mem: s390 support David Hildenbrand
2024-10-14 18:48 ` Heiko Carstens
2024-10-14 19:16 ` David Hildenbrand
2024-10-15 8:37 ` Heiko Carstens
2024-10-21 6:33 ` Christian Borntraeger
2024-10-21 12:19 ` David Hildenbrand
2024-10-14 14:46 ` [PATCH v2 6/7] lib/Kconfig.debug: default STRICT_DEVMEM to "y" on s390 David Hildenbrand
2024-10-14 18:53 ` Heiko Carstens
2024-10-14 14:46 ` [PATCH v2 7/7] s390/sparsemem: reduce section size to 128 MiB David Hildenbrand
2024-10-14 17:53 ` Heiko Carstens
2024-10-14 19:47 ` David Hildenbrand
2024-10-14 18:56 ` [PATCH v2 0/7] virtio-mem: s390 support Heiko Carstens
2024-10-14 19:17 ` David Hildenbrand
2024-10-15 7:57 ` Claudio Imbrenda
2024-10-25 10:54 ` 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=45de474c-9af3-4d71-959f-6dbc223b432b@redhat.com \
--to=david@redhat.com \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=borntraeger@linux.ibm.com \
--cc=cohuck@redhat.com \
--cc=corbet@lwn.net \
--cc=eperezma@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=jasowang@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-s390@vger.kernel.org \
--cc=mcasquer@redhat.com \
--cc=mst@redhat.com \
--cc=svens@linux.ibm.com \
--cc=thuth@redhat.com \
--cc=virtualization@lists.linux.dev \
--cc=xuanzhuo@linux.alibaba.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).