public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Nico Boehr <nrb@linux.ibm.com>,
	Niklas Schnelle <schnelle@linux.ibm.com>,
	borntraeger@linux.ibm.com, frankja@linux.ibm.com,
	imbrenda@linux.ibm.com
Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org
Subject: Re: [PATCH v3 0/2] KVM: s390: add counters for vsie performance
Date: Wed, 6 Sep 2023 09:37:28 +0200	[thread overview]
Message-ID: <411a4c35-4f65-c166-0eb0-994b8e39f9c6@redhat.com> (raw)
In-Reply-To: <169390280362.97137.14761686200997364254@t14-nrb>

On 05.09.23 10:33, Nico Boehr wrote:
> Quoting Niklas Schnelle (2023-09-05 09:53:40)
>> On Mon, 2023-09-04 at 15:01 +0200, Nico Boehr wrote:
>>> v3:
>>> ---
>>> * rename te -> entry (David)
>>> * add counters for gmap reuse and gmap create (David)
>>>
>>> v2:
>>> ---
>>> * also count shadowing of pages (Janosch)
>>> * fix naming of counters (Janosch)
>>> * mention shadowing of multiple levels is counted in each level (Claudio)
>>> * fix inaccuate commit description regarding gmap notifier (Claudio)
>>>
>>> When running a guest-3 via VSIE, guest-1 needs to shadow the page table
>>> structures of guest-2.
>>>
>>> To reflect changes of the guest-2 in the _shadowed_ page table structures,
>>> the _shadowing_ sturctures sometimes need to be rebuilt. Since this is a
>>> costly operation, it should be avoided whenever possible.
>>>
>>> This series adds kvm stat counters to count the number of shadow gmaps
>>> created and a tracepoint whenever something is unshadowed. This is a first
>>> step to try and improve VSIE performance.
>>>
>>> Please note that "KVM: s390: add tracepoint in gmap notifier" has some
>>> checkpatch --strict findings. I did not fix these since the tracepoint
>>> definition would then look completely different from all the other
>>> tracepoints in arch/s390/kvm/trace-s390.h. If you want me to fix that,
>>> please let me know.
>>>
>>> While developing this, a question regarding the stat counters came up:
>>> there's usually no locking involved when the stat counters are incremented.
>>> On s390, GCC accidentally seems to do the right thing(TM) most of the time
>>> by generating a agsi instruction (which should be atomic given proper
>>> alignment). However, it's not guaranteed, so would we rather want to go
>>> with an atomic for the stat counters to avoid losing events? Or do we just
>>> accept the fact that we might loose events sometimes? Is there anything
>>> that speaks against having an atomic in kvm_stat?
>>>
>>
>> FWIW the PCI counters (/sys/kernel/debug/pci/<dev>/statistics) use
>> atomic64_add(). Also, s390's memory model is strong enough that these
>> are actually just normal loads/stores/adds (see
>> arch/s390/include/asm/atomic_ops.h) with the generic atomic64_xx()
>> adding debug instrumentation.
> 
> In KVM I am mostly concerned about the compiler since we just do counter++
> - right now this always seems to result in an agsi instruction, but that's
> of course not guaranteed.

Right, the compiler can do what it wants with that. The question is if 
we care about a slight imprecision, though.

Probably not worth the trouble for something that never happens and is 
only used for debugging purposes.

Using atomics would be cleaner, though.

-- 
Cheers,

David / dhildenb


  reply	other threads:[~2023-09-06  7:38 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-04 13:01 [PATCH v3 0/2] KVM: s390: add counters for vsie performance Nico Boehr
2023-09-04 13:01 ` [PATCH v3 1/2] KVM: s390: add stat counter for shadow gmap events Nico Boehr
2023-09-06  7:35   ` David Hildenbrand
2023-09-04 13:01 ` [PATCH v3 2/2] KVM: s390: add tracepoint in gmap notifier Nico Boehr
2023-09-05  7:53 ` [PATCH v3 0/2] KVM: s390: add counters for vsie performance Niklas Schnelle
2023-09-05  8:33   ` Nico Boehr
2023-09-06  7:37     ` David Hildenbrand [this message]
2023-09-07  8:50       ` Nico Boehr

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=411a4c35-4f65-c166-0eb0-994b8e39f9c6@redhat.com \
    --to=david@redhat.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=nrb@linux.ibm.com \
    --cc=schnelle@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox