qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 6c8646: s390x/css: fix cc handling for XSCH


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 6c8646: s390x/css: fix cc handling for XSCH
Date: Tue, 19 Sep 2017 11:23:23 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 6c86462220a1c7f5d673663d31d297627a2868a6
      
https://github.com/qemu/qemu/commit/6c86462220a1c7f5d673663d31d297627a2868a6
  Author: Halil Pasic <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/css.c

  Log Message:
  -----------
  s390x/css: fix cc handling for XSCH

The function ioinst_handle_xsch is presenting cc 2 when it's supposed to
present cc 1 and the other way around, because css_do_xsch has the error
codes mixed up. Because cc 1 has precedence over cc 2 we also have to
swap the two checks.

Let us fix this.

Signed-off-by: Halil Pasic <address@hidden>
Reported-by: Pierre Morel <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 2f84a92ec631f5907207990705a22afb9aad3eef
      
https://github.com/qemu/qemu/commit/2f84a92ec631f5907207990705a22afb9aad3eef
  Author: Thomas Huth <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M tests/Makefile.include
    M tests/drive_del-test.c
    M tests/libqos/virtio.c
    M tests/libqos/virtio.h

  Log Message:
  -----------
  tests: Enable the drive_del test also on s390x

We can use the drive_del test on s390x, too, to check that adding and
deleting also works fine with the virtio-ccw bus. But we have to make
sure that we use the devices with the "-ccw" suffix instead of the
"-pci" suffix for the virtio-ccw transport on s390x. Introduce a helper
function called qvirtio_get_dev_type() that returns the correct string
for the current architecture.

Signed-off-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: ceb7054fd4f00c4893938bfb23688f79be0fa782
      
https://github.com/qemu/qemu/commit/ceb7054fd4f00c4893938bfb23688f79be0fa782
  Author: Yi Min Zhao <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/s390-pci-bus.c
    M hw/s390x/s390-pci-bus.h
    M hw/s390x/s390-pci-inst.c
    M hw/s390x/s390-pci-stub.c
    M target/s390x/kvm.c

  Log Message:
  -----------
  s390x/pci: remove idx from msix msg data

PCIDevice pointer has been a parameter of kvm_arch_fixup_msi_route().
So we don't need to store zpci idx in msix message data to find out the
specific zpci device. Instead, we could use pci device id to find its
corresponding zpci device.

Signed-off-by: Yi Min Zhao <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 01c36195d6ed421ab913937c03ae16d2e0cdff38
      
https://github.com/qemu/qemu/commit/01c36195d6ed421ab913937c03ae16d2e0cdff38
  Author: Yi Min Zhao <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M target/s390x/kvm.c

  Log Message:
  -----------
  s390x/pci: fixup ind_offset of msix routing entry

The guest uses the mpcifc instruction to register the aibvo of a zpci
device, which is the starting offset of indicators in the indicator
area and thus remains constant. Each msix vector is an offset from the
aibvo. When we map a msix route to an adapter route, we should not
modify the starting offset, but instead add the vector to the starting
offset to get the absolute offset in the specific route.

Signed-off-by: Yi Min Zhao <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 6c5e740247182807b684d30db20d9b8e169b5b22
      
https://github.com/qemu/qemu/commit/6c5e740247182807b684d30db20d9b8e169b5b22
  Author: Yi Min Zhao <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/s390-pci-bus.c

  Log Message:
  -----------
  s390x/pci: add iommu replay callback

Let's introduce iommu replay callback for s390 pci iommu memory region.
Currently we don't need any dma mapping replay. So let it return
directly. This implementation will avoid meaningless loops calling
translation callback.

Reviewed-by: Pierre Morel <address@hidden>
Reviewed-by: Halil Pasic <address@hidden>
Signed-off-by: Yi Min Zhao <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 51af0ec9fa7269f0c69aa50a1a24748b4edc4b44
      
https://github.com/qemu/qemu/commit/51af0ec9fa7269f0c69aa50a1a24748b4edc4b44
  Author: Thomas Huth <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/misc/ivshmem.c

  Log Message:
  -----------
  hw/misc/ivshmem: Fix ivshmem_recv_msg() to also work on big endian systems

