[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 5340eb: s390-ccw: refactor boot map table cod
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] 5340eb: s390-ccw: refactor boot map table code |
Date: |
Thu, 01 Mar 2018 10:46:11 -0800 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 5340eb072ffc36ccd33c67dcea0d5c939b492e98
https://github.com/qemu/qemu/commit/5340eb072ffc36ccd33c67dcea0d5c939b492e98
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M pc-bios/s390-ccw/bootmap.c
M pc-bios/s390-ccw/bootmap.h
Log Message:
-----------
s390-ccw: refactor boot map table code
Some ECKD bootmap code was using structs designed for SCSI.
Even though this works, it confuses readability. Add a new
BootMapTable struct to assist with readability in bootmap
entry code. Also:
- replace ScsiMbr in ECKD code with appropriate structs
- fix read_block messages to reflect BootMapTable
- fixup ipl_scsi to use BootMapTable (referred to as Program Table)
- defined value for maximum table entries
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: 80beedcc387062a71c6563dfae0f607b396c2bfb
https://github.com/qemu/qemu/commit/80beedcc387062a71c6563dfae0f607b396c2bfb
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M pc-bios/s390-ccw/bootmap.c
M pc-bios/s390-ccw/bootmap.h
Log Message:
-----------
s390-ccw: refactor eckd_block_num to use CHS
Add new cylinder/head/sector struct. Use it to calculate
eckd block numbers instead of a BootMapPointer (which used
eckd chs anyway).
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: ac4c5958b1e6165971303cb02598b190485481f5
https://github.com/qemu/qemu/commit/ac4c5958b1e6165971303cb02598b190485481f5
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M pc-bios/s390-ccw/bootmap.c
M pc-bios/s390-ccw/bootmap.h
Log Message:
-----------
s390-ccw: refactor IPL structs
ECKD DASDs have different IPL structures for CDL and LDL
formats. The current Ipl1 and Ipl2 structs follow the CDL
format, so we prepend "EckdCdl" to them. Boot info for LDL
has been moved to a new struct: EckdLdlIpl1.
Signed-off-by: Collin L. Walling <address@hidden>
Acked-by: Janosch Frank <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: fc0e208774364c2a8013aa028b742a8dde6d2c2b
https://github.com/qemu/qemu/commit/fc0e208774364c2a8013aa028b742a8dde6d2c2b
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M pc-bios/s390-ccw/Makefile
M pc-bios/s390-ccw/bootmap.c
M pc-bios/s390-ccw/bootmap.h
A pc-bios/s390-ccw/libc.c
M pc-bios/s390-ccw/libc.h
M pc-bios/s390-ccw/main.c
M pc-bios/s390-ccw/sclp.c
Log Message:
-----------
s390-ccw: update libc
Moved:
memcmp from bootmap.h to libc.h (renamed from _memcmp)
strlen from sclp.c to libc.h (renamed from _strlen)
Added C standard functions:
isdigit
Added non C-standard function:
uitoa
atoui
Signed-off-by: Collin L. Walling <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Reviewed-by: Janosch Frank <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: 118ee80f7921e8b062c445ac3986ee11409520d0
https://github.com/qemu/qemu/commit/118ee80f7921e8b062c445ac3986ee11409520d0
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M hw/s390x/ipl.c
M hw/s390x/ipl.h
M pc-bios/s390-ccw/iplb.h
M pc-bios/s390-ccw/main.c
Log Message:
-----------
s390-ccw: move auxiliary IPL data to separate location
The s390-ccw firmware needs some information in support of the
boot process which is not available on the native machine.
Examples are the netboot firmware load address and now the
boot menu parameters.
While storing that data in unused fields of the IPL parameter block
works, that approach could create problems if the parameter block
definition should change in the future. Because then a guest could
overwrite these fields using the set IPLB diagnose.
In fact the data in question is of more global nature and not really
tied to an IPL device, so separating it is rather logical.
This commit introduces a new structure to hold firmware relevant
IPL parameters set by QEMU. The data is stored at location 204 (dec)
and can contain up to 7 32-bit words. This area is available to
programming in the z/Architecture Principles of Operation and
can thus safely be used by the firmware until the IPL has completed.
Signed-off-by: Viktor Mihajlovski <address@hidden>
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
[thuth: fixed "4 + 8 * n" comment]
Signed-off-by: Thomas Huth <address@hidden>
Commit: 26b2a2a49171ff44286722681f5aebdfee23e9cf
https://github.com/qemu/qemu/commit/26b2a2a49171ff44286722681f5aebdfee23e9cf
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M hw/s390x/ipl.c
M hw/s390x/ipl.h
M pc-bios/s390-ccw/iplb.h
Log Message:
-----------
s390-ccw: parse and set boot menu options
Set boot menu options for an s390 guest and store them in
the iplb. These options are set via the QEMU command line
option:
-boot menu=on|off[,splash-time=X]
or via the libvirt domain xml:
<os>
<bootmenu enable='yes|no' timeout='X'/>
</os>
Where X represents some positive integer representing
milliseconds.
Any value set for loadparm will override all boot menu options.
If loadparm=PROMPT, then the menu will be enabled without a
timeout.
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Janosch Frank <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: 9eaa654ab327b54901f398440258be766c327953
https://github.com/qemu/qemu/commit/9eaa654ab327b54901f398440258be766c327953
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M pc-bios/s390-ccw/Makefile
M pc-bios/s390-ccw/main.c
A pc-bios/s390-ccw/menu.c
M pc-bios/s390-ccw/s390-ccw.h
Log Message:
-----------
s390-ccw: set up interactive boot menu parameters
Reads boot menu flag and timeout values from the iplb and
sets the respective fields for the menu.
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: ba831b25262aa3d0c6d5eb0cd530487d3cb05493
https://github.com/qemu/qemu/commit/ba831b25262aa3d0c6d5eb0cd530487d3cb05493
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M pc-bios/s390-ccw/bootmap.c
M pc-bios/s390-ccw/bootmap.h
M pc-bios/s390-ccw/menu.c
M pc-bios/s390-ccw/s390-ccw.h
Log Message:
-----------
s390-ccw: read stage2 boot loader data to find menu
Read the stage2 boot loader data block-by-block. We scan the
current block for the string "zIPL" to detect the start of the
boot menu banner. We then load the adjacent blocks (previous
block and next block) to account for the possibility of menu
data spanning multiple blocks.
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: f7178910845a73fcb69642476c3222af842e25e9
https://github.com/qemu/qemu/commit/f7178910845a73fcb69642476c3222af842e25e9
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M pc-bios/s390-ccw/menu.c
Log Message:
-----------
s390-ccw: print zipl boot menu
When the boot menu options are present and the guest's
disk has been configured by the zipl tool, then the user
will be presented with an interactive boot menu with
labeled entries. An example of what the menu might look
like:
zIPL v1.37.1-build-20170714 interactive boot menu.
0. default (linux-4.13.0)
1. linux-4.13.0
2. performance
3. kvm
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: ff5dbf1bc3b81248f4f1c253b586491bc8daeda5
https://github.com/qemu/qemu/commit/ff5dbf1bc3b81248f4f1c253b586491bc8daeda5
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M pc-bios/s390-ccw/menu.c
M pc-bios/s390-ccw/s390-ccw.h
M pc-bios/s390-ccw/sclp.c
M pc-bios/s390-ccw/virtio.c
Log Message:
-----------
s390-ccw: read user input for boot index via the SCLP console
Implements an sclp_read function to capture input from the
console and a wrapper function that handles parsing certain
characters and adding input to a buffer. The input is checked
for any erroneous values and is handled appropriately.
A prompt will persist until input is entered or the timeout
expires (if one was set). Example:
Please choose (default will boot in 10 seconds):
Correct input will boot the respective boot index. If the
user's input is empty, 0, or if the timeout expires, then
the default zipl entry will be chosen. If the input is
within the range of available boot entries, then the
selection will be booted. Any erroneous input will cancel
the timeout and re-prompt the user.
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: dbf2091aba8abc312dbab931b12ebc4ff213ffd6
https://github.com/qemu/qemu/commit/dbf2091aba8abc312dbab931b12ebc4ff213ffd6
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M pc-bios/s390-ccw/menu.c
M pc-bios/s390-ccw/s390-ccw.h
M pc-bios/s390-ccw/sclp.c
Log Message:
-----------
s390-ccw: set cp_receive mask only when needed and consume pending service
irqs
It is possible while waiting for multiple types of external
interrupts that we might have pending irqs remaining between
irq consumption and irq-type disabling. Those interrupts
could potentially propagate to the guest after IPL completes
and cause unwanted behavior.
As it is today, the SCLP will only recognize write events that
are enabled by the control program's send and receive masks. To
limit the window for, and prevent further irqs from, ASCII
console events (specifically keystrokes), we should only enable
the control program's receive mask when we need it.
While we're at it, remove assignment of the (non control program)
send and receive masks, as those are actually set by the SCLP.
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: 53b310ce539cfadf1f2fad5927a9e8f88ec9db13
https://github.com/qemu/qemu/commit/53b310ce539cfadf1f2fad5927a9e8f88ec9db13
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M hw/s390x/ipl.c
M hw/s390x/ipl.h
M pc-bios/s390-ccw/iplb.h
M pc-bios/s390-ccw/main.c
M pc-bios/s390-ccw/menu.c
Log Message:
-----------
s390-ccw: use zipl values when no boot menu options are present
If no boot menu options are present, then flag the boot menu to
use the zipl options that were set in the zipl configuration file
(and stored on disk by zipl). These options are found at some
offset prior to the start of the zipl boot menu banner. The zipl
timeout value is limited to a 16-bit unsigned integer and stored
as seconds, so we take care to convert it to milliseconds in order
to conform to the rest of the boot menu functionality. This is
limited to CCW devices.
For reference, the zipl configuration file uses the following
fields in the menu section:
prompt=1 enable the boot menu
timeout=X set the timeout to X seconds
To explicitly disregard any boot menu options, then menu=off or
<bootmenu enable='no' ... /> must be specified.
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>
Commit: ffb4a1c80792aa71da900dbb495b21fbc0130073
https://github.com/qemu/qemu/commit/ffb4a1c80792aa71da900dbb495b21fbc0130073
Author: Collin L. Walling <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M hw/s390x/ipl.c
M pc-bios/s390-ccw/bootmap.c
M pc-bios/s390-ccw/main.c
M pc-bios/s390-ccw/menu.c
M pc-bios/s390-ccw/s390-ccw.h
Log Message:
-----------
s390-ccw: interactive boot menu for scsi
Interactive boot menu for scsi. This follows a similar procedure
as the interactive menu for eckd dasd. An example follows:
s390x Enumerated Boot Menu.
3 entries detected. Select from index 0 to 2.
Signed-off-by: Collin L. Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
[thuth: Added additional "break;" statement to avoid analyzer warnings]
Signed-off-by: Thomas Huth <address@hidden>
Commit: 9c050f3d15697c4c84c9d6aa7af779a273b71d87
https://github.com/qemu/qemu/commit/9c050f3d15697c4c84c9d6aa7af779a273b71d87
Author: Thomas Huth <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M pc-bios/s390-ccw.img
M pc-bios/s390-netboot.img
Log Message:
-----------
pc-bios/s390: Rebuild the s390x firmware images with the boot menu changes
Provide a new s390-ccw.img binary with the boot menu patches by Collin.
Though there should not be any visible changes for the network booting,
the s390-netboot.img binary has been rebuilt, too, since some of the
changes affected the shared source files.
Signed-off-by: Thomas Huth <address@hidden>
Commit: 4ada99ade213ebe62749e8f4987f2491f2f66a44
https://github.com/qemu/qemu/commit/4ada99ade213ebe62749e8f4987f2491f2f66a44
Author: Christian Borntraeger <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M qapi/run-state.json
M target/s390x/cpu.c
M target/s390x/cpu.h
M target/s390x/helper.c
M target/s390x/kvm.c
M vl.c
Log Message:
-----------
s390x/cpu: expose the guest crash information
This patch is the s390 implementation of guest crash information,
similar to commit d187e08dc4 ("i386/cpu: add crash-information QOM
property") and the related commits. We will detect several crash
reasons, with the "disabled wait" being the most important one, since
this is used by all s390 guests as a "panic like" notification.
Demonstrate these ways with examples as follows.
1. crash-information QOM property;
Run qemu with -qmp unix:qmp-sock,server, then use utility "qmp-shell"
to execute "qom-get" command, and might get the result like,
(QEMU) (QEMU) qom-get path=/machine/unattached/device[0] \
property=crash-information
{"return": {"core": 0, "reason": "disabled-wait", "psw-mask":
562956395872256, \
"type": "s390", "psw-addr": 1102832}}
2. GUEST_PANICKED event reporting;
Run qemu with a socket option, and telnet or nc to that,
-chardev socket,id=qmp,port=4444,host=localhost,server \
-mon chardev=qmp,mode=control,pretty=on \
Negotiating the mode by { "execute": "qmp_capabilities" }, and the crash
information will be reported on a guest crash event like,
{
"timestamp": {
"seconds": 1518004739,
"microseconds": 552563
},
"event": "GUEST_PANICKED",
"data": {
"action": "pause",
"info": {
"core": 0,
"psw-addr": 1102832,
"reason": "disabled-wait",
"psw-mask": 562956395872256,
"type": "s390"
}
}
}
3. log;
Run qemu with the parameters: -D <logfile> -d guest_errors, to
specify the logfile and log item. The results might be,
Guest crashed on cpu 0: disabled-wait
PSW: 0x0002000180000000 0x000000000010d3f0
Co-authored-by: Jing Liu <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
[CH: tweaked qapi comment]
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 571729a00a2ec8514c350dae830a73a09698a043
https://github.com/qemu/qemu/commit/571729a00a2ec8514c350dae830a73a09698a043
Author: Dr. David Alan Gilbert <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M hw/s390x/s390-stattrib.c
Log Message:
-----------
s390/stattrib: Make SaveVMHandlers data static
There's no need for this to be dynamic, make it static.
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Claudio Imbrenda <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: f26852aa31d49bf83a8defd65538137a2f9da82c
https://github.com/qemu/qemu/commit/f26852aa31d49bf83a8defd65538137a2f9da82c
Author: David Hildenbrand <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M target/s390x/cpu.h
M target/s390x/mmu_helper.c
M target/s390x/translate.c
Log Message:
-----------
s390x/tcg: fix disabling/enabling DAT
Currently, all memory accesses go via the MMU of the address space
(primary, secondary, ...). This is bad, because we don't flush the TLB
when disabling/enabling DAT. So we could add a tlb flush. However it
is easier to simply select the MMU we already have in place for real
memory access.
All we have to do is point at the right MMU and allow to execute these
pages.
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
[CH: get rid of tabs]
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 21fc97c5fff10433d839047da44eee652f050041
https://github.com/qemu/qemu/commit/21fc97c5fff10433d839047da44eee652f050041
Author: David Hildenbrand <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M target/s390x/insn-data.def
M target/s390x/mem_helper.c
M target/s390x/translate.c
Log Message:
-----------
s390x/tcg: add various alignment checks
Let's add proper alignment checks for a handful of instructions that
require a SPECIFICATION exception in case alignment is violated.
Introduce new wout/in functions. As we are right now only using them for
privileged instructions, we have to add ugly ifdefs to silence
compilers.
Convert STORE CPU ID right away to make use of the wout function.
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 9d0306dfdfb7e7fd8d5fbe45973566d1a8ea592d
https://github.com/qemu/qemu/commit/9d0306dfdfb7e7fd8d5fbe45973566d1a8ea592d
Author: Viktor Mihajlovski <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M cpus.c
M hw/intc/s390_flic.c
M hw/s390x/s390-virtio-ccw.c
M qapi-schema.json
M target/s390x/cpu.c
M target/s390x/cpu.h
M target/s390x/kvm.c
M target/s390x/sigp.c
Log Message:
-----------
qmp: expose s390-specific CPU info
Presently s390x is the only architecture not exposing specific
CPU information via QMP query-cpus. Upstream discussion has shown
that it could make sense to report the architecture specific CPU
state, e.g. to detect that a CPU has been stopped.
With this change the output of query-cpus will look like this on
s390:
[
{"arch": "s390", "current": true,
"props": {"core-id": 0}, "cpu-state": "operating", "CPU": 0,
"qom_path": "/machine/unattached/device[0]",
"halted": false, "thread_id": 63115},
{"arch": "s390", "current": false,
"props": {"core-id": 1}, "cpu-state": "stopped", "CPU": 1,
"qom_path": "/machine/unattached/device[1]",
"halted": true, "thread_id": 63116}
]
This change doesn't add the s390-specific data to HMP 'info cpus'.
A follow-on patch will remove all architecture specific information
from there.
Signed-off-by: Viktor Mihajlovski <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Reviewed-by: Christian Borntraeger <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: ce74ee3dea6273a7a6aebc157f39cffd3e388097
https://github.com/qemu/qemu/commit/ce74ee3dea6273a7a6aebc157f39cffd3e388097
Author: Luiz Capitulino <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M cpus.c
M qapi-schema.json
Log Message:
-----------
qmp: add query-cpus-fast
The query-cpus command has an extremely serious side effect:
it always interrupts all running vCPUs so that they can run
ioctl calls. This can cause a huge performance degradation for
some workloads. And most of the information retrieved by the
ioctl calls are not even used by query-cpus.
This commit introduces a replacement for query-cpus called
query-cpus-fast, which has the following features:
o Never interrupt vCPUs threads. query-cpus-fast only returns
vCPU information maintained by QEMU itself, which should be
sufficient for most management software needs
o Drop "halted" field as it can not be retrieved in a fast
way on most architectures
o Drop irrelevant fields such as "current", "pc" and "arch"
o Rename some fields for better clarification & proper naming
standard
Signed-off-by: Luiz Capitulino <address@hidden>
Signed-off-by: Viktor Mihajlovski <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: ca230ff33f89bf7102cbfbc2328716da6750aaed
https://github.com/qemu/qemu/commit/ca230ff33f89bf7102cbfbc2328716da6750aaed
Author: Viktor Mihajlovski <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M cpus.c
M qapi-schema.json
Log Message:
-----------
qmp: add architecture specific cpu data for query-cpus-fast
The s390 CPU state can be retrieved without interrupting the
VM execution. Extendend the CpuInfoFast union with architecture
specific data and an implementation for s390.
Return data looks like this:
[
{"thread-id":64301,"props":{"core-id":0},
"arch":"s390","cpu-state":"operating",
"qom-path":"/machine/unattached/device[0]","cpu-index":0},
{"thread-id":64302,"props":{"core-id":1},
"arch":"s390","cpu-state":"operating",
"qom-path":"/machine/unattached/device[1]","cpu-index":1}
]
Signed-off-by: Viktor Mihajlovski <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: ff9a915655326878e1be650df644b7de6739f0fa
https://github.com/qemu/qemu/commit/ff9a915655326878e1be650df644b7de6739f0fa
Author: Viktor Mihajlovski <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M qapi-schema.json
M qemu-doc.texi
Log Message:
-----------
qemu-doc: deprecate query-cpus
Start the deprecation period for QAPI query-cpus (replaced by
query-cpus-fast) beginning with 2.12.0.
Signed-off-by: Viktor Mihajlovski <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 137b5cb6ab565cb3781d5337591e155932b4230e
https://github.com/qemu/qemu/commit/137b5cb6ab565cb3781d5337591e155932b4230e
Author: Viktor Mihajlovski <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M hmp.c
M monitor.c
Log Message:
-----------
hmp: change hmp_info_cpus to use query-cpus-fast
Changing the implementation of hmp_info_cpus() to call
qmp_query_cpus_fast() instead of qmp_query_cpus. This has the
following consequences:
o No further code change required for qmp_query_cpus deprecation
o HMP profits from the less disruptive cpu information retrieval
o HMP 'info cpus' won't display architecture specific data anymore,
which should be tolerable in the light of the deprecation of
query-cpus.
In order to allow 'info cpus' to be executed completely on the
fast path, monitor_get_cpu_index() has been adapted to not synchronize
the cpu state.
Signed-off-by: Viktor Mihajlovski <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: a5a2b80d9538f5ca7b91ac201f1466ef58cf833f
https://github.com/qemu/qemu/commit/a5a2b80d9538f5ca7b91ac201f1466ef58cf833f
Author: Halil Pasic <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M target/s390x/cpu_features.c
Log Message:
-----------
s390x/cpumodel: document S390FeatDef.bit not applicable
The 'bit' field of the 'S390FeatDef' structure is not applicable to all
its instances. Currently this field is not applicable, and remains
unused, iff the feature is of type S390_FEAT_TYPE_MISC. Having the value 0
specified for multiple such feature definitions was a little confusing,
as it's a perfectly legit bit value, and as the value of the bit
field is usually ought to be unique for each feature of a given
feature type.
Let us introduce a specialized macro for defining features of type
S390_FEAT_TYPE_MISC so, that one does not have to specify neither bit nor
type (as the latter is implied).
Signed-off-by: Halil Pasic <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 82fab5c5b90e468f3e9d54cd614c89d9416d18cd
https://github.com/qemu/qemu/commit/82fab5c5b90e468f3e9d54cd614c89d9416d18cd
Author: David Hildenbrand <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M hw/s390x/sclp.c
M include/hw/s390x/sclp.h
M target/s390x/cpu.h
Log Message:
-----------
s390x/sclp: remove memory hotplug support
>From an architecture point of view, nothing can be mapped into the address
space on s390x. All there is is memory. Therefore there is also not really
an interface to communicate such information to the guest. All we can do is
specify the maximum ram address and guests can probe in that range if
memory is available and usable (TPROT).
Also memory hotplug is strange. The guest can decide at some point in
time to add / remove memory in some range. While the hypervisor can deny
to online an increment, all increments have to be predefined and there is
no way of telling the guest about a newly "hotplugged" increment. So if we
specify right now e.g.
-m 2G,slots=2,maxmem=20G
An ordinary fedora guest will happily online (hotplug) all memory,
resulting in a guest consuming 20G. So it really behaves rather like
-m 22G
There is no way to hotplug memory from the outside like on other
architectures. This is of course bad for upper management layers.
As the guest can create/delete memory regions while it is running, of
course migration support is not available and tricky to implement.
With virtualization, it is different. We might want to map something
into guest address space (e.g. fake DAX devices) and not detect it
automatically as memory. So we really want to use the maxmem and slots
parameter just like on all other architectures. Such devices will have
to expose the applicable memory range themselves. To finally be able to
provide memory hotplug to guests, we will need a new paravirtualized
interface to do that (e.g. something into the direction of virtio-mem).
This implies, that maxmem cannot be used for s390x memory hotplug
anymore and has to go. This simplifies the code quite a bit.
As migration support is not working, this change cannot really break
migration as guests without slots and maxmem don't see the SCLP
features. Also, the ram size calculation does not change.
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Christian Borntraeger <address@hidden>
Acked-by: Matthew Rosato <address@hidden>
[CH: tweaked patch description, as discussed on list]
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 3e65a3c283ae36c1f27141f71d2bb040737b1390
https://github.com/qemu/qemu/commit/3e65a3c283ae36c1f27141f71d2bb040737b1390
Author: Cornelia Huck <address@hidden>
Date: 2018-02-26 (Mon, 26 Feb 2018)
Changed paths:
M include/hw/s390x/sclp.h
M target/s390x/cpu.c
M target/s390x/cpu.h
M target/s390x/kvm-stub.c
M target/s390x/kvm.c
M target/s390x/kvm_s390x.h
Log Message:
-----------
s390x: remove s390_get_memslot_count
Not needed anymore after removal of the memory hotplug code.
Acked-by: Christian Borntraeger <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: eae9f29130f3ed40ad77f40a3bae4b9ebff28907
https://github.com/qemu/qemu/commit/eae9f29130f3ed40ad77f40a3bae4b9ebff28907
Author: Cornelia Huck <address@hidden>
Date: 2018-02-27 (Tue, 27 Feb 2018)
Changed paths:
M hw/s390x/ipl.c
M hw/s390x/ipl.h
M pc-bios/s390-ccw.img
M pc-bios/s390-ccw/Makefile
M pc-bios/s390-ccw/bootmap.c
M pc-bios/s390-ccw/bootmap.h
M pc-bios/s390-ccw/iplb.h
A pc-bios/s390-ccw/libc.c
M pc-bios/s390-ccw/libc.h
M pc-bios/s390-ccw/main.c
A pc-bios/s390-ccw/menu.c
M pc-bios/s390-ccw/s390-ccw.h
M pc-bios/s390-ccw/sclp.c
M pc-bios/s390-ccw/virtio.c
M pc-bios/s390-netboot.img
Log Message:
-----------
Merge tag 'tags/s390-ccw-bios-2018-02-26' into s390-next
Boot menu patches by Collin L. Walling
# gpg: Signature made Mon 26 Feb 2018 11:24:21 AM CET
# gpg: using RSA key 2ED9D774FE702DB5
# gpg: Good signature from "Thomas Huth <address@hidden>" [full]
# gpg: aka "Thomas Huth <address@hidden>" [undefined]
# gpg: aka "Thomas Huth <address@hidden>" [undefined]
# gpg: aka "Thomas Huth <address@hidden>" [unknown]
* tag 'tags/s390-ccw-bios-2018-02-26':
pc-bios/s390: Rebuild the s390x firmware images with the boot menu changes
s390-ccw: interactive boot menu for scsi
s390-ccw: use zipl values when no boot menu options are present
s390-ccw: set cp_receive mask only when needed and consume pending service
irqs
s390-ccw: read user input for boot index via the SCLP console
s390-ccw: print zipl boot menu
s390-ccw: read stage2 boot loader data to find menu
s390-ccw: set up interactive boot menu parameters
s390-ccw: parse and set boot menu options
s390-ccw: move auxiliary IPL data to separate location
s390-ccw: update libc
s390-ccw: refactor IPL structs
s390-ccw: refactor eckd_block_num to use CHS
s390-ccw: refactor boot map table code
Commit: be8b49de2491145a7aad3201803327b6f568cbd3
https://github.com/qemu/qemu/commit/be8b49de2491145a7aad3201803327b6f568cbd3
Author: David Hildenbrand <address@hidden>
Date: 2018-03-01 (Thu, 01 Mar 2018)
Changed paths:
M target/s390x/excp_helper.c
Log Message:
-----------
s390x/tcg: fix loading 31bit PSWs with the highest bit set
Let's also put the 31-bit hack in front of the REAL MMU, otherwise right
now we get errors when loading a PSW where the highest bit is set (e.g.
via s390-netboot.img). The highest bit is not masked away, therefore we
inject addressing exceptions into the guest.
The proper fix will later be to do all address wrapping before accessing
the MMU - so we won't get any "wrong" entries in there (which makes
flushing also easier). But that will require more work (wrapping in
load_psw, wrapping when incrementing the PC, wrapping every memory
access).
This fixes the tests/pxe-test test.
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 0dc8ae5e8e693737dfe65ba02d0c6eccb58a9c67
https://github.com/qemu/qemu/commit/0dc8ae5e8e693737dfe65ba02d0c6eccb58a9c67
Author: Peter Maydell <address@hidden>
Date: 2018-03-01 (Thu, 01 Mar 2018)
Changed paths:
M cpus.c
M hmp.c
M hw/intc/s390_flic.c
M hw/s390x/ipl.c
M hw/s390x/ipl.h
M hw/s390x/s390-stattrib.c
M hw/s390x/s390-virtio-ccw.c
M hw/s390x/sclp.c
M include/hw/s390x/sclp.h
M monitor.c
M pc-bios/s390-ccw.img
M pc-bios/s390-ccw/Makefile
M pc-bios/s390-ccw/bootmap.c
M pc-bios/s390-ccw/bootmap.h
M pc-bios/s390-ccw/iplb.h
A pc-bios/s390-ccw/libc.c
M pc-bios/s390-ccw/libc.h
M pc-bios/s390-ccw/main.c
A pc-bios/s390-ccw/menu.c
M pc-bios/s390-ccw/s390-ccw.h
M pc-bios/s390-ccw/sclp.c
M pc-bios/s390-ccw/virtio.c
M pc-bios/s390-netboot.img
M qapi-schema.json
M qapi/run-state.json
M qemu-doc.texi
M target/s390x/cpu.c
M target/s390x/cpu.h
M target/s390x/cpu_features.c
M target/s390x/excp_helper.c
M target/s390x/helper.c
M target/s390x/insn-data.def
M target/s390x/kvm-stub.c
M target/s390x/kvm.c
M target/s390x/kvm_s390x.h
M target/s390x/mem_helper.c
M target/s390x/mmu_helper.c
M target/s390x/sigp.c
M target/s390x/translate.c
M vl.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20180301-v2' into
staging
- add query-cpus-fast and deprecate query-cpus, while adding s390 cpu
information
- remove s390x memory hotplug implementation, which is not useable in
this form
- add boot menu support in the s390-ccw bios
- expose s390x guest crash information
- fixes and cleaups
# gpg: Signature made Thu 01 Mar 2018 12:54:47 GMT
# gpg: using RSA key DECF6B93C6F02FAF
# gpg: Good signature from "Cornelia Huck <address@hidden>"
# gpg: aka "Cornelia Huck <address@hidden>"
# gpg: aka "Cornelia Huck <address@hidden>"
# gpg: aka "Cornelia Huck <address@hidden>"
# gpg: aka "Cornelia Huck <address@hidden>"
# Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0 18CE DECF 6B93 C6F0 2FAF
* remotes/cohuck/tags/s390x-20180301-v2: (27 commits)
s390x/tcg: fix loading 31bit PSWs with the highest bit set
s390x: remove s390_get_memslot_count
s390x/sclp: remove memory hotplug support
s390x/cpumodel: document S390FeatDef.bit not applicable
hmp: change hmp_info_cpus to use query-cpus-fast
qemu-doc: deprecate query-cpus
qmp: add architecture specific cpu data for query-cpus-fast
qmp: add query-cpus-fast
qmp: expose s390-specific CPU info
s390x/tcg: add various alignment checks
s390x/tcg: fix disabling/enabling DAT
s390/stattrib: Make SaveVMHandlers data static
s390x/cpu: expose the guest crash information
pc-bios/s390: Rebuild the s390x firmware images with the boot menu changes
s390-ccw: interactive boot menu for scsi
s390-ccw: use zipl values when no boot menu options are present
s390-ccw: set cp_receive mask only when needed and consume pending service
irqs
s390-ccw: read user input for boot index via the SCLP console
s390-ccw: print zipl boot menu
s390-ccw: read stage2 boot loader data to find menu
...
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/9db0855e8501...0dc8ae5e8e69
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 5340eb: s390-ccw: refactor boot map table code,
GitHub <=