public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Rik van Riel <riel@redhat.com>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	Avi Kiviti <avi@redhat.com>,
	Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>,
	Mike Galbraith <efault@gmx.de>,
	Chris Wright <chrisw@sous-sol.org>
Subject: Re: [RFC -v3 PATCH 2/3] sched: add yield_to function
Date: Tue, 04 Jan 2011 18:16:39 +0100	[thread overview]
Message-ID: <1294161399.2016.175.camel@laptop> (raw)
In-Reply-To: <20110104151345.3BC2.A69D9226@jp.fujitsu.com>

On Tue, 2011-01-04 at 15:14 +0900, KOSAKI Motohiro wrote:
> > From: Mike Galbraith <efault@gmx.de>
> > 
> > Add a yield_to function to the scheduler code, allowing us to
> > give enough of our timeslice to another thread to allow it to
> > run and release whatever resource we need it to release.
> > 
> > We may want to use this to provide a sys_yield_to system call
> > one day.
> 
> At least I want. Ruby has GIL(giant interpreter lock). And giant lock
> naturally enforce an app to implement cooperative multithreading model.
> Therefore it has similar problem with your one. Python solved this issue
> by slowing lock mechanism (two pthread-cond wakeup each GIL releasing), 
> but I don't want it.
> 
> Also, If pthread_cond_signal() call sys_yield_to imlicitly, we can
> avoid almost Nehalem (and other P2P cache arch) lock unfairness 
> problem. (probaby creating pthread_condattr_setautoyield_np or similar
> knob is good one)

NAK NAK NAK, yield_to is utter crap, and the only reason kvm 'needs' it
is because its wants to be utter crap (run unmodified guests).

There is plenty of sane serialization primitives for userspace, fix your
locking mess instead of pushing crap.

The only reason I'm maybe half-way considering this is because its a
pure in-kernel interface which we can 'fix' once unmodified guests
aren't important anymore.



  parent reply	other threads:[~2011-01-04 17:16 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-03 21:26 [RFC -v3 PATCH 0/3] directed yield for Pause Loop Exiting Rik van Riel
2011-01-03 21:27 ` [RFC -v3 PATCH 1/3] kvm: keep track of which task is running a KVM vcpu Rik van Riel
2011-01-03 21:29 ` [RFC -v3 PATCH 2/3] sched: add yield_to function Rik van Riel
2011-01-04  1:51   ` Mike Galbraith
2011-01-04  6:14   ` KOSAKI Motohiro
2011-01-04 12:03     ` Avi Kivity
2011-01-05  2:39       ` KOSAKI Motohiro
2011-01-05  8:35         ` Avi Kivity
2011-01-05  8:40           ` KOSAKI Motohiro
2011-01-05  9:08             ` Avi Kivity
2011-01-05  9:30               ` KOSAKI Motohiro
2011-01-05  9:34                 ` Avi Kivity
2011-01-05 10:24             ` Peter Zijlstra
2011-01-05 10:04         ` Peter Zijlstra
2011-01-04 17:16     ` Peter Zijlstra [this message]
2011-01-05  3:17       ` KOSAKI Motohiro
2011-01-04 14:28   ` Hillf Danton
2011-01-04 16:41   ` Hillf Danton
2011-01-04 16:44     ` Rik van Riel
2011-01-04 16:51       ` Hillf Danton
2011-01-04 16:54         ` Rik van Riel
2011-01-04 17:02           ` Hillf Danton
2011-01-04 17:08         ` Peter Zijlstra
2011-01-04 17:12           ` Hillf Danton
2011-01-04 17:22             ` Peter Zijlstra
2011-01-04 17:53           ` Rik van Riel
2011-01-04 18:05             ` Peter Zijlstra
2011-01-04 18:04   ` Peter Zijlstra
2011-01-04 18:53     ` Mike Galbraith
2011-01-05 16:57     ` Mike Galbraith
2011-01-05 17:04       ` Peter Zijlstra
2011-01-05 17:23         ` Mike Galbraith
2011-01-07  5:29         ` Mike Galbraith
2011-01-13  3:02           ` Rik van Riel
2011-01-13  3:26             ` Mike Galbraith
2011-01-13  5:08               ` Rik van Riel
2011-01-06 14:33       ` Hillf Danton
2011-01-05 17:10     ` Avi Kivity
2011-01-05 17:15       ` Peter Zijlstra
2011-01-05 17:19         ` Avi Kivity
2011-01-05 17:28           ` Peter Zijlstra
2011-01-05 17:35             ` Avi Kivity
2011-01-05 17:39               ` Peter Zijlstra
2011-01-06  3:49                 ` Tejun Heo
2011-01-03 21:30 ` [RFC -v3 PATCH 3/3] Subject: kvm: use yield_to instead of sleep in kvm_vcpu_on_spin Rik van Riel
2011-01-04  6:42 ` [RFC -v3 PATCH 0/3] directed yield for Pause Loop Exiting Mike Galbraith
2011-01-04  9:09   ` Avi Kivity
2011-01-04 10:32     ` Mike Galbraith
2011-01-04 10:35       ` Avi Kivity
2011-01-04  9:14 ` Avi Kivity
2011-01-04 10:26   ` Mike Galbraith
2011-01-04 17:20     ` Peter Zijlstra

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=1294161399.2016.175.camel@laptop \
    --to=a.p.zijlstra@chello.nl \
    --cc=avi@redhat.com \
    --cc=chrisw@sous-sol.org \
    --cc=efault@gmx.de \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=riel@redhat.com \
    --cc=vatsa@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox