On Mon, 10 Feb 2020 13:14:03 +0100 Christian Borntraeger <borntraeger@xxxxxxxxxx> wrote: > On 10.02.20 12:54, Cornelia Huck wrote: > > On Fri, 7 Feb 2020 06:39:26 -0500 > > Christian Borntraeger <borntraeger@xxxxxxxxxx> wrote: > > > >> From: Vasily Gorbik <gor@xxxxxxxxxxxxx> > >> > >> Add "prot_virt" command line option which controls if the kernel > >> protected VMs support is enabled at early boot time. This has to be > >> done early, because it needs large amounts of memory and will disable > >> some features like STP time sync for the lpar. > >> > >> Extend ultravisor info definitions and expose it via uv_info struct > >> filled in during startup. > >> > >> Signed-off-by: Vasily Gorbik <gor@xxxxxxxxxxxxx> > >> [borntraeger@xxxxxxxxxx: patch merging, splitting, fixing] > >> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> > >> --- > >> .../admin-guide/kernel-parameters.txt | 5 ++ > >> arch/s390/boot/Makefile | 2 +- > >> arch/s390/boot/uv.c | 21 +++++++- > >> arch/s390/include/asm/uv.h | 46 +++++++++++++++-- > >> arch/s390/kernel/Makefile | 1 + > >> arch/s390/kernel/setup.c | 4 -- > >> arch/s390/kernel/uv.c | 49 +++++++++++++++++++ > >> 7 files changed, 119 insertions(+), 9 deletions(-) > >> create mode 100644 arch/s390/kernel/uv.c > > > > (...) > > > >> diff --git a/arch/s390/boot/Makefile b/arch/s390/boot/Makefile > >> index e2c47d3a1c89..30f1811540c5 100644 > >> --- a/arch/s390/boot/Makefile > >> +++ b/arch/s390/boot/Makefile > >> @@ -37,7 +37,7 @@ CFLAGS_sclp_early_core.o += -I$(srctree)/drivers/s390/char > >> obj-y := head.o als.o startup.o mem_detect.o ipl_parm.o ipl_report.o > >> obj-y += string.o ebcdic.o sclp_early_core.o mem.o ipl_vmparm.o cmdline.o > >> obj-y += version.o pgm_check_info.o ctype.o text_dma.o > >> -obj-$(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) += uv.o > >> +obj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE)) += uv.o > > > > I'm wondering why you're checking CONFIG_PGSTE here... > > It was just simpler for a Makefile, because CONFIG_KVM can be m or y. > PGSTE is always y when CONFIG_KVM is set. Suggestions welcome. My only complaint is that it is a bit non-obvious at a glance... but yeah, I don't have a better suggestion, either. > > [...] > > >> + prot_virt_host = 0; > >> + pr_info("Running as protected virtualization guest."); > >> + } > >> + > >> + if (prot_virt_host && !test_facility(158)) { > >> + prot_virt_host = 0; > >> + pr_info("The ultravisor call facility is not available."); > >> + } > > > > What about prefixing these two with 'prot_virt:'? It seems the name is > > settled now? > > It is not settled, but I can certainly do something like > > #define KMSG_COMPONENT "prot_virt" > #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt > > > to prefix all pr_* calls in this file. That would make it easier to associate any messages (especially the second message here) with this feature, I think.