qemu-commits
[Top][All Lists]
Advanced

[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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]