The "slow" ivshmem-tests currently fail when they are running on a
big endian host:

$ uname -m
ppc64
$ V=1 QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 tests/ivshmem-test -m 
slow
/x86_64/ivshmem/single: OK
/x86_64/ivshmem/hotplug: OK
/x86_64/ivshmem/memdev: OK
/x86_64/ivshmem/pair: OK
/x86_64/ivshmem/server-msi: qemu-system-x86_64:
 -device ivshmem-doorbell,chardev=chr0,vectors=2: server sent invalid ID message
Broken pipe

The problem is that the server side code in ivshmem_server_send_one_msg()
correctly translates all messages IDs into little endian 64-bit values,
but the client side code in the ivshmem_recv_msg() function does not swap
the byte order back. Fix it by passing the value through le64_to_cpu().

Signed-off-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
Tested-by: Cornelia Huck <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 248b920df95a5e3df10c16be63b017653c7ba730
      
https://github.com/qemu/qemu/commit/248b920df95a5e3df10c16be63b017653c7ba730
  Author: Halil Pasic <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/css.c

  Log Message:
  -----------
  s390x/css: drop data-check in interpretation

The architecture says that channel-data check is indicating that
an uncorrected storage (memory) error has been detected in regard
to the data residing in main storage (memory) that is currently
used for an I/O operation. The described detection is done using
the CBC technology.

The ccw interpretation code is however generating a channel-data check
effectively when the (device specific) ccw_cb returns -EFAULT.  In case
of virtio-ccw devices this happens when mapping memory fails, or when a
NULL pointer is encountered. So this behavior is not architecture
conform.

Furthermore the best fit for these situations (null pointer, mapping a
piece of guest memory fails) from architectural perspective the condition
described as the channel subsystem refers to a location that is not
available, which when encountered shall result in a channel-program
check.

To fix this, all we have to do is to get rid of the switch case matching
-EFAULT: the default is generating a channel-program check.

Signed-off-by: Halil Pasic <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: cc6a9f8dc9278e9a5d499ea114b0a10b3bf5f134
      
https://github.com/qemu/qemu/commit/cc6a9f8dc9278e9a5d499ea114b0a10b3bf5f134
  Author: Halil Pasic <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/css.c

  Log Message:
  -----------
  s390x/css: fix NULL handling for CCW addresses

Back then in the time of df1fe5bb49 ("s390: Virtual channel subsystem
support.", 2013-01-24) -EIO used to map to a channel-program check (via
the default label of the switch statement).  Then 2dc95b4cac
("s390x/3270: 3270 data stream handling", 2016-04-01) came along
and that changed dramatically.

Let us roll back this undesired side effect, and go back to
channel-program check.

Signed-off-by: Halil Pasic <address@hidden>
Fixes: 2dc95b4cac "s390x/3270: 3270 data stream handling"
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: ce4a4453885fa64667c82c6487da59403da62b69
      
https://github.com/qemu/qemu/commit/ce4a4453885fa64667c82c6487da59403da62b69
  Author: Halil Pasic <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/css.c

  Log Message:
  -----------
  s390x/css: remove unused error handling branch

The case in question actually never happens. Let us get rid of the dead
code.

Signed-off-by: Halil Pasic <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: a8fbbf1db7a348c6183c58b4fe7a599682c74e46
      
https://github.com/qemu/qemu/commit/a8fbbf1db7a348c6183c58b4fe7a599682c74e46
  Author: Viktor Mihajlovski <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M pc-bios/s390-ccw/netboot.mak

  Log Message:
  -----------
  s390: set DHCP client architecure id for netboot

Setting the client architecture DHCP option to 0x001f (s390 Basic) [1]
allows the DHCP server to return a s390-specific bootfile if wanted.
DHCP servers not configured for the option (or not yet recognizing the
option value) will continue to work as they have done before.

[1] https://www.iana.org/assignments/dhcpv6-parameters

Signed-off-by: Viktor Mihajlovski <address@hidden>
Message-Id: <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 7f579e272f25ec24f8bfeae4a55f9e4f3de461a9
      
