Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp185539pxj; Thu, 20 May 2021 07:14:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyWVOLM+XN0IiC7rZOf9JSs2NoZwgYAEuioWsDxaW3a9uLAfpgr9Qz+zkY1h9HQnR9plpyv X-Received: by 2002:a05:6e02:5b0:: with SMTP id k16mr4537406ils.293.1621520069756; Thu, 20 May 2021 07:14:29 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1621520069; cv=pass; d=google.com; s=arc-20160816; b=jS/NG14Fk/j2VN9J+v/hkaJVP2c+yYRZEsM6q7bqkK/7CPK/rJAT0NKNo/Aqmwhvs3 lJxKt/sA9wUri/Xg44vUT67h29kvOjppDaZ3+O7lgtxInBVRWY3mylC3rfm5m96lrAYB yb5Ao/yNDZoF/NYng1/6oJlRYXKDTrb6tKpurlyjM8EHmfd7uihqkgBdrxJaqrTo1w1o kiqRvDK9ae/WX61MjIF9s0qTiqcdCsL/5TD1tMtU1espZnirw/UwjwZzfJPkO2rkc5Tx KTFMA4KaCHtPfT7JLXVHJPj22Lky3ctI06QkzAUBKbirL1RsdhZMPbWPrUiF5YbQ3u21 vshQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-language :content-transfer-encoding:in-reply-to:user-agent:date:message-id :from:references:cc:to:subject:dkim-signature; bh=T+QMbNqA+0lIrttnAt2Umj1ldsBbm0VngX6J/9WLTWU=; b=HTe/DRY2wb1Szh1VY5S1mfdH1PPKe2n2SvpNHe+QHxxXp2n9aUegzbAzPvbchOsuMB /zJN+6hd6ECAFsLjgvC892W3ParxlzhrTj31bzvTQ5T+32htcjHhbSZjRw5ClFZ/gBmo d1ZSvyVfI5pwJD3HWb62rrKnnmYOM4RJhMEzVxVgJLbNbpGcBGqMkCJ8ZNgU6LhlFCix TCEGf4N0Yp5epQ56yyISG6HIjkk7aeYIh4+zenCGlxstfa/mf8QkvMcc5HqYtVqIHfqZ ZGS+uU+CMifBVZUDjZcSXfdFvetV/hYN7P94djSRipjsKf3IcMvf60X+5eZHXZC9gVs4 NEHQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=C4Fi5UHt; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amd.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y19si2081838jap.30.2021.05.20.07.14.11; Thu, 20 May 2021 07:14:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=C4Fi5UHt; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243933AbhETOOH (ORCPT + 99 others); Thu, 20 May 2021 10:14:07 -0400 Received: from mail-bn8nam11on2073.outbound.protection.outlook.com ([40.107.236.73]:34829 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S241186AbhETOMu (ORCPT ); Thu, 20 May 2021 10:12:50 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ko9RZG3/fMBqnrB9wO+pN5UBcOU3isjTfC6eoLkuSO6mOUhiJjpESvuEuJHHa+YTNvfo+fEuAne1FT08uuS22gjhkKXenlanQKZfnsGcVlXJzD0Q6ISsU6H8KfMQ9aGxzhtSHxjeABK6RqtV7cMLSEg0ihVbB6PP9bbfs2SHaDEB5F5FubymlKgovC5lfGouh+QRnxVktNhI2t5v7yL192J+7a+X1yyg+dQBo5GQxrfUfw8qLqQPcQBs+a5ujzDMcHCtJ+9QAu+60oaeC298bZySRWY0rlIieAAJMWzsdR6bjDKNXoflpD2spueHJ/2NiPtPtnUnTIxdGa6jM5c/Dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T+QMbNqA+0lIrttnAt2Umj1ldsBbm0VngX6J/9WLTWU=; b=SyXgNvyomH2w1/m/8QgYryscPvIo+FNy/r107Dhi7e6EzlAW1RhzyZEGQTo6LIIyOfCVMozp2ZMCXsOjbE6/R1/rbbZwdM+pmIOJpjrQ9DXZH6QiIK27MxrqGwwHU19FqrYOJcftYknk7IE7ynEG8jVCkgpNtgkD+35EPtFsaJlK8gjM14SUzh9PMSxvDfQMoawHR/3GbMaf1SddTl4yYYQbMtiqYp7TXcJEC+b5IX7wRcZ3H5rZctS+L5clI15mN8kuPq0kcjxPK3ANUjNf+BvT5n1nQ9uoXaH+RcZcizKmpxpRe+6iyhHcES1rX8BU3WrB6f81rBvcBCbttZPExQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T+QMbNqA+0lIrttnAt2Umj1ldsBbm0VngX6J/9WLTWU=; b=C4Fi5UHtTo00PFFdnnj7+qKsUV7G+rUQScktbTHimg1mVRT4cetEaeqJNAixXYjaaxVtCKohaRk6K1zSFq69w2ScPlFCTe42YfT6PrAdI/uQPe0XBgc/invV7z+uAB4RWhQIPp8N1hX+UNwfRi/0lYuwaKuryiV+RsRddptmiic= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by BL0PR12MB4900.namprd12.prod.outlook.com (2603:10b6:208:1c1::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25; Thu, 20 May 2021 14:11:26 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6d4d:4674:1cf6:8d34]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6d4d:4674:1cf6:8d34%6]) with mapi id 15.20.4150.023; Thu, 20 May 2021 14:11:26 +0000 Subject: Re: [RFC 1/3] dma-fence: Add boost fence op To: Rob Clark Cc: dri-devel , freedreno , linux-arm-msm , Rob Clark , Sumit Semwal , "open list:DMA BUFFER SHARING FRAMEWORK" , "moderated list:DMA BUFFER SHARING FRAMEWORK" , open list References: <20210519183855.1523927-1-robdclark@gmail.com> <20210519183855.1523927-2-robdclark@gmail.com> <8dcdc8d5-176c-f0ad-0d54-6466e9e68a0a@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Thu, 20 May 2021 16:11:21 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:4635:589e:67a4:e02a] X-ClientProxiedBy: PR0P264CA0257.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100::29) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:4635:589e:67a4:e02a] (2a02:908:1252:fb60:4635:589e:67a4:e02a) by PR0P264CA0257.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.23 via Frontend Transport; Thu, 20 May 2021 14:11:24 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6afb75b9-885f-4ee1-8b6c-08d91b992797 X-MS-TrafficTypeDiagnostic: BL0PR12MB4900: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WrhJxArlGCU6pYBUG7CrQkYD1kLu6p3JDp3yCx1LxH48jfxezYhotkwKoLJiqqI5hLkF5WWidCUwcIFbaCCqko7EDESBnvU0QCWkUNR9Ka0Y5Lr1PSC21FxeC6wyioseuakZgDmDxSjjTdwpmLb/wYhsiWjy6oI+zVk5RrxA5a512wThDsJPPSBKbt4nstxhe3qlxzc264PXjlVXoC92ofO9EXch5t3Aub9v3fZ9D9WqiWk/e9lSO2XgbWIUUIDHjQwfICQZKY7tjBw2/zMmEOA+oV/q657EZXtO5H+8Trk9pmt1ZWzkb2zThzuuKIhYPgyIeZSB4riIFjRyVc9CA7Fr1tTDPIpzlSLTeErpaqfPcY7B4hbHjl12C6KOCkk6cKfFboHQabi5it266y3PPTHHH4r/cXHxYvAnHvX3D45S95Dwm4uTci6V/s4hr/p3QG145jbNssrJOJ0oPxUF2KwGq/Lf1+hUVGD1eDpTWhhIi3onO7q+XkmxG8bpdpYv4595tXLLvxu9p+foIpoVXMt7HvAoSfyxKawXw58xOznb5Z/kIZVEb/72t/+7dnQrH24Bt0E6CHh/uhdigLlAMuA69jKRpfpmCLAfqEmV+pmzXwI6cOy5q/HCEMmiW/ihyv8XKnMfVH5qHIMtHBzmtg3ub/gcGbLOPAe0W3A1RemOwYp0syMii7AdxDIXSb5Y X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3775.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(136003)(366004)(346002)(396003)(376002)(186003)(8936002)(16526019)(6486002)(6666004)(66574015)(83380400001)(31686004)(36756003)(8676002)(2906002)(38100700002)(6916009)(66946007)(478600001)(316002)(5660300002)(52116002)(53546011)(31696002)(54906003)(66556008)(66476007)(2616005)(4326008)(86362001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?NWN4ZGVrR0xIYURPQUxQc0d2TGlkdmYrYnhiWXNCditLVUh2ZEJqM1JSellq?= =?utf-8?B?TnJVQ1JhdDk4MFhWY1prMGlkbk9tZlVrTHFzc2FScWRacjBHZHMvVURzdXMw?= =?utf-8?B?SE5WaEx3blRQMVVVSXdtNktDdzNoWkVvZzk1MTYrSW1JTFN5am1BdVBDYnA5?= =?utf-8?B?cUdUeGw5bStkL1Z3QzBqSXJuN2lqTnBDQ1FMOHp2bEJaNllRWUU5dlZRdEpU?= =?utf-8?B?VkxTTzNLbUtUdGx6NndWUTBPU3QvUmNXVFNuQkNWQlg4VlVaVkZHNk1ROTBp?= =?utf-8?B?d3JnVHQyRDczR3dVdUtSdi84ZlhtVHdyWXE0NFp0RFZnb0ExLyt0M3BZUUw4?= =?utf-8?B?LzBGbENFdnpXbldXZUxESlRURGR0Ry9TRmJNWUsyQTU0NkRjektLZ3lpNVF5?= =?utf-8?B?T0NRNUhObzdSMTR0L045bTU0a3FzTWMxajRoL0NYcER2Nm40YlJwN2ZzSGZP?= =?utf-8?B?S0dQdGxxVGR4V05NYzV5MitQWWpKS2RSUmh4TjN4OGJ6SUVRQ1ZPdkRJZUJ4?= =?utf-8?B?aWs0bmpqVW5YcFFUOU13U05sYUxPTTZIR1UxUy8wUndJbDJzOFpKbzhMcjBS?= =?utf-8?B?Y1NMdWtIUVd4cHBjMnRSUzdQejR3QysvZEVBTTVNblg1MHdodlZacWNMZllI?= =?utf-8?B?NnExRUM3OTBWK2FBSC9DWDFvdmg0U3BVUkVqdUIyU1JqVk9VQWNMKzhxQ08v?= =?utf-8?B?OGlJTjhTNXZlZS9CVkxWSFgzakNnNFJZbXZkTDR4R2dJTHN3VU4zRXJSYkJH?= =?utf-8?B?SEsvdngxS1lPWEE1aG9NbkhHb3ROd2hGd3ZVdjhYRnAvZDlkbGFVRlhtMDYy?= =?utf-8?B?SUVhL2xjWW5QakJJRW5EL1d2YW1KTEVJNGJrY3VqWXFlZlJyWkdYSTFHRlF4?= =?utf-8?B?ZWV1YlJlWnVBSHNhd2krZUJxdWhqQWRMMWFuZmp2U1d3Ymd3eXZyMkR6YXYr?= =?utf-8?B?bEwzRXI1V09oU2R6R3NwSE1FSy9xWGNITGdZdmoxWkdZbk5FUVIwVXdiN1Na?= =?utf-8?B?ZGd3T0hYS1V5YXFIYVpDZEt2VmFwQjJjc3Y4MklyUGcvUWpCZGt5ajAveXVR?= =?utf-8?B?WmxaU2NESUtNSzg0anlLVTNhN29LcEx2RWwzc0tmV2V5ekVLVktBdlpvSDh4?= =?utf-8?B?OEVqdW83aUxHL1V5WmhOWU9XYUpTRTVubFBieS9zd2dpNEpPOHhNUStJbFNR?= =?utf-8?B?bkVub1Y4QWtwT3ZWOThpcXNxcldFWWM0M1R2RnlESS9SSUZUMWg1NFRUUlMz?= =?utf-8?B?a0lpdE1pcHdNYTR2VGZoQkVIZ2w0V1NwQjBDU1JXMldMU3B3WGdqc2F5TUNV?= =?utf-8?B?Zk5FeS9nbExETldCVm10dDA0d28wVHdWejVWMkhGSHVzZGNXNDZEaXhwUXNt?= =?utf-8?B?TnZlcjFQWG55UitZZXB4cWVCbzBQL0NMblRVTEZaSjdYakpXRFBpZU1ORXVF?= =?utf-8?B?SThJNWxxbjNXYXV1d3cyVEpxS3laSzhIaUJSZFBFb041Q2pXTFJROUJjTXdR?= =?utf-8?B?UlNGSVFRVHBodG0rdXByaWFCSW1Nc0VKeXdXWkNRMWRERThyRE03aWROeWUz?= =?utf-8?B?RlcxZDRPSUhnN241NGFRb0huRUI0ZjFjdnRaUEdTaEVZT3BJYnRJaHRScVpX?= =?utf-8?B?WGtiQ1lXd2pUR3M1NVNXakR3R3QrbmRScVErOWg1OHZPYm50Nkk5UXd3dXVP?= =?utf-8?B?RWJiWTBFWGVnN2ZPTEtrbEkrMlBCVjJNMGg1UE50cEdHZnJBRVdDbUFpU2dq?= =?utf-8?B?a2xhQUZ6VUFoSWdvbUdHcWJlOHg0L1UvakhtbnJpQk9sTktueFpjOEF3RGRl?= =?utf-8?B?dGpJN0VPei9NbE83dndzNEJSVzFYb3dJT1oyU0tYUDdKOHJESSt0M2dYS0dD?= =?utf-8?Q?gnFmQ8VDdIjwD?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6afb75b9-885f-4ee1-8b6c-08d91b992797 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2021 14:11:25.9434 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /qOqb5VsGaNrueZJdMSmiDyz/ihJD6KpGi4Lvu8Q/PpthobY8lbBUrQVDEoAEvsv X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4900 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 20.05.21 um 16:07 schrieb Rob Clark: > On Wed, May 19, 2021 at 11:47 PM Christian König > wrote: >> Uff, that looks very hardware specific to me. > Howso? I'm not sure I agree.. and even if it was not useful for some > hw, it should be useful for enough drivers (and harm no drivers), so I > still think it is a good idea > > The fallback plan is to go the i915 route and stop using atomic > helpers and do the same thing inside the driver, but that doesn't help > any of the cases where you have a separate kms and gpu driver. Yeah, that's certainly not something we want. >> As far as I can see you can also implement completely inside the backend >> by starting a timer on enable_signaling, don't you? > Not really.. I mean, the fact that something waited on a fence could > be a useful input signal to gpu freq governor, but it is entirely > insufficient.. > > If the cpu is spending a lot of time waiting on a fence, cpufreq will > clock down so you spend less time waiting. And no problem has been > solved. You absolutely need the concept of a missed deadline, and a > timer doesn't give you that. Ok then I probably don't understand the use case here. What exactly do you try to solve? Thanks, Christian. > > BR, > -R > >> Christian. >> >> Am 19.05.21 um 20:38 schrieb Rob Clark: >>> From: Rob Clark >>> >>> Add a way to hint to the fence signaler that a fence waiter has missed a >>> deadline waiting on the fence. >>> >>> In some cases, missing a vblank can result in lower gpu utilization, >>> when really we want to go in the opposite direction and boost gpu freq. >>> The boost callback gives some feedback to the fence signaler that we >>> are missing deadlines, so it can take this into account in it's freq/ >>> utilization calculations. >>> >>> Signed-off-by: Rob Clark >>> --- >>> include/linux/dma-fence.h | 26 ++++++++++++++++++++++++++ >>> 1 file changed, 26 insertions(+) >>> >>> diff --git a/include/linux/dma-fence.h b/include/linux/dma-fence.h >>> index 9f12efaaa93a..172702521acc 100644 >>> --- a/include/linux/dma-fence.h >>> +++ b/include/linux/dma-fence.h >>> @@ -231,6 +231,17 @@ struct dma_fence_ops { >>> signed long (*wait)(struct dma_fence *fence, >>> bool intr, signed long timeout); >>> >>> + /** >>> + * @boost: >>> + * >>> + * Optional callback, to indicate that a fence waiter missed a deadline. >>> + * This can serve as a signal that (if possible) whatever signals the >>> + * fence should boost it's clocks. >>> + * >>> + * This can be called in any context that can call dma_fence_wait(). >>> + */ >>> + void (*boost)(struct dma_fence *fence); >>> + >>> /** >>> * @release: >>> * >>> @@ -586,6 +597,21 @@ static inline signed long dma_fence_wait(struct dma_fence *fence, bool intr) >>> return ret < 0 ? ret : 0; >>> } >>> >>> +/** >>> + * dma_fence_boost - hint from waiter that it missed a deadline >>> + * >>> + * @fence: the fence that caused the missed deadline >>> + * >>> + * This function gives a hint from a fence waiter that a deadline was >>> + * missed, so that the fence signaler can factor this in to device >>> + * power state decisions >>> + */ >>> +static inline void dma_fence_boost(struct dma_fence *fence) >>> +{ >>> + if (fence->ops->boost) >>> + fence->ops->boost(fence); >>> +} >>> + >>> struct dma_fence *dma_fence_get_stub(void); >>> u64 dma_fence_context_alloc(unsigned num); >>>