All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: qemu-s390x@nongnu.org, qemu-devel@nongnu.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Richard Henderson <rth@twiddle.net>,
	Alexander Graf <agraf@suse.de>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Peter Crosthwaite <crosthwaite.peter@gmail.com>,
	Thomas Huth <thuth@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v1 for-2-12 06/15] s390x/flic: factor out injection of floating interrupts
Date: Tue, 12 Dec 2017 14:49:44 +0100	[thread overview]
Message-ID: <20171212144944.09860296.cohuck@redhat.com> (raw)
In-Reply-To: <20171211134740.8235-7-david@redhat.com>

On Mon, 11 Dec 2017 14:47:31 +0100
David Hildenbrand <david@redhat.com> wrote:

> Let the flic device handle it internally. This will allow us to later
> on store floating interrupts in the flic for the TCG case.
> 
> This now also simplifies kvm.c. All that's left is the fallback
> interface for floating interrupts, which is no triggered directly via

s/no/now/

> the flic in case anything goes wrong.
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>  hw/intc/s390_flic.c          | 31 ++++++++++++++++++++
>  hw/intc/s390_flic_kvm.c      | 63 ++++++++++++++++++++++++++++++++++++----
>  include/hw/s390x/s390_flic.h |  5 ++++
>  target/s390x/cpu.h           |  7 ++++-
>  target/s390x/interrupt.c     | 42 +++++++++++----------------
>  target/s390x/kvm-stub.c      | 13 ---------
>  target/s390x/kvm.c           | 68 ++++----------------------------------------
>  target/s390x/kvm_s390x.h     | 10 +------
>  8 files changed, 123 insertions(+), 116 deletions(-)
> 
> diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c
> index a78bdf1d90..8d521c415a 100644
> --- a/hw/intc/s390_flic.c
> +++ b/hw/intc/s390_flic.c
> @@ -131,6 +131,34 @@ static int qemu_s390_inject_airq(S390FLICState *fs, uint8_t type,
>      return 0;
>  }
>  
> +static void qemu_s390_inject_service(S390FLICState *fs, uint32_t parm)
> +{
> +
> +    S390CPU *dummy_cpu = s390_cpu_addr2state(0);
> +
> +    /* FIXME: don't inject into dummy CPU */
> +    cpu_inject_service(dummy_cpu, parm);
> +}
> +
> +static void qemu_s390_inject_io(S390FLICState *fs, uint16_t subchannel_id,
> +                                uint16_t subchannel_nr, uint32_t io_int_parm,
> +                                uint32_t io_int_word)
> +{
> +    S390CPU *dummy_cpu = s390_cpu_addr2state(0);
> +
> +    /* FIXME: don't inject into dummy CPU */
> +    cpu_inject_io(dummy_cpu, subchannel_id, subchannel_nr, io_int_parm,
> +                  io_int_word);
> +}
> +
> +static void qemu_s390_inject_crw_mchk(S390FLICState *fs)
> +{
> +    S390CPU *dummy_cpu = s390_cpu_addr2state(0);
> +
> +    /* FIXME: don't inject into dummy CPU */
> +    cpu_inject_crw_mchk(dummy_cpu);
> +}
> +
>  static void qemu_s390_flic_reset(DeviceState *dev)
>  {
>      QEMUS390FLICState *flic = QEMU_S390_FLIC(dev);
> @@ -172,6 +200,9 @@ static void qemu_s390_flic_class_init(ObjectClass *oc, void *data)
>      fsc->clear_io_irq = qemu_s390_clear_io_flic;
>      fsc->modify_ais_mode = qemu_s390_modify_ais_mode;
>      fsc->inject_airq = qemu_s390_inject_airq;
> +    fsc->inject_service = qemu_s390_inject_service;
> +    fsc->inject_io = qemu_s390_inject_io;
> +    fsc->inject_crw_mchk = qemu_s390_inject_crw_mchk;
>  }

