diff options
author | Yi Min Zhao <zyimin@linux.vnet.ibm.com> | 2017-02-20 05:15:01 +0300 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2017-04-06 14:15:37 +0300 |
commit | a8920950131b1394f9e99ff57a5cf5ceeb0cc25c (patch) | |
tree | 1aa07375bfc5eaa1726c0c78f87858a9c75452b6 /arch/s390/kvm/trace-s390.h | |
parent | 519783935451764b397f2a712de5ea778ff77fdf (diff) | |
download | linux-a8920950131b1394f9e99ff57a5cf5ceeb0cc25c.tar.xz |
KVM: s390: introduce adapter interrupt inject function
Inject adapter interrupts on a specified adapter which allows to
retrieve the adapter flags, e.g. if the adapter is subject to AIS
facility or not. And add documentation for this interface.
For adapters subject to AIS, handle the airq injection suppression
for a given ISC according to the interruption mode:
- before injection, if NO-Interruptions Mode, just return 0 and
suppress, otherwise, allow the injection.
- after injection, if SINGLE-Interruption Mode, change it to
NO-Interruptions Mode to suppress the following interrupts.
Besides, add tracepoint for suppressed airq and AIS mode transitions.
Signed-off-by: Yi Min Zhao <zyimin@linux.vnet.ibm.com>
Signed-off-by: Fei Li <sherrylf@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'arch/s390/kvm/trace-s390.h')
-rw-r--r-- | arch/s390/kvm/trace-s390.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/s390/kvm/trace-s390.h b/arch/s390/kvm/trace-s390.h index b32994d1546a..78b7e847984a 100644 --- a/arch/s390/kvm/trace-s390.h +++ b/arch/s390/kvm/trace-s390.h @@ -311,6 +311,27 @@ TRACE_EVENT(kvm_s390_modify_ais_mode, "Single-Interruption Mode" : "No-Interruptions Mode") ); +/* + * Trace point for suppressed adapter I/O interrupt. + */ +TRACE_EVENT(kvm_s390_airq_suppressed, + TP_PROTO(__u32 id, __u8 isc), + TP_ARGS(id, isc), + + TP_STRUCT__entry( + __field(__u32, id) + __field(__u8, isc) + ), + + TP_fast_assign( + __entry->id = id; + __entry->isc = isc; + ), + + TP_printk("adapter I/O interrupt suppressed (id:%x isc:%x)", + __entry->id, __entry->isc) + ); + #endif /* _TRACE_KVMS390_H */ |