All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre Morel <pmorel@linux.ibm.com>
To: Matthew Rosato <mjrosato@linux.ibm.com>, linux-s390@vger.kernel.org
Cc: alex.williamson@redhat.com, cohuck@redhat.com,
	schnelle@linux.ibm.com, farman@linux.ibm.com,
	borntraeger@linux.ibm.com, hca@linux.ibm.com, gor@linux.ibm.com,
	gerald.schaefer@linux.ibm.com, agordeev@linux.ibm.com,
	frankja@linux.ibm.com, david@redhat.com, imbrenda@linux.ibm.com,
	vneethv@linux.ibm.com, oberpar@linux.ibm.com,
	freude@linux.ibm.com, thuth@redhat.com, pasic@linux.ibm.com,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 05/32] s390/airq: pass more TPI info to airq handlers
Date: Mon, 13 Dec 2021 15:35:08 +0100	[thread overview]
Message-ID: <3e84e25c-825a-e791-a689-91b50b38aca9@linux.ibm.com> (raw)
In-Reply-To: <20211207205743.150299-6-mjrosato@linux.ibm.com>



On 12/7/21 21:57, Matthew Rosato wrote:
> A subsequent patch will introduce an airq handler that requires additional
> TPI information beyond directed vs floating, so pass the entire tpi_info
> structure via the handler.  Only pci actually uses this information today,
> for the other airq handlers this is effectively a no-op.
> 
> Reviewed-by: Eric Farman <farman@linux.ibm.com>
> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>

Reviewed-by: Pierre Morel <pmorel@linux.ibm.com>


