Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp3299118imm; Fri, 24 Aug 2018 14:26:30 -0700 (PDT) X-Google-Smtp-Source: ANB0Vda4AJ50HajjyfhVEOAhUk85NznpFQGIfIqQhDJk3UkldYYD+Yxb+KmktZW3ay0tIr588kni X-Received: by 2002:a63:fc05:: with SMTP id j5-v6mr3213945pgi.1.1535145990691; Fri, 24 Aug 2018 14:26:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535145990; cv=none; d=google.com; s=arc-20160816; b=hfiLYDgs4IEGsFicluPR7Ae9zXUbPLoNQTn9RKUtSuUKojH8GJdkII7WygF0d71htc BXJv7pMXrJBiiAabCA/hN6MnJkQoNXU/9K+IYUZ9s9U7Q8MwtZLPFVPdDnNCmEWs8wEg kG21KJ4B+r0Ds8NI0MAg/yUrcm6B5nMQeFeJJNws9U/ERHsDxUMPXP5q+khX5a7ZUIv8 V04TYiwB+wNy7iE2mNG6MTyNk9+5FSfda+Q70Qz582eQjSXE1Y3zE0zoLxlNqv4vgCPX 9N07Jp8tofErSA6xY+lia7yqJol/tbwsU8F+MvqxnoQMzSNTKwgxVh6cqQphGQAYeB9a UOYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=wVNaP7cQg4a3pxkFxPonWowsN2mCVx8YyA1KYt5WFAA=; b=PpnZs6IFLqa5/qad+lL3xZt442m4JNGjxcjcCnscdU4002/25OPxvh7PjKIar2yxhq uBEYHksqcfF0V7mizCJ71V2ioOxQk9t32zyicLcjHl0ksW/8W4Yys4ynpz+osDBFd5KU wjL2wO8D48Bt+xGopyLIczBcc06eA9z+BpJ+TEbtwoscTOvob1oH3JO8YhtklbFaEZtY YarkOCkXqzCO2yEkTtWjiqBPo5ROQQJ4spT6zucN4gq2npYICfDsOHXxnScsEpI7DPXR EaBCy318eyoL47GtvzROrBIPZuiuWtxMwr25FHhIyfqd+hjInCX+1c4OhwZ5HoNpD+Vg Cg/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="IJrf/wln"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a2-v6si7750842pgh.396.2018.08.24.14.26.15; Fri, 24 Aug 2018 14:26:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b="IJrf/wln"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727965AbeHYBBM (ORCPT + 99 others); Fri, 24 Aug 2018 21:01:12 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:36530 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726992AbeHYBBM (ORCPT ); Fri, 24 Aug 2018 21:01:12 -0400 Received: by mail-pg1-f195.google.com with SMTP id h17-v6so4840161pgv.3 for ; Fri, 24 Aug 2018 14:24:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=wVNaP7cQg4a3pxkFxPonWowsN2mCVx8YyA1KYt5WFAA=; b=IJrf/wlnJ9i6ujQ6UjFtIiV+pYIIdkX2aqCR01XqJ/WZNIAyxv2YuJ9u13tTgSfnsz +nPrpeQAr1ReuXTxlSU1uenOBZpMHry/H4y+Mqm5srnFgPvOsFxSqGqpL2zJqETIY+69 anoZKQdXnvH0g1s+aqg+8Ks4ifjBCopLONpi7ONxUdUA3E/wnfOq/iN93M50pKb9p/z+ Qt90VvEmV52ddzQS7GB83t61R6Al92vncWCX1rf6l1g6ty9BbZMfcuFS9o6WoDfxzg7g 4FbxQJq49+MY7VTnH2Ef0QjUyWSIFNXNG/aOtz8YLTX2ZAeK8saXrVnd4Vz5eLuvhR0n H/JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=wVNaP7cQg4a3pxkFxPonWowsN2mCVx8YyA1KYt5WFAA=; b=HxAabnAedmewCdgeNvPSWjtlixUSC8jd8YBlfWDgDuN7xu0AhzMS/5rssPWUftSsud XDU0JxfIAjtKk2aLVCSwPHnw1vVPoliKyuqtxmnhSgkOZV8Ks701dQZAXyZB3mdzY6Fs +3N/DrSBsijPxdKTSZ4NKWySQxQ9MaDTahTYF+os9700mTM2rRhagvNAL0JBMMOkaOpX 2qLlaGOkHZlA5H87f7qjPensoq/g4WYpm1EgPImg5P3Ze5noCHdyobKFRd53GwZnNR6Q 9iuxr+TN6kvNIILNDwfF/aZqPnL22DBMGCeNngGos6t32cu/yeZt6u+hMLaBND3tLxKo 4Odg== X-Gm-Message-State: APzg51CsBGeG994eE7ieCB3pIVXJtGMSBGUhoEnDiUvpgf7gi01M9j3s pWFy97Wx4Wue/DInW/7LFzQfJQ== X-Received: by 2002:a63:e001:: with SMTP id e1-v6mr3247118pgh.380.1535145890768; Fri, 24 Aug 2018 14:24:50 -0700 (PDT) Received: from smuckle.san.corp.google.com ([2620:15c:2d:3:fa74:b312:5fef:6cbf]) by smtp.gmail.com with ESMTPSA id l9-v6sm10200260pgg.79.2018.08.24.14.24.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 Aug 2018 14:24:50 -0700 (PDT) Subject: Re: [PATCH] sched/fair: vruntime should normalize when switching from fair To: Peter Zijlstra , Miguel de Dios Cc: Ingo Molnar , linux-kernel@vger.kernel.org, kernel-team@android.com, Todd Kjos , Paul Turner , Quentin Perret , Patrick Bellasi , Chris Redpath , Morten Rasmussen , John Dias References: <20180817182728.76129-1-smuckle@google.com> <20180824093227.GN24124@hirez.programming.kicks-ass.net> <20180824094742.GJ24142@hirez.programming.kicks-ass.net> From: Steve Muckle Message-ID: Date: Fri, 24 Aug 2018 14:24:48 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180824094742.GJ24142@hirez.programming.kicks-ass.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/24/2018 02:47 AM, Peter Zijlstra wrote: >>> On 08/17/2018 11:27 AM, Steve Muckle wrote: > >>>> When rt_mutex_setprio changes a task's scheduling class to RT, >>>> we're seeing cases where the task's vruntime is not updated >>>> correctly upon return to the fair class. > >>>> Specifically, the following is being observed: >>>> - task is deactivated while still in the fair class >>>> - task is boosted to RT via rt_mutex_setprio, which changes >>>> the task to RT and calls check_class_changed. >>>> - check_class_changed leads to detach_task_cfs_rq, at which point >>>> the vruntime_normalized check sees that the task's state is TASK_WAKING, >>>> which results in skipping the subtraction of the rq's min_vruntime >>>> from the task's vruntime >>>> - later, when the prio is deboosted and the task is moved back >>>> to the fair class, the fair rq's min_vruntime is added to >>>> the task's vruntime, even though it wasn't subtracted earlier. > > I'm thinking that is an incomplete scenario; where do we get to > TASK_WAKING. Yes there's a missing bit of context here at the beginning that the task to be boosted had already been put into TASK_WAKING.