https://github.com/qemu/qemu/commit/7f579e272f25ec24f8bfeae4a55f9e4f3de461a9
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M dump.c
    M exec.c
    M target/i386/arch_dump.c
    M target/i386/arch_memory_mapping.c
    M target/i386/svm_helper.c
    M target/ppc/arch_dump.c
    M target/s390x/arch_dump.c

  Log Message:
  -----------
  exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly

All but a handful of files include exec/cpu-all.h via cpu.h only.
As these files already include cpu.h, let's just drop the additional
include.

Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 6fda014e1a65474c4877b36cc42e8a0f377817a4
      
https://github.com/qemu/qemu/commit/6fda014e1a65474c4877b36cc42e8a0f377817a4
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M include/qom/cpu.h

  Log Message:
  -----------
  cpu: drop old comments describing members

These comments are obviously stale.

Acked-by: Cornelia Huck <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 6286b41986f2e2b24e9dbf274fa3d5473210f7de
      
https://github.com/qemu/qemu/commit/6286b41986f2e2b24e9dbf274fa3d5473210f7de
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/Makefile.objs
    M hw/s390x/s390-virtio-ccw.c
    R hw/s390x/s390-virtio.c
    M hw/s390x/s390-virtio.h

  Log Message:
  -----------
  s390x: get rid of s390-virtio.c

It is a leftover from the days where we had still the !ccw virtio
machine. As this one is long gone, let's move everything to
s390-virtio-ccw.c.

Suggested-by: Cornelia Huck <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 7d57754690268fe87bf75cd180d9176c6863875d
      
https://github.com/qemu/qemu/commit/7d57754690268fe87bf75cd180d9176c6863875d
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/s390-virtio-ccw.c
    M hw/s390x/s390-virtio-hcall.c
    A hw/s390x/s390-virtio-hcall.h
    R hw/s390x/s390-virtio.h

  Log Message:
  -----------
  s390x: rename s390-virtio.h to s390-virtio-hcall.h

The only interface left, so let's properly rename it.

Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 2c98a6c1ca20d8b0463cf1d3463f4275b5892da5
      
https://github.com/qemu/qemu/commit/2c98a6c1ca20d8b0463cf1d3463f4275b5892da5
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/s390-virtio-hcall.h
    M target/s390x/cpu.h
    M target/s390x/kvm.c
    M target/s390x/misc_helper.c

  Log Message:
  -----------
  s390x: move s390_virtio_hypercall() to s390-virtio-hcall.h

Implemented in hw/s390x/s390-virtio-hcall.c, so let's move it to the
right header file.

Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 19c69829d64ff3101a91663354a9d9bc755cd642
      
https://github.com/qemu/qemu/commit/19c69829d64ff3101a91663354a9d9bc755cd642
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M include/hw/s390x/s390-virtio-ccw.h
    M target/s390x/cpu.h
    M target/s390x/diag.c

  Log Message:
  -----------
  s390x: move subsystem_reset() to s390-virtio-ccw.h

Implemented in s390-virtio-ccw.c, so move it to the right header.
We can also drop the extern. Fix up one include.

Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: ef2974cc270d51959ce90df6b4d4d41635d7a603
      
https://github.com/qemu/qemu/commit/ef2974cc270d51959ce90df6b4d4d41635d7a603
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M target/s390x/cpu-qom.h
    M target/s390x/cpu.h
    M target/s390x/cpu_models.h

  Log Message:
  -----------
  target/s390x: move some s390x typedefs to cpu-qom.h

This allows us to drop inclusion of cpu_models.h in cpu-qom.h, and
prepares for using cpu-qom.h as a s390 specific version of typedefs.h

Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 53d8e91d64ce2655f5945db2fe4c1ac7e00957a0
      
https://github.com/qemu/qemu/commit/53d8e91d64ce2655f5945db2fe4c1ac7e00957a0
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M include/hw/s390x/sclp.h
    M target/s390x/cpu.h
    M target/s390x/misc_helper.c

  Log Message:
  -----------
  s390x: move sclp_service_call() to sclp.h

Implemented in sclp.c, so let's move it to the right include file.
Also adjust some includes.

Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 525f4b65c7d337f0c83488ee1e951a134b6ccfb7
      
