All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Pan Xinhui <xinhui@linux.vnet.ibm.com>
Cc: kernellwp@gmail.com, linux-s390@vger.kernel.org,
	benh@kernel.crashing.org, jgross@suse.com, kvm@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>,
	will deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	virtualization@lists.linux-foundation.org, mingo@redhat.com,
	paulus@samba.org, mpe@ellerman.id.au,
	xen-devel-request@lists.xenproject.org,
	paulmck@linux.vnet.ibm.com, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v3 0/4] implement vcpu preempted check
Date: Fri, 30 Sep 2016 02:58:58 -0400 (EDT)	[thread overview]
Message-ID: <2136938368.606190.1475218738567.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <496ba299-1f1d-e98b-7827-f861eeea5558@linux.vnet.ibm.com>

> > > > Please consider s390 and (x86/arm) KVM. Once we have a few, more can
> > > > follow later, but I think its important to not only have PPC support for
> > > > this.
> > >
> > > Actually the s390 preemted check via sigp sense running  is available for
> > > all hypervisors (z/VM, LPAR and KVM) which implies everywhere as you can
> > > no longer buy s390 systems without LPAR.
> > >
> > > As Heiko already pointed out we could simply use a small inline function
> > > that calls cpu_is_preempted from arch/s390/lib/spinlock (or
> > > smp_vcpu_scheduled from smp.c)
> >
> > Sure, and I had vague memories of Heiko's email. This patch set however
> > completely fails to do that trivial hooking up.
> 
> sorry for that.
> I will try to work it out on x86.

x86 has no hypervisor support, and I'd like to understand the desired
semantics first, so I don't think it should block this series.  In
particular, there are at least the following choices:

1) exit to userspace (5-10.000 clock cycles best case) counts as
lock holder preemption

2) any time the vCPU thread not running counts as lock holder
preemption

To implement the latter you'd need a hypercall or MSR (at least as
a slow path), because the KVM preempt notifier is only active
during the KVM_RUN ioctl.

Paolo

WARNING: multiple messages have this Message-ID (diff)
From: Paolo Bonzini <pbonzini@redhat.com>
To: Pan Xinhui <xinhui@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>,
	linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	virtualization@lists.linux-foundation.org,
	linux-s390@vger.kernel.org,
	xen-devel-request@lists.xenproject.org, kvm@vger.kernel.org,
	benh@kernel.crashing.org, paulus@samba.org, mpe@ellerman.id.au,
	mingo@redhat.com, paulmck@linux.vnet.ibm.com,
	will deacon <will.deacon@arm.com>,
	kernellwp@gmail.com, jgross@suse.com, bsingharora@gmail.com,
	Heiko Carstens <heiko.carstens@de.ibm.com>
Subject: Re: [PATCH v3 0/4] implement vcpu preempted check
Date: Fri, 30 Sep 2016 02:58:58 -0400 (EDT)	[thread overview]
Message-ID: <2136938368.606190.1475218738567.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <496ba299-1f1d-e98b-7827-f861eeea5558@linux.vnet.ibm.com>

> > > > Please consider s390 and (x86/arm) KVM. Once we have a few, more can
> > > > follow later, but I think its important to not only have PPC support for
> > > > this.
> > >
> > > Actually the s390 preemted check via sigp sense running  is available for
> > > all hypervisors (z/VM, LPAR and KVM) which implies everywhere as you can
> > > no longer buy s390 systems without LPAR.
> > >
> > > As Heiko already pointed out we could simply use a small inline function
> > > that calls cpu_is_preempted from arch/s390/lib/spinlock (or
> > > smp_vcpu_scheduled from smp.c)
> >
> > Sure, and I had vague memories of Heiko's email. This patch set however
> > completely fails to do that trivial hooking up.
> 
> sorry for that.
> I will try to work it out on x86.

x86 has no hypervisor support, and I'd like to understand the desired
semantics first, so I don't think it should block this series.  In
particular, there are at least the following choices:

1) exit to userspace (5-10.000 clock cycles best case) counts as
lock holder preemption

2) any time the vCPU thread not running counts as lock holder
preemption

To implement the latter you'd need a hypercall or MSR (at least as
a slow path), because the KVM preempt notifier is only active
during the KVM_RUN ioctl.

Paolo

  reply	other threads:[~2016-09-30  6:58 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-21 11:45 [PATCH v3 0/4] implement vcpu preempted check Pan Xinhui
2016-07-21 11:45 ` [PATCH v3 1/4] kernel/sched: introduce vcpu preempted check interface Pan Xinhui
2016-07-21 11:45 ` Pan Xinhui
2016-07-21 11:45 ` [PATCH v3 2/4] powerpc/spinlock: support vcpu preempted check Pan Xinhui
2016-07-21 11:45 ` Pan Xinhui
2016-07-21 11:45 ` [PATCH v3 3/4] locking/osq: Drop the overhead of osq_lock() Pan Xinhui
2016-07-21 11:45 ` Pan Xinhui
2016-07-21 11:45 ` [PATCH v3 4/4] kernel/locking: Drop the overhead of {mutex, rwsem}_spin_on_owner Pan Xinhui
2016-07-21 11:45   ` [PATCH v3 4/4] kernel/locking: Drop the overhead of {mutex,rwsem}_spin_on_owner Pan Xinhui
2016-07-21 11:45   ` [PATCH v3 4/4] kernel/locking: Drop the overhead of {mutex, rwsem}_spin_on_owner Pan Xinhui
2016-09-29 10:10 ` [PATCH v3 0/4] implement vcpu preempted check Peter Zijlstra
2016-09-29 10:10   ` Peter Zijlstra
2016-09-29 10:23   ` Christian Borntraeger
2016-09-29 10:23     ` Christian Borntraeger
2016-09-29 10:31     ` Peter Zijlstra
2016-09-29 10:31       ` Peter Zijlstra
2016-09-30  5:03       ` Pan Xinhui
2016-09-30  5:03         ` Pan Xinhui
2016-09-30  6:58         ` Paolo Bonzini [this message]
2016-09-30  6:58           ` Paolo Bonzini
2016-09-30  8:52           ` Pan Xinhui
2016-09-30  8:52             ` Pan Xinhui
2016-09-30  9:08             ` Paolo Bonzini
2016-09-30  9:08             ` Paolo Bonzini
2016-09-30  9:31               ` Pan Xinhui
2016-09-30  9:31                 ` Pan Xinhui
2016-09-30 10:44           ` Christian Borntraeger
2016-09-30 10:44             ` Christian Borntraeger
2016-09-29 10:40     ` Christian Borntraeger
2016-09-29 10:40     ` Christian Borntraeger
2016-09-29 11:05       ` Christian Borntraeger
2016-09-29 11:05       ` Christian Borntraeger
2016-09-30  4:00   ` Pan Xinhui
2016-09-30  4:00     ` Pan Xinhui
2016-10-05 11:00 ` Christian Borntraeger
2016-10-05 11:00   ` Christian Borntraeger
  -- strict thread matches above, loose matches on Subject: below --
2016-07-21 11:45 Pan Xinhui

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=2136938368.606190.1475218738567.JavaMail.zimbra@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=benh@kernel.crashing.org \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jgross@suse.com \
    --cc=kernellwp@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=will.deacon@arm.com \
    --cc=xen-devel-request@lists.xenproject.org \
    --cc=xinhui.pan@linux.vnet.ibm.com \
    --cc=xinhui@linux.vnet.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.