[Qemu-devel] [PATCH v2 00/18] s390x: flic rework, tcg flic support and STSI

David Hildenbrand posted 18 patches 7 years, 9 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180117174047.6382-1-david@redhat.com
Test checkpatch passed
Test docker-build@min-glib passed
Test docker-mingw@fedora passed
Test docker-quick@centos6 passed
Test ppc passed
Test s390x passed
There is a newer version of this series
configure                    |   1 +
hw/intc/s390_flic.c          | 257 +++++++++++++++++++++++++++++++++++++++--
hw/intc/s390_flic_kvm.c      |  84 +++++++++++---
hw/s390x/css.c               |  10 +-
hw/s390x/s390-virtio-ccw.c   |   4 -
hw/s390x/virtio-ccw.c        |   4 +-
include/hw/s390x/s390_flic.h |  57 ++++++++--
target/s390x/cpu.c           |  10 --
target/s390x/cpu.h           |  99 ++++++++--------
target/s390x/excp_helper.c   | 147 +++++++++---------------
target/s390x/helper.h        |   1 +
target/s390x/insn-data.def   |   1 +
target/s390x/internal.h      |   5 -
target/s390x/interrupt.c     | 100 ++++------------
target/s390x/kvm-stub.c      |  13 ---
target/s390x/kvm.c           |  70 +-----------
target/s390x/kvm_s390x.h     |  10 +-
target/s390x/misc_helper.c   | 266 +++++++++++++++++++++++++++----------------
target/s390x/translate.c     |   8 ++
19 files changed, 680 insertions(+), 467 deletions(-)
[Qemu-devel] [PATCH v2 00/18] s390x: flic rework, tcg flic support and STSI
Posted by David Hildenbrand 7 years, 9 months ago
This patch series implements floating interrupt support for TCG and fixes
STSI so we can remove warnings related to s390x SMP and MTTCG.

KVM code has to be touched in order to factor out the injection routines
into the flic ("s390x/flic: factor out injection of floating interrupts").
Basic testing didn't reveal any problems so far.

With this series I am now able to run fedora 26/27 and Ubuntu 17.10+ with
16 VCPUs (MTTCG) on a 8CPU host, doing a make -j16 in the guest. I got
nasty stalls in the guest beforehand.

Now also included: More flic related caching to avoid recurring
conversions.

Based on: https://github.com/cohuck/qemu.git s390x-next
Available at: https://github.com/davidhildenbrand/qemu.git s390x-queue

v1 -> v2:
- Added due to discussions:
 - "s390x/flic: no need to call s390_io_interrupt() from flic"
 - "s390x/tcg: cache the qemu flic in a central function"
 - "s390x/kvm: cache the kvm flic in a central function"
 - "s390x/flic: cache the common flic class in a central function"
- "s390x/flic: simplify flic initialization"
 -  no need to check for tcg_enabled()
- "s390x/tcg: STSI overhaul"
 - rephrased the comment
- "s390x/tcg: implement TEST PENDING INTERRUPTION"
 - renamed local variable
- "s390x: fix size + content of STSI blocks"
 - added typedefs whiel touching it. Thomas, therefore not added your r-b.
- Minor spelling errors fixed
- Dropped a couple of unneeded OBJECT() conversion