As you now have a callback for ->inject_io(), make
qemu_s390_inject_airq() invoke it directly instead of going the detour
through s390_io_interrupt()?

>  
>  static Property s390_flic_common_properties[] = {

(...)

Generally looks sane.

One thing I noticed: You removed the caching of the flic (in the old
kvm inject routine), and you generally do more qom invocations (first,
to find the common flic; then, to translate to the qemu or kvm flic).
Not sure if this might be a problem (probably not).

  reply	other threads:[~2017-12-12 13:50 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-11 13:47 [Qemu-devel] [PATCH v1 for-2-12 00/15] s390x: flic rework, tcg flic support and tcg David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 01/15] cpus: make pause_all_cpus() play with SMP on single threaded TCG David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 02/15] cpu-exec: fix missed CPU kick during interrupt injection David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 03/15] s390x/tcg: deliver multiple interrupts in a row David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 04/15] s390x/flic: simplify flic initialization David Hildenbrand
2017-12-11 14:00   ` Christian Borntraeger
2017-12-11 17:17   ` Cornelia Huck
2017-12-11 20:34     ` David Hildenbrand
2017-12-12  9:15       ` Cornelia Huck
2017-12-12  9:58         ` David Hildenbrand
2017-12-12 10:37           ` Cornelia Huck
2017-12-12 10:45         ` David Hildenbrand
2017-12-12 11:49           ` Cornelia Huck
2017-12-12 10:54     ` David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 05/15] s390x/tcg: simplify machine check handling David Hildenbrand
2018-01-09 16:31   ` Cornelia Huck
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 06/15] s390x/flic: factor out injection of floating interrupts David Hildenbrand
2017-12-12 13:49   ` Cornelia Huck [this message]
2017-12-12 14:13     ` Christian Borntraeger
2017-12-12 14:29       ` Cornelia Huck
2017-12-12 15:17         ` David Hildenbrand
2017-12-12 15:28           ` Cornelia Huck
2017-12-13  9:16             ` Christian Borntraeger
2017-12-13  9:31               ` David Hildenbrand
2017-12-13 10:05                 ` Christian Borntraeger
2018-01-09 16:34                 ` Cornelia Huck
2017-12-13  9:34               ` Cornelia Huck
2017-12-12 16:36     ` David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 07/15] s390x/tcg: tolerate wrong wakeups due to " David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 08/15] s390x/flic: make floating interrupts on TCG actually floating David Hildenbrand
2018-01-09 16:42   ` Cornelia Huck
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 09/15] s390x/tcg: implement TEST PENDING INTERRUPTION David Hildenbrand
2017-12-11 18:01   ` Cornelia Huck
2017-12-11 20:32     ` David Hildenbrand
2017-12-12  9:13       ` Cornelia Huck
2017-12-12 16:32         ` David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 10/15] s390x/flic: implement qemu_s390_clear_io_flic() David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 11/15] s390x/flic: optimize CPU wakeup for TCG David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 12/15] s390x/tcg: fix size + content of STSI blocks David Hildenbrand
2018-01-09 18:42   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 13/15] s390x/tcg: STSI overhaul David Hildenbrand
2018-01-09 17:32   ` Cornelia Huck
2018-01-17 16:26     ` [Qemu-devel] [qemu-s390x] " David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 14/15] s390x/tcg: remove SMP warning David Hildenbrand
2017-12-11 13:47 ` [Qemu-devel] [PATCH v1 for-2-12 15/15] configure: s390x supports mttcg now David Hildenbrand
2018-01-09 17:33 ` [Qemu-devel] [PATCH v1 for-2-12 00/15] s390x: flic rework, tcg flic support and tcg Cornelia Huck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171212144944.09860296.cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=agraf@suse.de \
    --cc=borntraeger@de.ibm.com \
    --cc=crosthwaite.peter@gmail.com \
    --cc=david@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.