[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] fde820: s390x/css: handle ccw-0 TIC correctly
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] fde820: s390x/css: handle ccw-0 TIC correctly |
Date: |
Mon, 07 Sep 2015 09:30:06 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: fde8206b8061f808c880709c2ac26a645b11c211
https://github.com/qemu/qemu/commit/fde8206b8061f808c880709c2ac26a645b11c211
Author: Pierre Morel <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/css.c
Log Message:
-----------
s390x/css: handle ccw-0 TIC correctly
In CCW-0 format TIC command 4 highest bits are ignored in the subchannel.
In CCW-1 format the TIC command 4 highest bits must be 0.
To convert TIC from CCW-0 to CCW-1 we clear the 4 highest bits
to guarantee compatibility.
Signed-off-by: Pierre Morel <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: fa4463e0432ab66432a28d6b975f8eed99b3f4fa
https://github.com/qemu/qemu/commit/fa4463e0432ab66432a28d6b975f8eed99b3f4fa
Author: Cornelia Huck <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/css.c
Log Message:
-----------
s390x/css: ccw-0 enforces count > 0
Type-0 ccws need to have a count > 0 for any command other than TIC.
Generate a channel-program check if this is not the case.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 3335ddddf9e5ba7743dc8e3f767f4ef857ccd20c
https://github.com/qemu/qemu/commit/3335ddddf9e5ba7743dc8e3f767f4ef857ccd20c
Author: Cornelia Huck <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/event-facility.c
Log Message:
-----------
s390x/event-facility: fix receive mask check
For selective read event, we need to check if any event is requested
that is not active instead of whether none of the requested events is
active.
Reviewed-by: David Hildenbrand <address@hidden>
Reviewed-by: Eric Farman <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 6b7741c2bedeae2e8c54fffce81723ca0a0c25c0
https://github.com/qemu/qemu/commit/6b7741c2bedeae2e8c54fffce81723ca0a0c25c0
Author: Cornelia Huck <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/css.c
Log Message:
-----------
s390x/css: start with cleared cstat/dstat
When executing the start function, we should start with a clear state
regarding subchannel and device status; it is easy to forget updating one
of them after the ccw has been processed.
Note that we don't need to care about resetting the various control
fields: They are cleared by tsch(), and if they were still pending,
we wouldn't be able to execute the start function in the first
place.
Also note that we don't want to clear cstat/dstat if a suspended
subchannel is resumed.
This fixes a bug where we would continue to present channel-program
check in cstat even though later ccw requests for the subchannel
finished without error (i.e. cstat should be 0).
Cc: address@hidden
Signed-off-by: Cornelia Huck <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Commit: f7822aa8b610a4fec57a09066974e5c088592c08
https://github.com/qemu/qemu/commit/f7822aa8b610a4fec57a09066974e5c088592c08
Author: Cornelia Huck <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M include/hw/s390x/event-facility.h
Log Message:
-----------
s390x/event-facility: fix location of receive mask
For read event mask, we assumed that the layout of the sccb was
|sccb header|event buffer header|receive mask|...|
The correct layout, however, is
|sccb header|receive mask|...|
as in-buffer and
|sccb header|event buffer header|...|
as out-buffer.
Fix this: This makes selective read work.
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 0f79b89bc2bdbed35d2c57d722acc4c31a5a2ce4
https://github.com/qemu/qemu/commit/0f79b89bc2bdbed35d2c57d722acc4c31a5a2ce4
Author: Alexander Yarygin <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M pc-bios/s390-ccw/main.c
Log Message:
-----------
pc-bios/s390-ccw: Device detection in higher subchannel sets
If no bootdevice was specified, we try to autodetect a suitable IPL
device. Current code only searched in subchannel set 0; extend this
search to higher subchannel sets as well.
Signed-off-by: Alexander Yarygin <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 9f70b85c405093f24d9df22215ead6596819832f
https://github.com/qemu/qemu/commit/9f70b85c405093f24d9df22215ead6596819832f
Author: Cornelia Huck <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M pc-bios/s390-ccw.img
Log Message:
-----------
pc-bios/s390-ccw: rebuild image
Contains:
- Device detection in higher subchannel sets
Signed-off-by: Cornelia Huck <address@hidden>
Commit: c0194a00b0beb66814756ee255a8a86b2a92c27e
https://github.com/qemu/qemu/commit/c0194a00b0beb66814756ee255a8a86b2a92c27e
Author: Jens Freimann <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/intc/s390_flic_kvm.c
M kvm-all.c
Log Message:
-----------
s390x/kvm: make setting of in-kernel irq routes more efficient
When we add new adapter routes we call kvm_irqchip_add_route() for every
virtqueue and in the same step also do the KVM_SET_GSI_ROUTING ioctl.
This is unnecessary costly as the interface allows us to set multiple
routes in one go. Let's first add all routes to the table stored in the
global kvm_state and then do the ioctl to commit the routes to the
in-kernel irqchip.
This saves us several ioctls to the kernel where for each call a list
is reallocated and populated.
Signed-off-by: Jens Freimann <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 5b9f6345a616c321a5ea2f35e09043edd933767e
https://github.com/qemu/qemu/commit/5b9f6345a616c321a5ea2f35e09043edd933767e
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M configure
A gdb-xml/s390-cr.xml
M target-s390x/gdbstub.c
Log Message:
-----------
s390x/gdb: support reading/writing of control registers
Let's support reading and writing of control registers for kvm and tcg.
We have to take care of flushing the tlb (tcg) and pushing the changed
registers into kvm.
Reviewed-by: Christian Borntraeger <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 073f57ae347a41cbcc940ae0286bbbab993b9148
https://github.com/qemu/qemu/commit/073f57ae347a41cbcc940ae0286bbbab993b9148
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/sclpcpu.c
Log Message:
-----------
sclp/s390: rework sclp cpu hotplug device notification
Let's get rid of this strange local variable + irq logic and
work directly on the QOM. (hint: what happens if two such devices
are created?)
We could introduce proper QOM class + state for the cpu hotplug device,
however that would result in too much overhead for a simple
"trigger_signal" function.
Also remove one unnecessary class function initialization.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: f6102c329c43d7d5e0bee1fc2fe4043e05f9810c
https://github.com/qemu/qemu/commit/f6102c329c43d7d5e0bee1fc2fe4043e05f9810c
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/event-facility.c
M include/hw/s390x/event-facility.h
Log Message:
-----------
s390/sclp: rework sclp event facility initialization + device realization
The current code only works by chance. The event facility is a sysbus
device, but specifies in its class structure as parent the DeviceClass
(instead of a device class).
The init function in return lies therefore at the same position as
the init function of SysBusDeviceClass and gets triggered instead -
a very bad idea of doing that (e.g. the parameter types don't match).
Let's bring the initialization code up to date, initializing the event
facility + child events in .instance_init and moving the realization of
the child events out of the init call, into the realization step.
Device realization is now automatically performed when the event facility
itself is realized. That realization implicitly triggers realization of
the child bus, which in turn initializes the events.
Please note that we have to manually propagate the realization of the bus
children, common code still has a TODO set for that task.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 35925a7a73e7df4118cb11667095bd2d8fc4e091
https://github.com/qemu/qemu/commit/35925a7a73e7df4118cb11667095bd2d8fc4e091
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/event-facility.c
M hw/s390x/sclpcpu.c
M hw/s390x/sclpquiesce.c
M include/hw/s390x/event-facility.h
Log Message:
-----------
s390/sclp: replace sclp event types with proper defines
Introduce TYPE_SCLP_QUIESCE and make use of it. Also use
TYPE_SCLP_CPU_HOTPLUG where applicable.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 732bdd383ee06be2655b1a849a628ff03b0000b8
https://github.com/qemu/qemu/commit/732bdd383ee06be2655b1a849a628ff03b0000b8
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/sclp.c
Log Message:
-----------
s390/sclp: temporarily fix unassignment/reassignment of memory subregions
Commit 374f2981d1f1 ("memory: protect current_map by RCU") broke
unassignment of standby memory on s390x. Looks like that the new
parallelism allows races with our (semi broken) memory hotplug code. The
flatview_unref() can now be executed after our unparenting. Therefore
memory_region_unref() tries to unreference the MemoryRegion itself instead
of the parent.
In theory, MemoryRegions are now bound to separate devices that control
their lifetime. We don't have this yet, so we really want to control their
lifetime manually.
This patch fixes it temporarily, until we have a proper rework. The only
drawback is that they won't pop up in "info qom-tree", but that's better
than qemu crashes.
We have to release the reference to a memory region after a
memory_region_find, as it automatically takes a reference. As we're now
able to reassign memory, the MemoryRegion is in fact deleted (otherwise
vmstate_register_ram() would complain).
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 515190d9da0c85084d32d6ad36afb15a6d35729e
https://github.com/qemu/qemu/commit/515190d9da0c85084d32d6ad36afb15a6d35729e
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/sclp.c
M include/hw/s390x/event-facility.h
M include/hw/s390x/sclp.h
Log Message:
-----------
s390/sclp: introduce a root sclp device
Let's create a root sclp device, which has other sclp devices as
children (e.g. the event facility for now) and can later be used
for migration of sclp specific attributes and setup of memory.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 25a3c5af57db0319f5cfb4c439efbc78b230599e
https://github.com/qemu/qemu/commit/25a3c5af57db0319f5cfb4c439efbc78b230599e
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/sclp.c
M include/hw/s390x/sclp.h
Log Message:
-----------
s390/sclp: move sclp_execute related functions into the SCLP class
Let's move the sclp_execute related functions into the SCLP class
and pass the device state as parameter, so we have easy access to
the SCLPDevice later on.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 1723a1b6313851d9704961e1f527312ee0a5fce4
https://github.com/qemu/qemu/commit/1723a1b6313851d9704961e1f527312ee0a5fce4
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/sclp.c
M include/hw/s390x/sclp.h
Log Message:
-----------
s390/sclp: move sclp_service_interrupt into the sclp device
Let's make that function a method of the new sclp device, keeping
the wrapper for existing users.
We can now let go of get_event_facility().
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 311467f77eab5c3e1f8e0f6f446201e3a1f46e70
https://github.com/qemu/qemu/commit/311467f77eab5c3e1f8e0f6f446201e3a1f46e70
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/s390-virtio-ccw.c
M hw/s390x/sclp.c
Log Message:
-----------
s390: no need to manually parse for slots and maxmem
ram_slots and maxram_size has already been parsed and verified by
common code for us.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 2998ffee245e3a141ce1b6fca127744c3e19dc63
https://github.com/qemu/qemu/commit/2998ffee245e3a141ce1b6fca127744c3e19dc63
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/s390-virtio.c
Log Message:
-----------
s390: disallow memory hotplug for the s390-virtio machine
That machine type doesn't currently support memory hotplug, so let's abort
if it is requested. Reason is, that the virtio queues are allocated for now
at the end of the initial ram - extending the ram is therefore not possible.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: b02ef3d92b19ad304a84433d3817f0903296ebc7
https://github.com/qemu/qemu/commit/b02ef3d92b19ad304a84433d3817f0903296ebc7
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/sclp.c
Log Message:
-----------
s390/sclp: ignore memory hotplug operations if it is disabled
If no memory hotplug device was created, the sclp command facility is
not exposed (SCLP_FC_ASSIGN_ATTACH_READ_STOR). We therefore have no
memory hotplug and should correctly report SCLP_RC_INVALID_SCLP_COMMAND
if any such command is executed.
This gets rid of these ugly asserts that could have been triggered
for the s390-virtio machine.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 1cf065fb87e8787e3e9cebcdb4713b81e4e61422
https://github.com/qemu/qemu/commit/1cf065fb87e8787e3e9cebcdb4713b81e4e61422
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/s390-virtio-ccw.c
M hw/s390x/s390-virtio.c
M hw/s390x/sclp.c
Log Message:
-----------
s390: move memory calculation into the sclp device
The restrictions for memory calculation belong to the sclp device.
Let's move the calculation to that point, so we are able to unify it for
both s390 machines. The sclp device is the first device to be initialized.
It performs the calculation and safely stores it in the machine, where
other parts of the system can access an reuse it.
The memory hotplug device is now only created when it is really needed.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 80d23275e3c4bc93fa6f123613d5ff389ed3fc62
https://github.com/qemu/qemu/commit/80d23275e3c4bc93fa6f123613d5ff389ed3fc62
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/s390-virtio-ccw.c
M hw/s390x/s390-virtio.c
M hw/s390x/s390-virtio.h
Log Message:
-----------
s390: unify allocation of initial memory
Now that the calculation of the initial memory is hidden in the sclp
device, we can unify the allocation of the initial memory.
The remaining ugly part is the reserved memory for the virtio queues,
but that can be cleaned up later.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 71a2fd355d8fa429bcc04740c260635e084255f2
https://github.com/qemu/qemu/commit/71a2fd355d8fa429bcc04740c260635e084255f2
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/sclp.c
M include/hw/s390x/sclp.h
Log Message:
-----------
s390/sclp: store the increment_size in the sclp device
Let's calculate it once and reuse it.
Suggested-by: Matthew Rosato <address@hidden>
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: bd80a8ad555c2b5f79591b29edcf8196b8a5109b
https://github.com/qemu/qemu/commit/bd80a8ad555c2b5f79591b29edcf8196b8a5109b
Author: David Hildenbrand <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/s390x/sclp.c
Log Message:
-----------
s390/sclp: simplify calculation of rnmax
rnmax can be directly calculated using machine->maxram_size.
Reviewed-by: Matthew Rosato <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Commit: 9d34158a5af734e8de0b42b0a7228200c426a8d0
https://github.com/qemu/qemu/commit/9d34158a5af734e8de0b42b0a7228200c426a8d0
Author: Peter Maydell <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M configure
A gdb-xml/s390-cr.xml
M hw/intc/s390_flic_kvm.c
M hw/s390x/css.c
M hw/s390x/event-facility.c
M hw/s390x/s390-virtio-ccw.c
M hw/s390x/s390-virtio.c
M hw/s390x/s390-virtio.h
M hw/s390x/sclp.c
M hw/s390x/sclpcpu.c
M hw/s390x/sclpquiesce.c
M include/hw/s390x/event-facility.h
M include/hw/s390x/sclp.h
M kvm-all.c
M pc-bios/s390-ccw.img
M pc-bios/s390-ccw/main.c
M target-s390x/gdbstub.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20150907' into staging
s390x fixes and improvements:
- various bugfixes (css/event-facility)
- more efficient adapter interrupt routes setup
- gdb enhancement
- sclp got treated with a lot of remodelling/cleanup
# gpg: Signature made Mon 07 Sep 2015 15:42:43 BST using RSA key ID C6F02FAF
# gpg: Good signature from "Cornelia Huck <address@hidden>"
# gpg: aka "Cornelia Huck <address@hidden>"
* remotes/cohuck/tags/s390x-20150907: (23 commits)
s390/sclp: simplify calculation of rnmax
s390/sclp: store the increment_size in the sclp device
s390: unify allocation of initial memory
s390: move memory calculation into the sclp device
s390/sclp: ignore memory hotplug operations if it is disabled
s390: disallow memory hotplug for the s390-virtio machine
s390: no need to manually parse for slots and maxmem
s390/sclp: move sclp_service_interrupt into the sclp device
s390/sclp: move sclp_execute related functions into the SCLP class
s390/sclp: introduce a root sclp device
s390/sclp: temporarily fix unassignment/reassignment of memory subregions
s390/sclp: replace sclp event types with proper defines
s390/sclp: rework sclp event facility initialization + device realization
sclp/s390: rework sclp cpu hotplug device notification
s390x/gdb: support reading/writing of control registers
s390x/kvm: make setting of in-kernel irq routes more efficient
pc-bios/s390-ccw: rebuild image
pc-bios/s390-ccw: Device detection in higher subchannel sets
s390x/event-facility: fix location of receive mask
s390x/css: start with cleared cstat/dstat
...
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/8f1ed5f50814...9d34158a5af7
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] fde820: s390x/css: handle ccw-0 TIC correctly,
GitHub <=