David Hildenbrand (18):
  s390x/tcg: deliver multiple interrupts in a row
  s390x/flic: simplify flic initialization
  s390x/tcg: simplify lookup of flic
  s390x/tcg: simplify machine check handling
  s390x/flic: factor out injection of floating interrupts
  s390x/flic: no need to call s390_io_interrupt() from flic
  s390x/tcg: tolerate wrong wakeups due to floating interrupts
  s390x/flic: make floating interrupts on TCG actually floating
  s390x/tcg: implement TEST PENDING INTERRUPTION
  s390x/flic: implement qemu_s390_clear_io_flic()
  s390x/flic: optimize CPU wakeup for TCG
  s390x: fix size + content of STSI blocks
  s390x/tcg: STSI overhaul
  s390x/tcg: remove SMP warning
  configure: s390x supports mttcg now
  s390x/tcg: cache the qemu flic in a central function
  s390x/kvm: cache the kvm flic in a central function
  s390x/flic: cache the common flic class in a central function

 configure                    |   1 +
 hw/intc/s390_flic.c          | 257 +++++++++++++++++++++++++++++++++++++++--
 hw/intc/s390_flic_kvm.c      |  84 +++++++++++---
 hw/s390x/css.c               |  10 +-
 hw/s390x/s390-virtio-ccw.c   |   4 -
 hw/s390x/virtio-ccw.c        |   4 +-
 include/hw/s390x/s390_flic.h |  57 ++++++++--
 target/s390x/cpu.c           |  10 --
 target/s390x/cpu.h           |  99 ++++++++--------
 target/s390x/excp_helper.c   | 147 +++++++++---------------
 target/s390x/helper.h        |   1 +
 target/s390x/insn-data.def   |   1 +
 target/s390x/internal.h      |   5 -
 target/s390x/interrupt.c     | 100 ++++------------
 target/s390x/kvm-stub.c      |  13 ---
 target/s390x/kvm.c           |  70 +-----------
 target/s390x/kvm_s390x.h     |  10 +-
 target/s390x/misc_helper.c   | 266 +++++++++++++++++++++++++++----------------
 target/s390x/translate.c     |   8 ++
 19 files changed, 680 insertions(+), 467 deletions(-)

-- 
2.14.3


Re: [Qemu-devel] [PATCH v2 00/18] s390x: flic rework, tcg flic support and STSI
Posted by Cornelia Huck 7 years, 9 months ago
On Wed, 17 Jan 2018 18:40:29 +0100
David Hildenbrand <david@redhat.com> wrote:

> This patch series implements floating interrupt support for TCG and fixes
> STSI so we can remove warnings related to s390x SMP and MTTCG.
> 
> KVM code has to be touched in order to factor out the injection routines
> into the flic ("s390x/flic: factor out injection of floating interrupts").
> Basic testing didn't reveal any problems so far.
> 
> With this series I am now able to run fedora 26/27 and Ubuntu 17.10+ with
> 16 VCPUs (MTTCG) on a 8CPU host, doing a make -j16 in the guest. I got
> nasty stalls in the guest beforehand.
> 
> Now also included: More flic related caching to avoid recurring
> conversions.

Basically, seems good to me. Will play with it a bit more.

I'd also love some reviews/acks.

Re: [Qemu-devel] [PATCH v2 00/18] s390x: flic rework, tcg flic support and STSI
Posted by Cornelia Huck 7 years, 9 months ago
On Wed, 17 Jan 2018 18:40:29 +0100
David Hildenbrand <david@redhat.com> wrote:

> This patch series implements floating interrupt support for TCG and fixes
> STSI so we can remove warnings related to s390x SMP and MTTCG.
> 
> KVM code has to be touched in order to factor out the injection routines
> into the flic ("s390x/flic: factor out injection of floating interrupts").
> Basic testing didn't reveal any problems so far.
> 
> With this series I am now able to run fedora 26/27 and Ubuntu 17.10+ with
> 16 VCPUs (MTTCG) on a 8CPU host, doing a make -j16 in the guest. I got
> nasty stalls in the guest beforehand.
> 
> Now also included: More flic related caching to avoid recurring
> conversions.

Hm...

(qemu) device_add virtio-net-ccw,id=xxx
(qemu) **
ERROR:/home/cohuck/git/qemu/target/s390x/excp_helper.c:342:do_mchk_interrupt: assertion failed: (env->cregs[14] & CR0_SERVICE_SC)
Aborted (core dumped)

Re: [Qemu-devel] [PATCH v2 00/18] s390x: flic rework, tcg flic support and STSI
Posted by Cornelia Huck 7 years, 9 months ago
On Thu, 25 Jan 2018 13:42:41 +0100
Cornelia Huck <cohuck@redhat.com> wrote:

> On Wed, 17 Jan 2018 18:40:29 +0100
> David Hildenbrand <david@redhat.com> wrote:
> 
> > This patch series implements floating interrupt support for TCG and fixes
> > STSI so we can remove warnings related to s390x SMP and MTTCG.
> > 
> > KVM code has to be touched in order to factor out the injection routines
> > into the flic ("s390x/flic: factor out injection of floating interrupts").
> > Basic testing didn't reveal any problems so far.
> > 
> > With this series I am now able to run fedora 26/27 and Ubuntu 17.10+ with
> > 16 VCPUs (MTTCG) on a 8CPU host, doing a make -j16 in the guest. I got
> > nasty stalls in the guest beforehand.
> > 
> > Now also included: More flic related caching to avoid recurring
> > conversions.  
> 
> Hm...
> 
> (qemu) device_add virtio-net-ccw,id=xxx
> (qemu) **
> ERROR:/home/cohuck/git/qemu/target/s390x/excp_helper.c:342:do_mchk_interrupt: assertion failed: (env->cregs[14] & CR0_SERVICE_SC)
> Aborted (core dumped)

Works much better if you check for CR14_CHANNEL_REPORT_SC instead :)

Re: [Qemu-devel] [PATCH v2 00/18] s390x: flic rework, tcg flic support and STSI
Posted by David Hildenbrand 7 years, 9 months ago
On 25.01.2018 13:47, Cornelia Huck wrote:
> On Thu, 25 Jan 2018 13:42:41 +0100
> Cornelia Huck <cohuck@redhat.com> wrote:
> 
>> On Wed, 17 Jan 2018 18:40:29 +0100
>> David Hildenbrand <david@redhat.com> wrote:
>>
>>> This patch series implements floating interrupt support for TCG and fixes
>>> STSI so we can remove warnings related to s390x SMP and MTTCG.
>>>
>>> KVM code has to be touched in order to factor out the injection routines
>>> into the flic ("s390x/flic: factor out injection of floating interrupts").
>>> Basic testing didn't reveal any problems so far.
>>>
>>> With this series I am now able to run fedora 26/27 and Ubuntu 17.10+ with
>>> 16 VCPUs (MTTCG) on a 8CPU host, doing a make -j16 in the guest. I got
>>> nasty stalls in the guest beforehand.
>>>
>>> Now also included: More flic related caching to avoid recurring
>>> conversions.  
>>
>> Hm...
>>
>> (qemu) device_add virtio-net-ccw,id=xxx
>> (qemu) **
>> ERROR:/home/cohuck/git/qemu/target/s390x/excp_helper.c:342:do_mchk_interrupt: assertion failed: (env->cregs[14] & CR0_SERVICE_SC)
>> Aborted (core dumped)
> 
> Works much better if you check for CR14_CHANNEL_REPORT_SC instead :)
> 

Thanks for testing and spotting the wrong assert!

-- 

Thanks,

David / dhildenb

Re: [Qemu-devel] [PATCH v2 00/18] s390x: flic rework, tcg flic support and STSI
Posted by Thomas Huth 7 years, 9 months ago
On 25.01.2018 14:11, David Hildenbrand wrote:
> On 25.01.2018 13:47, Cornelia Huck wrote:
>> On Thu, 25 Jan 2018 13:42:41 +0100
>> Cornelia Huck <cohuck@redhat.com> wrote:
>>
>>> On Wed, 17 Jan 2018 18:40:29 +0100
>>> David Hildenbrand <david@redhat.com> wrote:
>>>
>>>> This patch series implements floating interrupt support for TCG and fixes
>>>> STSI so we can remove warnings related to s390x SMP and MTTCG.
>>>>
>>>> KVM code has to be touched in order to factor out the injection routines
>>>> into the flic ("s390x/flic: factor out injection of floating interrupts").
>>>> Basic testing didn't reveal any problems so far.
>>>>
>>>> With this series I am now able to run fedora 26/27 and Ubuntu 17.10+ with
>>>> 16 VCPUs (MTTCG) on a 8CPU host, doing a make -j16 in the guest. I got
>>>> nasty stalls in the guest beforehand.
>>>>
>>>> Now also included: More flic related caching to avoid recurring
>>>> conversions.  
>>>
>>> Hm...
>>>
>>> (qemu) device_add virtio-net-ccw,id=xxx
>>> (qemu) **
>>> ERROR:/home/cohuck/git/qemu/target/s390x/excp_helper.c:342:do_mchk_interrupt: assertion failed: (env->cregs[14] & CR0_SERVICE_SC)
>>> Aborted (core dumped)
>>
>> Works much better if you check for CR14_CHANNEL_REPORT_SC instead :)
> 
> Thanks for testing and spotting the wrong assert!
We definitely need to get tests/virtio-net-test.c running on s390x, too ;-)

 Thomas