https://github.com/qemu/qemu/commit/525f4b65c7d337f0c83488ee1e951a134b6ccfb7
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M target/s390x/excp_helper.c

  Log Message:
  -----------
  target/s390x: use trigger_pgm_exception() in s390_cpu_handle_mmu_fault()

This looks cleaner. linux-user will not use the ilen field, so setting
it doesn't do any harm.

Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: e0b1a8a14e6bfcd66e1c20d6711f92ac86861e6b
      
https://github.com/qemu/qemu/commit/e0b1a8a14e6bfcd66e1c20d6711f92ac86861e6b
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M target/s390x/misc_helper.c

  Log Message:
  -----------
  target/s390x: use program_interrupt() in per_check_exception()

Clean it up by reusing program_interrupt(). Add a concern regarding
ilen.

Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: b5684cd8c688337120eeba1654eba7e5863f04f6
      
https://github.com/qemu/qemu/commit/b5684cd8c688337120eeba1654eba7e5863f04f6
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/s390-virtio-ccw.c

  Log Message:
  -----------
  s390x: allow only 1 CPU with TCG

Specifying more than 1 CPU (e.g. -smp 5) leads to SIGP errors (the
guest tries to bring these CPUs up but fails), because we don't support
multiple CPUs on s390x under TCG.

Let's bail out if more than 1 is specified, so we don't raise people's
hope.

Tested-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 88556edd74c82c7bb966f0e64d400f2ac898108d
      
https://github.com/qemu/qemu/commit/88556edd74c82c7bb966f0e64d400f2ac898108d
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M target/s390x/cpu.c

  Log Message:
  -----------
  target/s390x: set cpu->id for linux user when realizing

scc->next_cpu_id is updated when realizing. Setting it just before that
point looks cleaner.

Reviewed-by: Matthew Rosato <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: ca5c1457d614fec718aaec7bdf3663dec37e1e50
      
https://github.com/qemu/qemu/commit/ca5c1457d614fec718aaec7bdf3663dec37e1e50
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/s390-virtio-ccw.c
    M target/s390x/cpu.c
    M target/s390x/cpu.h
    M target/s390x/cpu_models.c
    M target/s390x/excp_helper.c
    M target/s390x/helper.c
    M target/s390x/misc_helper.c
    M target/s390x/translate.c

  Log Message:
  -----------
  target/s390x: use "core-id" for cpu number/address/id handling

Some time ago we discussed that using "id" as property name is not the
right thing to do, as it is a reserved property for other devices and
will not work with device_add.

Switch to the term "core-id" instead, and use it as an equivalent to
"CPU address" mentioned in the PoP. There is no such thing as cpu number,
so rename env.cpu_num to env.core_id. We use "core-id" as this is the
common term to use for device_add later on (x86 and ppc).

We can get rid of cpu->id now. Keep cpu_index and env->core_id in sync.
cpu_index was already implicitly used by e.g. cpu_exists(), so keeping
both in sync seems to be the right thing to do.

cpu_index will now no longer automatically get set via
cpu_exec_realizefn(). For now, we were lucky that both implicitly stayed
in sync.

Our new cpu property "core-id" can be a static property. Range checks can
be avoided by using the correct type and the "setting after realized"
check is done implicitly.

device_add will later need the reserved "id" property. Hotplugging a CPU
on s390x will then be: "device_add host-s390-cpu,id=cpu2,core-id=2".

Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: b599fef28e161ef2a8d3bac18eace4e405421055
      
https://github.com/qemu/qemu/commit/b599fef28e161ef2a8d3bac18eace4e405421055
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M target/s390x/cpu-qom.h
    M target/s390x/cpu.c

  Log Message:
  -----------
  target/s390x: rename next_cpu_id to next_core_id

Adapt to the new term "core_id". While at it, fix the type and drop the
initialization to 0 (which is superfluous).

Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 99aa6bf29b87052d9603c5bf5c23d0db960f30ce
      
https://github.com/qemu/qemu/commit/99aa6bf29b87052d9603c5bf5c23d0db960f30ce
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M target/s390x/cpu_models.c

  Log Message:
  -----------
  s390x: print CPU definitions in sorted order

Other architectures provide nicely sorted lists, let's do it similarly on
s390x.

While at it, clean up the code we have to touch either way.

Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 0347ab84698e668a8da5ce05c3ad4e1d6e553456
      
https://github.com/qemu/qemu/commit/0347ab84698e668a8da5ce05c3ad4e1d6e553456
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M target/s390x/cpu.c

  Log Message:
  -----------
  s390x: allow cpu hotplug via device_add

E.g. the following now works:
    device_add host-s390-cpu,id=cpu1,core-id=1

The system will perform the same checks as when using cpu_add:
- If the core_id is already in use
- If the next sequential core_id isn't used
- If core-id >= max_cpu is specified

In addition, mixed CPU models are checked. E.g. if starting with
-cpu host and trying to hotplug "qemu-s390-cpu":
    "Mixed CPU models are not supported on s390x."

Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: f2f3beb0040cbdad1b4098cbb11ecc102044bf6e
      
https://github.com/qemu/qemu/commit/f2f3beb0040cbdad1b4098cbb11ecc102044bf6e
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/s390-virtio-ccw.c

  Log Message:
  -----------
  s390x: CPU hot unplug via device_del cannot work for now

device_del on a CPU will currently do nothing. Let's emit an error
telling that this is will currently not work (there is no architecture
support on s390x). Error message copied from ppc.

(qemu) device_del cpu1
device_del cpu1
CPU hot unplug not supported on this machine

Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 4dc3b151882fe56f2917a3533d1bceb9fa9ded60
      
https://github.com/qemu/qemu/commit/4dc3b151882fe56f2917a3533d1bceb9fa9ded60
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/s390-virtio-ccw.c
    M qapi-schema.json

  Log Message:
  -----------
  s390x: implement query-hotpluggable-cpus

CPU hotplug is only possible on a per core basis on s390x. So let's
add possible_cpus and wire everything up properly.

Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Acked-by: Igor Mammedov <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 2b44178d87f380eb0ca23ea93dda2146ea2e3fd0
      
https://github.com/qemu/qemu/commit/2b44178d87f380eb0ca23ea93dda2146ea2e3fd0
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/s390-virtio-ccw.c

  Log Message:
  -----------
  s390x: get rid of cpu_states and use possible_cpus instead

Now that we have possible_cpus, we can get rid of the global variable
and rewrite s390_cpu_addr2state() to use it.

Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 524d18d8bd463431b120eeb5f9f3d1064a1c19e4
      
https://github.com/qemu/qemu/commit/524d18d8bd463431b120eeb5f9f3d1064a1c19e4
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/s390-virtio-ccw.c
    M target/s390x/cpu.h
    M target/s390x/helper.c
    M target/s390x/internal.h

  Log Message:
  -----------
  s390x: get rid of cpu_s390x_create()

Now that there is only one user of cpu_s390x_create() left, make cpu
creation look like on x86.
- Perform the model/properties split and checks in s390_init_cpus()
- Parse features only once without having to remember if already parsed
- Pass only the typename to s390x_new_cpu()
- Use the typename of an existing CPU for hotplug via cpu-add

Acked-by: Igor Mammedov <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: bb535bb67e5d2271614a08593abf6aba30e598ba
      
https://github.com/qemu/qemu/commit/bb535bb67e5d2271614a08593abf6aba30e598ba
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/sclp.c

  Log Message:
  -----------
  s390x: generate sclp cpu information from possible_cpus

This is the first step to allow hot plugging of CPUs in a non-sequential
order. If a cpu is available ("plugged") can directly be decided by
looking at the cpu state pointer.

This makes sure, that really only cpus attached to the machine are
reported.

Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: a1422723f75a8b73f952fc0d7b38a702ed97e5e0
      
https://github.com/qemu/qemu/commit/a1422723f75a8b73f952fc0d7b38a702ed97e5e0
  Author: David Hildenbrand <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M target/s390x/cpu.c

  Log Message:
  -----------
  s390x: allow CPU hotplug in random core-id order

SCLP correctly indicates the core-id aka. CPU address for each available
CPU.

As the core-id corresponds to cpu_index, also a newly created kvm vcpu
gets assigned this core-id as vcpu id. So SIGP in the kernel works
correctly (it uses the vcpu id to lookup the correct CPU).

So there should be nothing hindering us from hotplugging CPUs in random
core-id order.

This now makes sure that the output from "query-hotpluggable-cpus"
is completely true. Until now, a specific order is implicit. Performance
vice, hotplugging CPUs in non-sequential order might not be the best thing
to do, as VCPU lookup inside KVM might be a little slower. But that
doesn't hinder us from supporting it.

next_core_id is now used by linux user only.

Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 5ef5475868d00f506699712c1569f10eaa7534a6
      
https://github.com/qemu/qemu/commit/5ef5475868d00f506699712c1569f10eaa7534a6
  Author: Halil Pasic <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/virtio-ccw.c

  Log Message:
  -----------
  virtio-ccw: remove stale comments on endianness

We have two stale comments suggesting one should think about virtio
config space endianness a bit longer. We have just done that, and came to
the conclusion we are fine as is: it's the responsibility of the virtio
device and not of the transport (and that is how it works now). Putting
the responsibility into the transport isn't even possible, because the
transport would have to know about the config space layout of each
device.

Let us remove the stale comments.

Signed-off-by: Halil Pasic <address@hidden>
Suggested-by: Cornelia Huck <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 3aa35fcffcf0fe22ac48d4277ed6057ae3e57ce0
      
https://github.com/qemu/qemu/commit/3aa35fcffcf0fe22ac48d4277ed6057ae3e57ce0
  Author: Thomas Huth <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: Allow --enable-seccomp on s390x, too

libseccomp supports s390x since version 2.3.0, and I was able to start
a VM with "-sandbox on" without any obvious problems by using this patch,
so it should be safe to allow --enable-seccomp on s390x nowadays, too.

Signed-off-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Acked-by: Eduardo Otubo <address@hidden>
Acked-by: Halil Pasic <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 8ad9087c4a07ad1a19ae03ffd2c504f5fba40e84
      
https://github.com/qemu/qemu/commit/8ad9087c4a07ad1a19ae03ffd2c504f5fba40e84
  Author: Cornelia Huck <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M target/s390x/cpu_models.c

  Log Message:
  -----------
  s390x/ccw: create s390 phb for compat reasons as well

d32bd032d8 ("s390x/ccw: create s390 phb conditionally") made
registering the s390 pci host bridge conditional on presense
of the zpci facility bit. Sadly, that breaks migration from
machines that did not use the cpu model (2.7 and previous).

Create the s390 phb for pre-cpu model machines as well: We can
tweak s390_has_feat() to always indicate the zpci facility bit
when no cpu model is available (on 2.7 and previous compat machines).

Fixes: d32bd032d8 ("s390x/ccw: create s390 phb conditionally")
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 1715d6b59cf917397c6d1088ca5f66461271da4e
      
https://github.com/qemu/qemu/commit/1715d6b59cf917397c6d1088ca5f66461271da4e
  Author: Farhan Ali <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/display/virtio-gpu.c

  Log Message:
  -----------
  virtio-gpu: Handle endian conversion

Virtio GPU code currently only supports litte endian format,
and so using the Virtio GPU device on a big endian machine
does not work.

Let's fix it by supporting the correct host cpu byte order.

Signed-off-by: Farhan Ali <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Gerd Hoffmann <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 1f8ad88935f5cb5a2968909e392dbeee1a84b931
      
https://github.com/qemu/qemu/commit/1f8ad88935f5cb5a2968909e392dbeee1a84b931
  Author: Farhan Ali <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M hw/s390x/virtio-ccw.c
    M hw/s390x/virtio-ccw.h

  Log Message:
  -----------
  virtio-ccw: Create a virtio gpu device for the ccw bus

Wire up the virtio-gpu device for the CCW bus. The virtio-gpu
is a virtio-1 device, so disable revision 0.

Signed-off-by: Farhan Ali <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Reviewed-by: Halil Pasic <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 9d1c4449218d8a2e98a6a11688b09b9137f25c1c
      
