From: Michael Mueller <mimu@linux.ibm.com>
To: pmorel@linux.ibm.com, KVM Mailing List <kvm@vger.kernel.org>
Cc: Linux-S390 Mailing List <linux-s390@vger.kernel.org>,
linux-kernel@vger.kernel.org,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Janosch Frank <frankja@linux.ibm.com>,
David Hildenbrand <david@redhat.com>,
Cornelia Huck <cohuck@redhat.com>,
Halil Pasic <pasic@linux.ibm.com>
Subject: Re: [PATCH v7 13/15] KVM: s390: add gib_alert_irq_handler()
Date: Tue, 5 Feb 2019 13:52:17 +0100 [thread overview]
Message-ID: <3599eeec-eec1-6326-ba34-5e0f64c45934@linux.ibm.com> (raw)
In-Reply-To: <50f05038-f414-50f5-dbe7-e2bcca0b8433@linux.ibm.com>
On 05.02.19 12:38, Pierre Morel wrote:
> On 31/01/2019 09:52, Michael Mueller wrote:
>> The patch implements a handler for GIB alert interruptions
>> on the host. Its task is to alert guests that interrupts are
>> pending for them.
>>
>> A GIB alert interrupt statistic counter is added as well:
>>
>> $ cat /proc/interrupts
>> CPU0 CPU1
>> ...
>> GAL: 23 37 [I/O] GIB Alert
>> ...
>>
>> Signed-off-by: Michael Mueller <mimu@linux.ibm.com>
>> Acked-by: Halil Pasic <pasic@linux.ibm.com>
>> ---
>
> The only thing that bother me is the short timer's expiration value.
> But it is optimization and it is working for me so.
>
> Reviewed-by: Pierre Morel<pmorel@linux.ibm.com>
Thanks, Pierre.
For completion I want to add that one sees roughly 1 timer
restart per vcpu that gets kicked in my test scenario with
12 AP IRQ guests. The guests have 4 x 1, 4 x 4 and 4 x 8 vcpus
backed by 8 IFLs. Furthermore the 12 guests share 4 CEX5C cards
each configured with 3 AP queues. On the guest runs a single
threaded AP driver that performs RSA decryptions with CRT private
keys with a short 512 bit length to get many ops/s. That
run has no additional cpu load.
./run_ap_load.sh 12
[1] 12:53:09 [SUCCESS] root@ap04
[2] 12:53:09 [SUCCESS] root@ap08
[3] 12:53:10 [SUCCESS] root@ap02
[4] 12:53:10 [SUCCESS] root@ap03
[5] 12:53:10 [SUCCESS] root@ap01
[6] 12:53:10 [SUCCESS] root@ap12
[7] 12:53:10 [SUCCESS] root@ap06
[8] 12:53:10 [SUCCESS] root@ap05
[9] 12:53:10 [SUCCESS] root@ap07
[10] 12:53:10 [SUCCESS] root@ap10
[11] 12:53:10 [SUCCESS] root@ap09
[12] 12:53:10 [SUCCESS] root@ap11
KVM guests: 12
ica_perf threads: 1
stress cpu threads: 0
stress io threads: 0
expected AP IRQs: 600048
observed AP IRQs: 600048
observed VAI IRQs: 1311
observed GAL IRQs: 575505
__gal_stats_ipm_dirty = 613762
__gal_stats_timer_active = 0
__gal_stats_timer_no_restart = 600048
__gal_stats_timer_not_active = 600048
__gal_stats_timer_restart = 613762
__gal_stats_vcpus_kicked = 599688
The counters are placed as follows:
@@ -2998,6 +2999,7 @@ static void __airqs_kick_single_vcpu(struct kvm
*kvm, u8 deliverable_mask)
if (test_and_set_bit(vcpu_id, gi->kicked_mask))
return;
kvm_s390_vcpu_wakeup(vcpu);
+ __gal_stats_inc(kvm, vcpus_kicked);
return;
}
}
@@ -3013,11 +3015,14 @@ static enum hrtimer_restart
gisa_vcpu_kicker(struct hrtimer *timer)
pending_mask = gisa_get_ipm_or_restore_iam(gi);
if (pending_mask) {
+ __gal_stats_inc(kvm, ipm_dirty);
__airqs_kick_single_vcpu(kvm, pending_mask);
hrtimer_forward_now(timer, ns_to_ktime(gi->expires));
+ __gal_stats_inc(kvm, timer_restart);
return HRTIMER_RESTART;
};
+ __gal_stats_inc(kvm, timer_no_restart);
return HRTIMER_NORESTART;
}
Cheers,
Michael
next prev parent reply other threads:[~2019-02-05 12:52 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-31 8:52 [PATCH v7 00/15] KVM: s390: make use of the GIB Michael Mueller
2019-01-31 8:52 ` [PATCH v7 01/15] KVM: s390: drop obsolete else path Michael Mueller
2019-01-31 8:52 ` [PATCH v7 02/15] KVM: s390: make bitmap declaration consistent Michael Mueller
2019-01-31 8:52 ` [PATCH v7 03/15] KVM: s390: move bitmap idle_mask into arch struct top level Michael Mueller
2019-01-31 12:19 ` Halil Pasic
2019-01-31 8:52 ` [PATCH v7 04/15] KVM: s390: coding style kvm_s390_gisa_init/clear() Michael Mueller
2019-01-31 8:52 ` [PATCH v7 05/15] KVM: s390: use pending_irqs_no_gisa() where appropriate Michael Mueller
2019-01-31 8:52 ` [PATCH v7 06/15] KVM: s390: remove kvm_s390_ from gisa static inline functions Michael Mueller
2019-01-31 8:52 ` [PATCH v7 07/15] KVM: s390: introduce struct kvm_s390_gisa_interrupt Michael Mueller
2019-01-31 8:52 ` [PATCH v7 08/15] s390/cio: add function chsc_sgib() Michael Mueller
2019-01-31 8:52 ` [PATCH v7 09/15] KVM: s390: add the GIB and its related life-cyle functions Michael Mueller
2019-01-31 8:52 ` [PATCH v7 10/15] KVM: s390: add kvm reference to struct sie_page2 Michael Mueller
2019-01-31 8:52 ` [PATCH v7 11/15] KVM: s390: add functions to (un)register GISC with GISA Michael Mueller
2019-01-31 17:41 ` Cornelia Huck
2019-01-31 8:52 ` [PATCH v7 12/15] KVM: s390: kvm_s390_gisa_clear() now clears the IPM only Michael Mueller
2019-01-31 14:39 ` Halil Pasic
2019-02-05 10:05 ` Pierre Morel
2019-01-31 8:52 ` [PATCH v7 13/15] KVM: s390: add gib_alert_irq_handler() Michael Mueller
2019-02-05 11:38 ` Pierre Morel
2019-02-05 12:52 ` Michael Mueller [this message]
2019-01-31 8:52 ` [PATCH v7 14/15] KVM: s390: start using the GIB Michael Mueller
2019-01-31 8:52 ` [PATCH v7 15/15] KVM: s390: fix possible null pointer dereference in pending_irqs() Michael Mueller
2019-01-31 17:47 ` Cornelia Huck
2019-02-05 8:57 ` Christian Borntraeger
2019-02-01 9:36 ` Pierre Morel
2019-01-31 8:52 ` [PATCH v7 15/15] KVM: s390: test for non NULL gisa origin " Michael Mueller
2019-01-31 8:59 ` Michael Mueller
2019-02-06 17:09 ` [PATCH v7 00/15] KVM: s390: make use of the GIB Christian Borntraeger
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=3599eeec-eec1-6326-ba34-5e0f64c45934@linux.ibm.com \
--to=mimu@linux.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pasic@linux.ibm.com \
--cc=pmorel@linux.ibm.com \
--cc=schwidefsky@de.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.