From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rik van Riel Subject: Re: [RFC -v2 PATCH 2/3] sched: add yield_to function Date: Mon, 20 Dec 2010 10:40:15 -0500 Message-ID: <4D0F78DF.9010908@redhat.com> References: <20101213224434.7495edb2@annuminas.surriel.com> <20101213224657.7e141746@annuminas.surriel.com> <1292306896.7448.157.camel@marge.simson.net> <4D0A6D34.6070806@redhat.com> <1292569018.7772.75.camel@marge.simson.net> <1292570143.7772.84.camel@marge.simson.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Avi Kiviti , Srivatsa Vaddagiri , Peter Zijlstra , Chris Wright To: Mike Galbraith Return-path: In-Reply-To: <1292570143.7772.84.camel@marge.simson.net> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 12/17/2010 02:15 AM, Mike Galbraith wrote: > BTW, with this vruntime donation thingy, what prevents a task from > forking off accomplices who do nothing but wait for a wakeup and > yield_to(exploit)? > > Even swapping vruntimes in the same cfs_rq is dangerous as hell, because > one party is going backward. I just realized the answer to this question. We only give cpu time to tasks that are runnable, but not currently running. That ensures one task cannot block others from running by having time yielded to it constantly.