From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B5EECC00140 for ; Mon, 8 Aug 2022 11:46:46 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A8A0518A5D2; Mon, 8 Aug 2022 11:46:44 +0000 (UTC) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2045.outbound.protection.outlook.com [40.107.244.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id C4E2F12B21D; Mon, 8 Aug 2022 11:46:37 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E5Q0mdVDs0LGye5fnslAqYTbQ44InMgJ2I+mwu5zMjRvh0CnXTPezSbc+eoz6I9mLDg5QKYgcHFZPTwWMpl0+9OX6ZnY1o3h3j4xZ216oiWhJD/jRDPOtlBzKsgrIpaC5nGvNRR9J6qP46aJUjR6PexSqGjV8P/28GZ3UnltQQrhQgaW7RKp+Kthsv4wOMnZHZDpPdFQ3bSWuN/fJbayaU7FQfF0vBGCYJ9MeeeLTvySCdoukPKMGpCEyXFmAA+LBAyzp0JPN0gvoQuzZuNDKtKJLdaQzegMLon3HGN7LXMo8aNcA44kpREUCyTzsvCfjTBKgPry8/QD1Go+SraeBw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jdNZWZltWloqCHwcDM9EYrMnpVqkuCk3Lnyzau8YomU=; b=k6jvg+Pnc85Q3selPeL7p6ep1M45ntYVWyVhu8+3dje004GBL3YgwM8MsgByYSt1ERgZZfR1UJltVDW1NQUgUJtbEJGPuHCq3dyPcaBajnLL0gjzF9nyjYRmQYueGwWxfOgxpXELsss+otEZtQOBeAbA/tJcRBo99k2hzfuuvz+R6gofRWAqK39VJ79sA1Kar/JMHMl8bi9HCJX2iKaqx+GCzqGO5h0lFL1v6yZAQNkKqsTT3lg+ukjJGwK4YhzhgN9CrtKrayb0JXPVkt2S0O9oDUpqQAMY+WKwMQ4Dd5XzbF7iwaoiZztUU3K6dixxmKONUf97bttFJ91S+vILkg== 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=jdNZWZltWloqCHwcDM9EYrMnpVqkuCk3Lnyzau8YomU=; b=TsbuPnCWCBDTa/XrFhFH2iDZ2fzy8XgNn4kN/u0zqKuat9N1WoM9kAHr7YdSxFvL3ZsmDUsefA7GEnx6LzIdrp1e7mTDEC0u5rpYCrSDlZhJmoL8TP5VAiiAA1C5c/KcMzpOlZSZs+Dbo3g2LudszgqLkTP1thxWl0Mg4VC7Hus= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from MW4PR12MB5667.namprd12.prod.outlook.com (2603:10b6:303:18a::10) by BL0PR12MB4660.namprd12.prod.outlook.com (2603:10b6:207:34::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.20; Mon, 8 Aug 2022 11:46:32 +0000 Received: from MW4PR12MB5667.namprd12.prod.outlook.com ([fe80::289f:f718:af41:f38a]) by MW4PR12MB5667.namprd12.prod.outlook.com ([fe80::289f:f718:af41:f38a%7]) with mapi id 15.20.5504.020; Mon, 8 Aug 2022 11:46:32 +0000 Message-ID: <57c92713-b06a-e68a-9079-72f44c2ca3b9@amd.com> Date: Mon, 8 Aug 2022 13:46:25 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: [PATCH] amdgpu: add context creation flags in CS IOCTL Content-Language: en-US To: =?UTF-8?Q?Christian_K=c3=b6nig?= , dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org References: <20220802135558.6324-1-shashank.sharma@amd.com> From: "Sharma, Shashank" In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: AM6P191CA0088.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8a::29) To MW4PR12MB5667.namprd12.prod.outlook.com (2603:10b6:303:18a::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7ed6afa2-ba59-4af2-46c4-08da7933a376 X-MS-TrafficTypeDiagnostic: BL0PR12MB4660:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2d0BO+HMFcltXQLopw+B26NQ+moVfPtDSW+2xamQEImybqivWaI3wBrMPYgqOCuShZxuG4FHGDeIRSUfI2OqQuAQNbEC0xJA0sD386cl3yT2sCeEsAu3hdkTobw7NXyjc/OEBpgWtlmQnmGNeSwoFVlkG/9/MHnKeQ5WvzToD3rPuTy5zoTKjh0DNHTUmGrzA14L0TJTMSDVd6FSaMMQsWe0p2H/Nujs6R72BxwcN31tB6gO2XKx7ZTRi4eYssjNRwc/PlkWzRvU1n5LqbaiwJwRPPCSJSsidJgQtTNqgZ1DMsGNFjiDjf5TQiyg/c3DaOiUWTByBLV9oRBlJ3SnG1G1EkRkWhLSeIaEImFjTUNGf3x/HmOQxgfKUdvKu26ao1HM9lPF5wvi5tnqMWzyN52NYh+uc3zGxTllEAanFOOjVR2ITrZwMheHsCMLGLfAxSCg+UjtyTYYu4piG6D7kPsexy2iOLKx5TRR0Q3MHAEpd00Ilb1KafEma6bD9t2WP8Wp7YrwrdTxn+7/jSpsBxbo4RyXE87/bLwM6Pi9qrt/6qP3RQnieW7zMb6fVMPg2dmO12rscboZ9uyIt44u65Cvvpt7L1ikEsr9ie1+Vav+HRYA6oDXBxhXqdoU2GHWtUOmq3RlT1OUBa+8hB9V3G41C+IlQ2FXGNd+ISpJkb8qwOnBigJ7d6F+CRWbJFYzkOM6kL3rOml+N+WLrip+DDKoksEMJRok7SPAPiVJzIHaLPY5K2Oc+t4ypDyyE/1H86X/zQQr/EXyBl12C9j/76l4QFZ23r002OJAIuOH4AdVbDMALTx8E4yCTY0a4z1Z8hPaOCtnKQhCvnJd7UKrBQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW4PR12MB5667.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(346002)(376002)(136003)(366004)(39860400002)(316002)(8936002)(66946007)(8676002)(450100002)(4326008)(66476007)(66556008)(478600001)(6486002)(66574015)(186003)(31696002)(86362001)(2616005)(6512007)(38100700002)(6666004)(53546011)(83380400001)(41300700001)(54906003)(5660300002)(2906002)(36756003)(6506007)(31686004)(26005)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OXI0OWppWERlNmVqM2F2c000cFF5U1hPZkFHSk01bG13MC9Calhvd2ZHVXow?= =?utf-8?B?NXV3N3ZaazFNc3EyOHF1ODlmMG4rNXhITmJsdjAzVUdHVW8waTRoMGFxQUdE?= =?utf-8?B?U1RJVTlkd3dtamRrcVJnVEFVWTFNTHlWT0hON1J4WGdZVmFFNmxISE1ydXFC?= =?utf-8?B?clQ1NEhSMmRpclE0djNBL2NyT1lFellLa2VaRjR3NzlQaXQzZkVoRS82Ykhm?= =?utf-8?B?cW52RHRyNDBoKy9GZUhNdGs5TEZjb0doWE5Ud012ekErNlJkTEZITCtaSVM4?= =?utf-8?B?dW1kZUpxWHJhcWdNQit4VFFhcnloZzlDbW5rS0s5eGdiOFY2Nk84RHpnbDV6?= =?utf-8?B?WTFwZy9uWWJYUVAxeUlNeUgvdkg3SFJpbkNPbXU3cGg5YlliTC9wamJvVzN5?= =?utf-8?B?TVlQU0lJcEEyNFFEL1FaV1NkMk5LaUlrekpwVTdkQ2Nqd0FnZHoyemtZY1dV?= =?utf-8?B?cjRZOVNlZnhkeGFCRWgxZDBvR2ZKM3RJSDN4b0IrcGkzNzRDWUVPdzQ3N1or?= =?utf-8?B?Z0ZMdUY4N0F0WGZ1UWJPT0h3ZE1rT1hzT01aQXhXSmxIbGtDaDZjR2pGVHA4?= =?utf-8?B?eXl2U2VXd05yNVpNRHEzQ3UrbHQ0VXNXVmRld2F4VXhXRXFoWDVwVit3YUo0?= =?utf-8?B?WHNpMC8wZjVGeCtWT09wNmdYZzEyR0N2RFZFTGQrb0FKT2ZGNHU2aUd2UnBC?= =?utf-8?B?UERwR3NzYzNhbzVjcXpMZjN5Sm1DQmEwd2wyT0haNEcrai96OWVLUm9Fa0gr?= =?utf-8?B?MFMzSGFEaTQzVXo1THg0TENiTDFIaVZBSE9tVzhyb3dGYkV6UlRZb0dlc0FQ?= =?utf-8?B?NmhndG5OMkVFVmlmd1ZVRjZkRXVua0x6MlBmS0h1K1pOUUlHWndjQVAyZWtX?= =?utf-8?B?ZjJjUmdjWjVBYnpYUENYaUpwNnNuNGc5L25rYjVRdWxnOWZwbkJtM0wzdkZ3?= =?utf-8?B?ZEQrSkh2c3A4S1E4SUszZlRURDNYb0RqQ0ZXellxd0lrclBUMU9sVmRKRlhi?= =?utf-8?B?cXRyMHB4UStFNmhiREYxWjc4MUx0d0hYamtiYUJMU3dIOFhIUXZwMXAxa1pP?= =?utf-8?B?T1djZHVxUVVva2p3b3FqTDlZOHVOSU1lYko5WlRjb2hidkc1WlFCRTNMVmlH?= =?utf-8?B?RXJiR2tHOFlJbjVtSi9ZdVJLT3hhUm9rREtqMG9DSW92aGF0UXVYVk1kOXBD?= =?utf-8?B?TjB6bDlkUCtWNVlsRjZPeFErNUVRRnJ5UGJkSWd5MW1UMk1TQjFrVkh0YlFR?= =?utf-8?B?U3ZPcHhPeCtzZE5OdFBXc0tDS3lnZDNYT3dPSUxXZVRKNHF5d0tlSGpIcUxE?= =?utf-8?B?S3dOVlBHZy9qNC82dnpSa3ZzRksrRDR0YWlHL1pvZzZnMi9IK0FSYVRFdzdE?= =?utf-8?B?OTBWWHpuUGtLakpDajNjM1ArMndNQlB5RTF4cnEyVnpwSkFtNWJUZDMwY0M3?= =?utf-8?B?VEp6NFJCZllidFB3OUpveUFCN1BCb3NiWWpOSlI3NFo4eEVVbjZNSlRRdkZv?= =?utf-8?B?ZlJ5RUo4YkpHMmVjVldlc1JPY050NGpvb0Z4NjFhL0lncWYwTDFSbDZVM1RF?= =?utf-8?B?ck90bU05aXpwSkd6a3NVd3ZFeTA3MWgxSW1McE9NQjhoM09JK2xZUHo4ME8r?= =?utf-8?B?djhxeGc5VjhIWGhENFVZQ0pEelVGK0hkR0l5akFld0krS3NOckZLQXhONXli?= =?utf-8?B?b1g1Z2VaWVdTUklvRzdBL2thOGtzTzM1eXlIR05qVm1oTmpGYXMzWFdOQjFU?= =?utf-8?B?UUdDVEJrQWNLUzZuUWVoVmE4U2JoS3ZodUFmSTF2MTV4UHRMa2xQQXB3RjVh?= =?utf-8?B?YXAxa1Bad3NDVGR1QzhlWGhPVWs3c1I0SzFVelNFU1M1b05yWTZKcFBDSDBF?= =?utf-8?B?S01DekZlQ1pIRml6N0ZiTXB1amllalNPTkZ0bzhWSHB0QnZNY3hsOEJaMWFk?= =?utf-8?B?bEdUS094ZzQ4anREaVRRT0FJOHM1L0Nhb0VZaW13di9CbTRTTzFUaW82Nk1y?= =?utf-8?B?S0ZxdDgzSWRwdjhUcHdlWG9JQ25VUWMvb2plTGx1U0YwSTdCOHdRM2cwd2JJ?= =?utf-8?B?S0svQ1V0dmZNczJvM3ptZEtwWUVhQUlBT1ZWTkhhQjRIcEFjZ2RKYXVjUHZa?= =?utf-8?Q?HCMVwhftYyXmPPBkyj211BnB0?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ed6afa2-ba59-4af2-46c4-08da7933a376 X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB5667.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2022 11:46:32.2514 (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: XODLNq8I4il1UtUdpYHSf3q7KTZfBnwjCLFJmqNGOnCiP7REf6NOFSU3RjpXGAykGMIKWTF4f5Qf3kT/YGdvfQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4660 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alex Deucher , Marek Olsak , Amarnath Somalapuram Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" On 8/8/2022 12:59 PM, Christian König wrote: > Am 02.08.22 um 15:55 schrieb Shashank Sharma: >> This patch adds: >> - A new input parameter "flags" in the amdgpu_ctx_create2 call. >> - Some new flags defining workload type hints. >> - Some change in the caller function of amdgpu_ctx_create2, to >>    accomodate this new parameter. >> >> The idea is to pass the workload hints while context creation, > > Bad idea. > > Please take AMDGPU_CTX_OP_SET_STABLE_PSTATE and > AMDGPU_CTX_OP_GET_STABLE_PSTATE as blueprint for this and don't add > extra flags to the context creation. > > Regards, > Christian. Hey Christian, Noted, let me have a look at AMDGPU_CTX_OP_GET/SET_STABLE_PSTATE implementation. - Shashank > > >>   so >> that kernel GPU scheduler can pass this information to GPU FW, which in >> turn can adjust the GPU characterstics as per the workload type. >> >> Signed-off-by: Shashank Sharma >> Cc: Alex Deucher >> Cc: Marek Olsak >> Cc: Christian Koenig >> Cc: Amarnath Somalapuram >> --- >>   amdgpu/amdgpu.h          |  2 ++ >>   amdgpu/amdgpu_cs.c       |  5 ++++- >>   include/drm/amdgpu_drm.h | 10 +++++++++- >>   3 files changed, 15 insertions(+), 2 deletions(-) >> >> diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h >> index b118dd48..1ebb46e6 100644 >> --- a/amdgpu/amdgpu.h >> +++ b/amdgpu/amdgpu.h >> @@ -874,6 +874,7 @@ int amdgpu_bo_list_update(amdgpu_bo_list_handle >> handle, >>    * >>    * \param   dev      - \c [in] Device handle. See >> #amdgpu_device_initialize() >>    * \param   priority - \c [in] Context creation flags. See >> AMDGPU_CTX_PRIORITY_* >> + * \param   flags    - \c [in] Context flags. See AMDGPU_CTX_FLAGS_* >>    * \param   context  - \c [out] GPU Context handle >>    * >>    * \return   0 on success\n >> @@ -884,6 +885,7 @@ int amdgpu_bo_list_update(amdgpu_bo_list_handle >> handle, >>   */ >>   int amdgpu_cs_ctx_create2(amdgpu_device_handle dev, >>                uint32_t priority, >> +             uint32_t flags, >>                amdgpu_context_handle *context); >>   /** >>    * Create GPU execution Context >> diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c >> index fad484bf..d4723ea5 100644 >> --- a/amdgpu/amdgpu_cs.c >> +++ b/amdgpu/amdgpu_cs.c >> @@ -44,12 +44,14 @@ static int >> amdgpu_cs_reset_sem(amdgpu_semaphore_handle sem); >>    * >>    * \param   dev      - \c [in] Device handle. See >> #amdgpu_device_initialize() >>    * \param   priority - \c [in] Context creation flags. See >> AMDGPU_CTX_PRIORITY_* >> + * \param   flags    - \c [in] Context flags. See AMDGPU_CTX_FLAGS_* >>    * \param   context  - \c [out] GPU Context handle >>    * >>    * \return  0 on success otherwise POSIX Error code >>   */ >>   drm_public int amdgpu_cs_ctx_create2(amdgpu_device_handle dev, >>                        uint32_t priority, >> +                     uint32_t flags, >>                        amdgpu_context_handle *context) >>   { >>       struct amdgpu_context *gpu_context; >> @@ -74,6 +76,7 @@ drm_public int >> amdgpu_cs_ctx_create2(amdgpu_device_handle dev, >>       memset(&args, 0, sizeof(args)); >>       args.in.op = AMDGPU_CTX_OP_ALLOC_CTX; >>       args.in.priority = priority; >> +    args.in.flags = flags; >>       r = drmCommandWriteRead(dev->fd, DRM_AMDGPU_CTX, &args, >> sizeof(args)); >>       if (r) >> @@ -97,7 +100,7 @@ error: >>   drm_public int amdgpu_cs_ctx_create(amdgpu_device_handle dev, >>                       amdgpu_context_handle *context) >>   { >> -    return amdgpu_cs_ctx_create2(dev, AMDGPU_CTX_PRIORITY_NORMAL, >> context); >> +    return amdgpu_cs_ctx_create2(dev, AMDGPU_CTX_PRIORITY_NORMAL, 0, >> context); >>   } >>   /** >> diff --git a/include/drm/amdgpu_drm.h b/include/drm/amdgpu_drm.h >> index 0cbd1540..d9fb1f20 100644 >> --- a/include/drm/amdgpu_drm.h >> +++ b/include/drm/amdgpu_drm.h >> @@ -238,10 +238,18 @@ union drm_amdgpu_bo_list { >>   #define AMDGPU_CTX_PRIORITY_HIGH        512 >>   #define AMDGPU_CTX_PRIORITY_VERY_HIGH   1023 >> +/* GPU context workload hint bitmask */ >> +#define AMDGPU_CTX_FLAGS_WORKLOAD_HINT_MASK    0xFF >> +#define AMDGPU_CTX_FLAGS_WORKLOAD_HINT_NONE    0 >> +#define AMDGPU_CTX_FLAGS_WORKLOAD_HINT_3D      (1 << 1) >> +#define AMDGPU_CTX_FLAGS_WORKLOAD_HINT_VIDEO   (1 << 2) >> +#define AMDGPU_CTX_FLAGS_WORKLOAD_HINT_VR      (1 << 3) >> +#define AMDGPU_CTX_FLAGS_WORKLOAD_HINT_COMPUTE (1 << 4) >> + >>   struct drm_amdgpu_ctx_in { >>       /** AMDGPU_CTX_OP_* */ >>       __u32    op; >> -    /** For future use, no flags defined so far */ >> +    /** AMDGPU_CTX_FLAGS_* */ >>       __u32    flags; >>       __u32    ctx_id; >>       /** AMDGPU_CTX_PRIORITY_* */ >