https://github.com/qemu/qemu/commit/9d1c4449218d8a2e98a6a11688b09b9137f25c1c
  Author: Christian Borntraeger <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS/s390x: add terminal3270.c

Signed-off-by: Christian Borntraeger <address@hidden>
Acked-by: Halil Pasic <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: c51700273ad9802a21c19f8d2b4bcb67c38e74ac
      
https://github.com/qemu/qemu/commit/c51700273ad9802a21c19f8d2b4bcb67c38e74ac
  Author: Peter Maydell <address@hidden>
  Date:   2017-09-19 (Tue, 19 Sep 2017)

  Changed paths:
    M MAINTAINERS
    M configure
    M dump.c
    M exec.c
    M hw/display/virtio-gpu.c
    M hw/misc/ivshmem.c
    M hw/s390x/Makefile.objs
    M hw/s390x/css.c
    M hw/s390x/s390-pci-bus.c
    M hw/s390x/s390-pci-bus.h
    M hw/s390x/s390-pci-inst.c
    M hw/s390x/s390-pci-stub.c
    M hw/s390x/s390-virtio-ccw.c
    M hw/s390x/s390-virtio-hcall.c
    A hw/s390x/s390-virtio-hcall.h
    R hw/s390x/s390-virtio.c
    R hw/s390x/s390-virtio.h
    M hw/s390x/sclp.c
    M hw/s390x/virtio-ccw.c
    M hw/s390x/virtio-ccw.h
    M include/hw/s390x/s390-virtio-ccw.h
    M include/hw/s390x/sclp.h
    M include/qom/cpu.h
    M pc-bios/s390-ccw/netboot.mak
    M qapi-schema.json
    M target/i386/arch_dump.c
    M target/i386/arch_memory_mapping.c
    M target/i386/svm_helper.c
    M target/ppc/arch_dump.c
    M target/s390x/arch_dump.c
    M target/s390x/cpu-qom.h
    M target/s390x/cpu.c
    M target/s390x/cpu.h
    M target/s390x/cpu_models.c
    M target/s390x/cpu_models.h
    M target/s390x/diag.c
    M target/s390x/excp_helper.c
    M target/s390x/helper.c
    M target/s390x/internal.h
    M target/s390x/kvm.c
    M target/s390x/misc_helper.c
    M target/s390x/translate.c
    M tests/Makefile.include
    M tests/drive_del-test.c
    M tests/libqos/virtio.c
    M tests/libqos/virtio.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20170919-v2' into 
staging

Assorted s390x patches:
- introduce virtio-gpu-ccw, with virtio-gpu endian fixes
- lots of cleanup in the s390x code
- make device_add work for s390x cpus
- enable seccomp on s390x
- an ivshmem endian fix
- set the reserved DHCP client architecture id for netboot
- fixes in the css and pci support

# gpg: Signature made Tue 19 Sep 2017 17:39:45 BST
# gpg:                using RSA key 0xDECF6B93C6F02FAF
# 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-20170919-v2: (38 commits)
  MAINTAINERS/s390x: add terminal3270.c
  virtio-ccw: Create a virtio gpu device for the ccw bus
  virtio-gpu: Handle endian conversion
  s390x/ccw: create s390 phb for compat reasons as well
  configure: Allow --enable-seccomp on s390x, too
  virtio-ccw: remove stale comments on endianness
  s390x: allow CPU hotplug in random core-id order
  s390x: generate sclp cpu information from possible_cpus
  s390x: get rid of cpu_s390x_create()
  s390x: get rid of cpu_states and use possible_cpus instead
  s390x: implement query-hotpluggable-cpus
  s390x: CPU hot unplug via device_del cannot work for now
  s390x: allow cpu hotplug via device_add
  s390x: print CPU definitions in sorted order
  target/s390x: rename next_cpu_id to next_core_id
  target/s390x: use "core-id" for cpu number/address/id handling
  target/s390x: set cpu->id for linux user when realizing
  s390x: allow only 1 CPU with TCG
  target/s390x: use program_interrupt() in per_check_exception()
  target/s390x: use trigger_pgm_exception() in s390_cpu_handle_mmu_fault()
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/7ec6a364916c...c51700273ad9

reply via email to

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