> ---
>   arch/s390/include/asm/airq.h     | 3 ++-
>   arch/s390/kvm/interrupt.c        | 4 +++-
>   arch/s390/pci/pci_irq.c          | 9 +++++++--
>   drivers/s390/cio/airq.c          | 2 +-
>   drivers/s390/cio/qdio_thinint.c  | 6 ++++--
>   drivers/s390/crypto/ap_bus.c     | 9 ++++++---
>   drivers/s390/virtio/virtio_ccw.c | 4 +++-
>   7 files changed, 26 insertions(+), 11 deletions(-)
> 
> diff --git a/arch/s390/include/asm/airq.h b/arch/s390/include/asm/airq.h
> index 01936fdfaddb..7918a7d09028 100644
> --- a/arch/s390/include/asm/airq.h
> +++ b/arch/s390/include/asm/airq.h
> @@ -12,10 +12,11 @@
>   
>   #include <linux/bit_spinlock.h>
>   #include <linux/dma-mapping.h>
> +#include <asm/tpi.h>
>   
>   struct airq_struct {
>   	struct hlist_node list;		/* Handler queueing. */
> -	void (*handler)(struct airq_struct *airq, bool floating);
> +	void (*handler)(struct airq_struct *airq, struct tpi_info *tpi_info);
>   	u8 *lsi_ptr;			/* Local-Summary-Indicator pointer */
>   	u8 lsi_mask;			/* Local-Summary-Indicator mask */
>   	u8 isc;				/* Interrupt-subclass */
> diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
> index c3bd993fdd0c..f9b872e358c6 100644
> --- a/arch/s390/kvm/interrupt.c
> +++ b/arch/s390/kvm/interrupt.c
> @@ -28,6 +28,7 @@
>   #include <asm/switch_to.h>
>   #include <asm/nmi.h>
>   #include <asm/airq.h>
> +#include <asm/tpi.h>
>   #include "kvm-s390.h"
>   #include "gaccess.h"
>   #include "trace-s390.h"
> @@ -3261,7 +3262,8 @@ int kvm_s390_gisc_unregister(struct kvm *kvm, u32 gisc)
>   }
>   EXPORT_SYMBOL_GPL(kvm_s390_gisc_unregister);
>   
> -static void gib_alert_irq_handler(struct airq_struct *airq, bool floating)
> +static void gib_alert_irq_handler(struct airq_struct *airq,
> +				  struct tpi_info *tpi_info)
>   {
>   	inc_irq_stat(IRQIO_GAL);
>   	process_gib_alert_list();
> diff --git a/arch/s390/pci/pci_irq.c b/arch/s390/pci/pci_irq.c
> index 954bb7a83124..880bcd73f11a 100644
> --- a/arch/s390/pci/pci_irq.c
> +++ b/arch/s390/pci/pci_irq.c
> @@ -11,6 +11,7 @@
>   
>   #include <asm/isc.h>
>   #include <asm/airq.h>
> +#include <asm/tpi.h>
>   
>   static enum {FLOATING, DIRECTED} irq_delivery;
>   
> @@ -216,8 +217,11 @@ static void zpci_handle_fallback_irq(void)
>   	}
>   }
>   
> -static void zpci_directed_irq_handler(struct airq_struct *airq, bool floating)
> +static void zpci_directed_irq_handler(struct airq_struct *airq,
> +				      struct tpi_info *tpi_info)
>   {
> +	bool floating = !tpi_info->directed_irq;
> +
>   	if (floating) {
>   		inc_irq_stat(IRQIO_PCF);
>   		zpci_handle_fallback_irq();
> @@ -227,7 +231,8 @@ static void zpci_directed_irq_handler(struct airq_struct *airq, bool floating)
>   	}
>   }
>   
> -static void zpci_floating_irq_handler(struct airq_struct *airq, bool floating)
> +static void zpci_floating_irq_handler(struct airq_struct *airq,
> +				      struct tpi_info *tpi_info)
>   {
>   	unsigned long si, ai;
>   	struct airq_iv *aibv;
> diff --git a/drivers/s390/cio/airq.c b/drivers/s390/cio/airq.c
> index e56535c99888..2f2226786319 100644
> --- a/drivers/s390/cio/airq.c
> +++ b/drivers/s390/cio/airq.c
> @@ -99,7 +99,7 @@ static irqreturn_t do_airq_interrupt(int irq, void *dummy)
>   	rcu_read_lock();
>   	hlist_for_each_entry_rcu(airq, head, list)
>   		if ((*airq->lsi_ptr & airq->lsi_mask) != 0)
> -			airq->handler(airq, !tpi_info->directed_irq);
> +			airq->handler(airq, tpi_info);
>   	rcu_read_unlock();
>   
>   	return IRQ_HANDLED;
> diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c
> index 8e09bf3a2fcd..9b9335dd06db 100644
> --- a/drivers/s390/cio/qdio_thinint.c
> +++ b/drivers/s390/cio/qdio_thinint.c
> @@ -15,6 +15,7 @@
>   #include <asm/qdio.h>
>   #include <asm/airq.h>
>   #include <asm/isc.h>
> +#include <asm/tpi.h>
>   
>   #include "cio.h"
>   #include "ioasm.h"
> @@ -93,9 +94,10 @@ static inline u32 clear_shared_ind(void)
>   /**
>    * tiqdio_thinint_handler - thin interrupt handler for qdio
>    * @airq: pointer to adapter interrupt descriptor
> - * @floating: flag to recognize floating vs. directed interrupts (unused)
> + * @tpi_info: interrupt information (e.g. floating vs directed -- unused)
>    */
> -static void tiqdio_thinint_handler(struct airq_struct *airq, bool floating)
> +static void tiqdio_thinint_handler(struct airq_struct *airq,
> +				   struct tpi_info *tpi_info)
>   {
>   	u64 irq_time = S390_lowcore.int_clock;
>   	u32 si_used = clear_shared_ind();
> diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c
> index 1986243f9cd3..df1a038442db 100644
> --- a/drivers/s390/crypto/ap_bus.c
> +++ b/drivers/s390/crypto/ap_bus.c
> @@ -27,6 +27,7 @@
>   #include <linux/kthread.h>
>   #include <linux/mutex.h>
>   #include <asm/airq.h>
> +#include <asm/tpi.h>
>   #include <linux/atomic.h>
>   #include <asm/isc.h>
>   #include <linux/hrtimer.h>
> @@ -129,7 +130,8 @@ static int ap_max_adapter_id = 63;
>   static struct bus_type ap_bus_type;
>   
>   /* Adapter interrupt definitions */
> -static void ap_interrupt_handler(struct airq_struct *airq, bool floating);
> +static void ap_interrupt_handler(struct airq_struct *airq,
> +				 struct tpi_info *tpi_info);
>   
>   static bool ap_irq_flag;
>   
> @@ -442,9 +444,10 @@ static enum hrtimer_restart ap_poll_timeout(struct hrtimer *unused)
>   /**
>    * ap_interrupt_handler() - Schedule ap_tasklet on interrupt
>    * @airq: pointer to adapter interrupt descriptor
> - * @floating: ignored
> + * @tpi_info: ignored
>    */
> -static void ap_interrupt_handler(struct airq_struct *airq, bool floating)
> +static void ap_interrupt_handler(struct airq_struct *airq,
> +				 struct tpi_info *tpi_info)
>   {
>   	inc_irq_stat(IRQIO_APB);
>   	tasklet_schedule(&ap_tasklet);
> diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c
> index d35e7a3f7067..52c376d15978 100644
> --- a/drivers/s390/virtio/virtio_ccw.c
> +++ b/drivers/s390/virtio/virtio_ccw.c
> @@ -33,6 +33,7 @@
>   #include <asm/virtio-ccw.h>
>   #include <asm/isc.h>
>   #include <asm/airq.h>
> +#include <asm/tpi.h>
>   
>   /*
>    * virtio related functions
> @@ -203,7 +204,8 @@ static void drop_airq_indicator(struct virtqueue *vq, struct airq_info *info)
>   	write_unlock_irqrestore(&info->lock, flags);
>   }
>   
> -static void virtio_airq_handler(struct airq_struct *airq, bool floating)
> +static void virtio_airq_handler(struct airq_struct *airq,
> +				struct tpi_info *tpi_info)
>   {
>   	struct airq_info *info = container_of(airq, struct airq_info, airq);
>   	unsigned long ai;
> 

-- 
Pierre Morel
IBM Lab Boeblingen

  parent reply	other threads:[~2021-12-13 14:34 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-07 20:57 [PATCH 00/32] KVM: s390: enable zPCI for interpretive execution Matthew Rosato
2021-12-07 20:57 ` [PATCH 01/32] s390/sclp: detect the zPCI interpretation facility Matthew Rosato
2021-12-08 11:12   ` Christian Borntraeger
2021-12-08 14:33     ` Eric Farman
2021-12-08 13:06   ` Claudio Imbrenda
2021-12-07 20:57 ` [PATCH 02/32] s390/sclp: detect the AISII facility Matthew Rosato
2021-12-08 11:13   ` Christian Borntraeger
2021-12-08 13:07   ` Claudio Imbrenda
2021-12-07 20:57 ` [PATCH 03/32] s390/sclp: detect the AENI facility Matthew Rosato
2021-12-08 11:17   ` Christian Borntraeger
2021-12-08 13:08   ` Claudio Imbrenda
2021-12-07 20:57 ` [PATCH 04/32] s390/sclp: detect the AISI facility Matthew Rosato
2021-12-08 11:18   ` Christian Borntraeger
2021-12-08 13:09   ` Claudio Imbrenda
2021-12-07 20:57 ` [PATCH 05/32] s390/airq: pass more TPI info to airq handlers Matthew Rosato
2021-12-08 11:25   ` Christian Borntraeger
2021-12-08 13:14   ` Claudio Imbrenda
2021-12-13 14:35   ` Pierre Morel [this message]
2021-12-07 20:57 ` [PATCH 06/32] s390/airq: allow for airq structure that uses an input vector Matthew Rosato
2021-12-08 10:04   ` Thomas Huth
2021-12-08 12:59   ` Christian Borntraeger
2021-12-07 20:57 ` [PATCH 07/32] s390/pci: externalize the SIC operation controls and routine Matthew Rosato
2021-12-08 13:09   ` Christian Borntraeger
2021-12-08 13:53     ` Niklas Schnelle
2021-12-08 15:33       ` Matthew Rosato
2021-12-08 15:59         ` Niklas Schnelle
2021-12-08 16:20           ` Matthew Rosato
2021-12-08 16:41             ` Niklas Schnelle
2021-12-08 18:18               ` Niklas Schnelle
2021-12-07 20:57 ` [PATCH 08/32] s390/pci: stash associated GISA designation Matthew Rosato
2021-12-09 15:07   ` Christian Borntraeger
2021-12-10 19:01   ` Eric Farman
2021-12-13 14:59   ` Pierre Morel
2021-12-07 20:57 ` [PATCH 09/32] s390/pci: export some routines related to RPCIT processing Matthew Rosato
2021-12-09 15:20   ` Christian Borntraeger
2021-12-07 20:57 ` [PATCH 10/32] s390/pci: stash dtsm and maxstbl Matthew Rosato
2021-12-08 16:18   ` Niklas Schnelle
2021-12-09  9:13   ` Pierre Morel
2021-12-09 15:25   ` Christian Borntraeger
2021-12-07 20:57 ` [PATCH 11/32] s390/pci: add helper function to find device by handle Matthew Rosato
2021-12-09 15:28   ` Christian Borntraeger
2021-12-10 19:04   ` Eric Farman
2021-12-07 20:57 ` [PATCH 12/32] s390/pci: get SHM information from list pci Matthew Rosato
2021-12-08 12:21   ` Niklas Schnelle
2021-12-09 18:25     ` Matthew Rosato
2021-12-09 15:47   ` Christian Borntraeger
2021-12-10  8:45     ` Niklas Schnelle
2021-12-07 20:57 ` [PATCH 13/32] KVM: s390: pci: add basic kvm_zdev structure Matthew Rosato
2021-12-09 15:54   ` Christian Borntraeger
2021-12-10 19:04   ` Eric Farman
2021-12-13 15:19   ` Pierre Morel
2021-12-14  9:15   ` Pierre Morel
2021-12-17 20:26   ` Matthew Rosato
2021-12-20 17:26     ` Pierre Morel
2021-12-07 20:57 ` [PATCH 14/32] KVM: s390: pci: do initial setup for AEN interpretation Matthew Rosato
2021-12-08  7:53   ` kernel test robot
2021-12-08  7:53     ` kernel test robot
2021-12-09 19:54   ` Christian Borntraeger
2021-12-09 20:20     ` Matthew Rosato
2021-12-09 20:23       ` Christian Borntraeger
2021-12-10  8:36       ` Niklas Schnelle
2021-12-10  9:54   ` Pierre Morel
2021-12-10 10:55     ` Pierre Morel
2021-12-07 20:57 ` [PATCH 15/32] KVM: s390: pci: enable host forwarding of Adapter Event Notifications Matthew Rosato
2021-12-10 21:51   ` Eric Farman
2021-12-17 16:56   ` Christian Borntraeger
2021-12-17 17:42     ` Matthew Rosato
2021-12-07 20:57 ` [PATCH 16/32] KVM: s390: expose the guest zPCI interpretation facility Matthew Rosato
2021-12-17 15:05   ` Christian Borntraeger
2021-12-17 15:19     ` Matthew Rosato
2021-12-17 16:58       ` Christian Borntraeger
2021-12-17 17:13         ` Matthew Rosato
2021-12-07 20:57 ` [PATCH 17/32] KVM: s390: expose the guest Adapter Interruption Source ID facility Matthew Rosato
2021-12-17 15:06   ` Christian Borntraeger
2021-12-07 20:57 ` [PATCH 18/32] KVM: s390: expose guest Adapter Event Notification Interpretation facility Matthew Rosato
2021-12-07 20:57 ` [PATCH 19/32] KVM: s390: mechanism to enable guest zPCI Interpretation Matthew Rosato
2021-12-10 13:27   ` Christian Borntraeger
2021-12-10 14:21     ` Matthew Rosato
2021-12-07 20:57 ` [PATCH 20/32] KVM: s390: pci: provide routines for enabling/disabling interpretation Matthew Rosato
2021-12-08  9:44   ` Niklas Schnelle
2021-12-08 15:04     ` Matthew Rosato
2021-12-14  9:16   ` Pierre Morel
2021-12-07 20:57 ` [PATCH 21/32] KVM: s390: pci: provide routines for enabling/disabling interrupt forwarding Matthew Rosato
2021-12-08 10:58   ` kernel test robot
2021-12-08 10:58     ` kernel test robot
2021-12-14  9:26   ` Pierre Morel
2021-12-07 20:57 ` [PATCH 22/32] KVM: s390: pci: provide routines for enabling/disabling IOAT assist Matthew Rosato
2021-12-14 17:46   ` Pierre Morel
2021-12-14 18:13     ` Matthew Rosato
2021-12-07 20:57 ` [PATCH 23/32] KVM: s390: pci: handle refresh of PCI translations Matthew Rosato
2021-12-08  8:04   ` kernel test robot
2021-12-08  8:04     ` kernel test robot
2021-12-08 10:30   ` Niklas Schnelle
2021-12-08 18:04     ` Matthew Rosato
2021-12-14 16:59   ` Pierre Morel
2021-12-14 17:54     ` Matthew Rosato
2021-12-16 14:39       ` Niklas Schnelle
2021-12-16 14:51         ` Matthew Rosato
2021-12-17  9:41           ` Niklas Schnelle
2021-12-07 20:57 ` [PATCH 24/32] KVM: s390: intercept the rpcit instruction Matthew Rosato
2021-12-14 17:04   ` Pierre Morel
2021-12-14 18:00     ` Matthew Rosato
2021-12-07 20:57 ` [PATCH 25/32] vfio/pci: re-introduce CONFIG_VFIO_PCI_ZDEV Matthew Rosato
2021-12-17 16:49   ` Christian Borntraeger
2021-12-17 17:54     ` Matthew Rosato
2021-12-07 20:57 ` [PATCH 26/32] vfio-pci/zdev: wire up group notifier Matthew Rosato
2021-12-21 18:47   ` Alex Williamson
2021-12-07 20:57 ` [PATCH 27/32] vfio-pci/zdev: wire up zPCI interpretive execution support Matthew Rosato
2021-12-14 16:30   ` Pierre Morel
2021-12-21 18:48   ` Alex Williamson
2021-12-07 20:57 ` [PATCH 28/32] vfio-pci/zdev: wire up zPCI adapter interrupt forwarding support Matthew Rosato
2021-12-14  9:48   ` Pierre Morel
2021-12-07 20:57 ` [PATCH 29/32] vfio-pci/zdev: wire up zPCI IOAT assist support Matthew Rosato
2021-12-14  9:46   ` Pierre Morel
2021-12-07 20:57 ` [PATCH 30/32] vfio-pci/zdev: add DTSM to clp group capability Matthew Rosato
2021-12-14  9:58   ` Pierre Morel
2021-12-14 14:59     ` Matthew Rosato
2021-12-07 20:57 ` [PATCH 31/32] KVM: s390: introduce CPU feature for zPCI Interpretation Matthew Rosato
2021-12-07 20:57 ` [PATCH 32/32] MAINTAINERS: additional files related kvm s390 pci passthrough Matthew Rosato
2021-12-17 14:55   ` Christian Borntraeger
2021-12-21 19:11     ` Alex Williamson
2021-12-07 21:16 ` [PATCH 00/32] KVM: s390: enable zPCI for interpretive execution Matthew Rosato

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=3e84e25c-825a-e791-a689-91b50b38aca9@linux.ibm.com \
    --to=pmorel@linux.ibm.com \
    --cc=agordeev@linux.ibm.com \
    --cc=alex.williamson@redhat.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=farman@linux.ibm.com \
    --cc=frankja@linux.ibm.com \
    --cc=freude@linux.ibm.com \
    --cc=gerald.schaefer@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mjrosato@linux.ibm.com \
    --cc=oberpar@linux.ibm.com \
    --cc=pasic@linux.ibm.com \
    --cc=schnelle@linux.ibm.com \
    --cc=thuth@redhat.com \
    --cc=vneethv@linux.ibm.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.