From patchwork Fri Dec 7 09:58:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Chunming Zhou X-Patchwork-Id: 10717785 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6FD9917DB for ; Fri, 7 Dec 2018 09:58:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5D8152E711 for ; Fri, 7 Dec 2018 09:58:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5160E2E748; Fri, 7 Dec 2018 09:58:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id DF3C62E711 for ; Fri, 7 Dec 2018 09:58:32 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C1C376E704; Fri, 7 Dec 2018 09:58:31 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730079.outbound.protection.outlook.com [40.107.73.79]) by gabe.freedesktop.org (Postfix) with ESMTPS id 482EB6E704; Fri, 7 Dec 2018 09:58:30 +0000 (UTC) Received: from DM3PR12CA0114.namprd12.prod.outlook.com (2603:10b6:0:55::34) by DM2PR12MB0062.namprd12.prod.outlook.com (2a01:111:e400:3c11::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1404.19; Fri, 7 Dec 2018 09:58:28 +0000 Received: from BY2NAM03FT040.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::202) by DM3PR12CA0114.outlook.office365.com (2603:10b6:0:55::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1404.19 via Frontend Transport; Fri, 7 Dec 2018 09:58:28 +0000 Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Received: from SATLEXCHOV02.amd.com (165.204.84.17) by BY2NAM03FT040.mail.protection.outlook.com (10.152.85.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1404.17 via Frontend Transport; Fri, 7 Dec 2018 09:58:27 +0000 Received: from zhoucm1.amd.com (10.34.1.3) by SATLEXCHOV02.amd.com (10.181.40.72) with Microsoft SMTP Server id 14.3.389.1; Fri, 7 Dec 2018 03:58:26 -0600 From: Chunming Zhou To: , , Subject: [PATCH libdrm 4/7] wrap syncobj timeline query/wait APIs for amdgpu v3 Date: Fri, 7 Dec 2018 17:58:00 +0800 Message-ID: <20181207095803.2155-4-david1.zhou@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181207095803.2155-1-david1.zhou@amd.com> References: <20181207095803.2155-1-david1.zhou@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:165.204.84.17; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(376002)(39860400002)(136003)(396003)(346002)(2980300002)(428003)(199004)(189003)(8676002)(77096007)(575784001)(2201001)(5820100001)(86362001)(36756003)(81166006)(450100002)(23676004)(72206003)(105586002)(104016004)(68736007)(66574011)(1076002)(97736004)(81156014)(106466001)(14444005)(5660300001)(11346002)(53416004)(53936002)(476003)(6666004)(126002)(2616005)(316002)(2906002)(8936002)(446003)(76176011)(50466002)(110136005)(426003)(486006)(54906003)(356004)(26005)(47776003)(4326008)(7696005)(2870700001)(336012)(186003)(305945005)(478600001)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0062; H:SATLEXCHOV02.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoDomainNonexistent; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; BY2NAM03FT040; 1:UsDo8lsONobS9fD266X/8W4V8Vlbd4qbC+Y003Ow7FhUD5LrGhMPIyGB67bfxtljpe0gXw0KE6qfvYAZo8l5VPh/VM9O3GOnkK3di4CMQ9mkOdJke9apd5ahRe8VUmsY X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f02f6d2e-8b0a-4791-d485-08d65c2a8936 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060); SRVR:DM2PR12MB0062; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0062; 3:EAHVGavmAUJ4m5ewdXTAe1i2m3UXB9yVi0O1k+8c6LbjPAmsyTqnCEiUoUkHuj1948VX6LDprklgpfyeaqt9+kDgIltGIv69prDGejAK1Xjg3nrZI1JYvLru+tlV4qOAUM78TTC+SAxTXeh1MZMVAKdTJWg7UBJJsbWkUGwLjOx9jd6ypXkx8b2I1nkDdYhvxVYCj+RZCfaiLYtg0/BBrVUjL4eEBcaXcr50Qk5QffA67qT7ILbaZlx3nI3km3TzogstCPv0QCTYlABHy6ynvrPrwv0UHQDungThJT6w4E2kDHzyRhKRtZrEaPIgqNpQvwEzdIld1TuyEfk46vhSfVQt+wo79yuJzLXFrAKdeIo=; 25:/sWG663WkY7hsOp2T+5Givsea0Y74Pdv2HtjxoeY8Eudc/LwGhYYjT9K5pfITLotnhBd4SvEYAsvq0cGftsTX06/q099OeGM7W1zglFfHopPKV0LncGCP6KJVlATn1BK9psuUmb6HqvHhk88FNeot1+d5L8EgfJtGMBbrDHcSBfeM5QZmPqe9QkHcTi7QnmdjSpctxpMxTLJ5fkzHKpRGQpRamKlwi21JBXPesNqxqKu2bYdhASrlEKfgw6pKZzBAlBqTAfpPm0z+2bK1vIy1f4HWPNlL2sj4SBDMWTTf3tWWw3nKRmAm3Jom4d7bd/8WJ3yWEp8IW0JYhMZaDevMg== X-MS-TrafficTypeDiagnostic: DM2PR12MB0062: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0062; 31:T8NdsLNZxNIy2/EsUQ7/IcMGj1QCUo/WPT3S4N4UAsC+jKbi8Nuey0yI6cUNtNIc9BVg/vCWJLoMI3jf4qO8W1K0xPaW4M6H23UMDHaQJ3MFfdnsgGUDUwyMZl1ilYh+Wrr4Ek+c6kwWxi9ckGEr6JkT+htjxBSEH71AmQB8XWdToKyLmIwP20pAQYtQBataxEJ//8ZAJuCRQO0BKO/r6EWYdjbc6WeQ6Bt9ckXjVKw=; 20:m1/DNemFSO+5eCfREIShzNeLPhDjPAd9MA6cs+2Tyy87mu9XN5KaCdoHZL+zWu9iEuWXKPN2mLjjEQe/DttCdsky0V8hYW3fo19O2Nj85m+eye4o0fb6G5FdQrnqCgjFGW0/wpIoLAh6nAlM/ZB0JFTzckUivR7f1DZ8ScKRL3H5ZjGqsP6tppCiZfiuHlk+3SEYDE3+qCvwS/DfwKck0AqnQ4p9x4KI1GYU9aYuQpzkXsD1qbs1vmGWWlBobAhk5VifSt+mtYA+AnNVoVOrRfPeY6fgpiw5vx9aSwDEBN9ftGf7IbARwmJgqYQ9k+0H30KhSDzcBVGqjvFEc9tdlJ4g0vTSNajOFC+Xd9wXZEsyhHgHkTRwOnR3hz5M9eIEFS2ao8S6/8s2BEFqtJYnvCI1LRM6+YB+qEqSCAt/DTsR5b6QNIogKavCoF8ZpBwxwt26s2OB8oQFdGOzEfVTQ3UoYRzaSAG7dWCbWceZp74fCdL+3Rvtqk8CgbWL00Jw X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93003095)(3231455)(999002)(944501520)(52105112)(6055026)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123560045)(20161123564045)(201708071742011)(7699051)(76991095); SRVR:DM2PR12MB0062; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0062; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0062; 4:p5NW4uz9AWh2OHyydv7q+zRvaH+eNZwbZgr7mA5IssFuAGAvdFbZ/rS2XN95R2RClmsfBBrlbJfYuP/hKKgCEoEUhGg/pzmJSLI5jpJk2paNPxenC2tSKCArSgn6ixaDUsoRvDyNtsxaFS+OMRUZSQPtvhJFFYJnN/MyJhWFBbi7BpwEag6fSjUs6do2vhKae/Xxi/MffGJ48+KU5IXjhIPAPtXkwKhpWwIespfH4TXOtsKiz4Fnbt9uz3pRT7TkHWNzLaO06AX8YTtgXbMtuw== X-Forefront-PRVS: 0879599414 X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BDM2PR12MB0062=3B23=3AYske9Vp?= =?utf-8?q?iNObPzcmnCj1ov/xToz7zxUl2tUfkFJFR4ByxnihbzE5NXRLw+4IuKdOPjnZdDW2R?= =?utf-8?q?NEhuvy28T4ONBm1l06CZUHiK4lgAu/yU9D5/F3vTednpfysd0p5OYhzp/kd3PrYfn?= =?utf-8?q?MK/Vck5rTh7RAVyGrmfn5GDP28eQ75OmwN+WgPMg3c0VEK4lzyOYvkMe5yvONlTec?= =?utf-8?q?rymXaGN0FrJpAcZ5HnO3CfAxyfnJhydZLLCi+mTCviJl7MeJyvzQIvSHhVf9/gung?= =?utf-8?q?4qOEiBBckGW9Qd4U71rcKELFLEhZzhG6LaGabgm2QkcV24YpgQ4zCsUV9rKj9ROX6?= =?utf-8?q?YlaV1pZV72xVK/8zk7eEyNKOGkjWl4Rx00GxVrgmMZbWTEL4LK+RUZyM1SWYtUUG3?= =?utf-8?q?TvTDLTH5M73ayI7JIcFAEQs+gl1aixeM3orv/TE5B7TC/fgHIZpkAvejdjfJlU/vZ?= =?utf-8?q?f9CHCymc54wEY8kgsgSVkF0NLbKha5zA84f6ygg4q1jhGmDf9OAwZgEufihcU80c0?= =?utf-8?q?jqEEZZzy69CGNXKU7AH3gkhZd0r8UUH3pH11QSJSxCcvCJPytOA4gNsdn/j2qLOnG?= =?utf-8?q?YcMdd+nvZA8V0umfpGmenFlH30V3kbluh6YPQK72CfQMfyMzlmzTHkNe3Ip38hUic?= =?utf-8?q?qHZftn80zG2fqPxd2hjy54GUKcfxyFd7yv+iP4S1oWMHSGynTfVTaGXrZmS/hJWXI?= =?utf-8?q?hBjCg9sALZISUsCclZMVl+maFUqGHxFP9zcOgIdwxv5ylqYd9fMoDcx+R67T+6CQV?= =?utf-8?q?RzKfOs1W/9gwkDLs7ngVldJ5QnVZahZx6HgezdBe7RlWmeQKiIrzOql3rFTLb0sA2?= =?utf-8?q?egWPWL13odcB4B4HydTdmf89mvfaxnGC9Dcu1H7V9ly7/65z3DQRMyzhv5P2EOqlS?= =?utf-8?q?vY9EbDo3GDATL1OyEwuKjIZT6b6I39cYdczl3Yr4dAqXhHdPsx396iajc15qpeUkM?= =?utf-8?q?JSaKD+y3V27lrZTRXh392cEt4uBAKp6eP4+ZPTXkPrvooJkUIO/zYjLvCXD2YNK/A?= =?utf-8?q?sv03yEztZQY2SkcsgS32RBkz/RRii23A5veZiunC1L9N2iYaryF+ZDaKZLiYaKPzE?= =?utf-8?q?H5wUjaskdPpxXHExUzDWRsnunBWj+benS7mOZqSk3SDcs7o3n6/i8rnyudny/q2GT?= =?utf-8?q?R4LFzWhVDvdykj+7DAZLusOqM35z4vyjDKINLSSUlE7VspJpNrW2ikQAW92hlbJRA?= =?utf-8?q?yjtHVgy1heN4BvyjJ906A92VDll4v8VcHzqsSTuDhNcbADsTeZAhu/r3NmjA=3D?= =?utf-8?q?=3D?= X-Microsoft-Antispam-Message-Info: sma5XbNvoXMjcD6WwmVxUg23qy/SmPDfslGpoJCNxKZ1jZMRbcLgHEAjDhCOvOmo3bLb6TFyjRaenmJLhRVufiz9Pr+2vRhiuu1MLJueYgQq5LEsJSDcmXjNcvumGCCfkOS0YCUQEPsmp0BDbghXBq7zvEpd7s3xsYeR3MDsr2EMJeZFi7nt0cMaGaeMjIBR3vGjWA4iqLn4pJmSHR2dTWkCR1EqVr9F8IESG6ZVgGqkA08jRm9kIyL5lUTCWpFMq0tZSUGs40SzRJLlBjWbBCBjuixlZ0HNg3Y3u3Mmc9hiTisfiSm/RsMYSbgVyQQDvLZ5Sabvyf/LcQcl8LP5PFxJ0t0+kvOpfcqD/+icFo0= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0062; 6:7cQ26FP9P4m9cHMGa8iLGm6urEmPrGPxmhWDGprWLUPfpr9x1soSJGewiiAHMPe5iJ8KVrYkxpGwGsbaBj3LxhUfNk3u1jeu8mKWgwt86HrkYfeFmlFqqY3S8cFLM7tF08myKRx443dICxYpFApna0j6xu5SP4Oe/qd9EVRG40+X3l41Hd0ce7SsIvtUGw522Hv6RWXb3CQcOpDe+WfHVY2nyXvuMHVmeo5LeBMVe7BYNSS2wv7bA3eVE+pn504tP/L68jUfadq9kvoirJllNZ2/eRjQGgwNip7yBl9CZLMgY19Zv+OLq8HV9YJqyayGqYE/mNENpVNdgKg3F19oQOLM6xrzU+zzqSqDRrA4QbDELU/muxD0gpBDWY5qxia6pn+HUkJhL3u4Lvur0ht3v4J/HcePAxhd7zwZR6EaExNkNcJZ6nDw6Li3mwh4XCuV2dWKN+daNo9LkRgHAkBE3A==; 5:eCHn1kui5Eg9s0dMY6OcVhVarU/GVfnnYPvpQfsGrfLf+5h+A9cbj/XiAOI73Fp17hpNFbdX+oOAHegey0IbjqbrtZL7Vf0DhM/mG4nGs7S+2v8L8AoJqjITp1jqdnbRdNfonDcclrukY47YwfkA8Fzni4BMUfFBJ8n5ezMXF78=; 7:MbL98HRMdkVGBsF4D0W2SFK55Frgrq5u+jdlfcGoGdX6wZadn6zkzag9LiC4TwQPi6inUu94X5/Hxeo9DKSvGlvE+dsh156lDudBAktKaEUB3T3OK7t7yQ8lzyXDPF+j49AUzDSWdLjyHKxsdgCwvw== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0062; 20:TbzCcTsD4PHvlR43yMZXmwNwDvL1W4ksxZDuzjnjD7OHOIYGPMMN0TLWfghCoyXJHeOtPTMjw1M4/bTDibyEOCElNGH8Lm3uoaH/7+soESPIY9sajwRlWmfttzfaOvaQmlX1NzVkMYVa1fVR79+TrhV90KkrXiuXhch7vifCI3vatRplrTwMNbst1WucqjT6I4WmECSbo97A+6IVbXMaxKr9plPQNxx8WYXzM0CA2wPGU7ujsh9l1WrWIlbvZXHZ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2018 09:58:27.7926 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f02f6d2e-8b0a-4791-d485-08d65c2a8936 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXCHOV02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0062 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Christian_K=C3=B6nig?= Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP v2: symbos are stored in lexical order. v3: drop export/import and extra query indirection Signed-off-by: Chunming Zhou Signed-off-by: Christian König --- amdgpu/amdgpu-symbol-check | 2 ++ amdgpu/amdgpu.h | 39 ++++++++++++++++++++++++++++++++++++++ amdgpu/amdgpu_cs.c | 23 ++++++++++++++++++++++ 3 files changed, 64 insertions(+) diff --git a/amdgpu/amdgpu-symbol-check b/amdgpu/amdgpu-symbol-check index 6f5e0f95..4553736f 100755 --- a/amdgpu/amdgpu-symbol-check +++ b/amdgpu/amdgpu-symbol-check @@ -49,8 +49,10 @@ amdgpu_cs_submit amdgpu_cs_submit_raw amdgpu_cs_syncobj_export_sync_file amdgpu_cs_syncobj_import_sync_file +amdgpu_cs_syncobj_query amdgpu_cs_syncobj_reset amdgpu_cs_syncobj_signal +amdgpu_cs_syncobj_timeline_wait amdgpu_cs_syncobj_wait amdgpu_cs_wait_fences amdgpu_cs_wait_semaphore diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h index dc51659a..330658a0 100644 --- a/amdgpu/amdgpu.h +++ b/amdgpu/amdgpu.h @@ -1489,6 +1489,45 @@ int amdgpu_cs_syncobj_wait(amdgpu_device_handle dev, int64_t timeout_nsec, unsigned flags, uint32_t *first_signaled); +/** + * Wait for one or all sync objects on their points to signal. + * + * \param dev - \c [in] self-explanatory + * \param handles - \c [in] array of sync object handles + * \param points - \c [in] array of sync points to wait + * \param num_handles - \c [in] self-explanatory + * \param timeout_nsec - \c [in] self-explanatory + * \param flags - \c [in] a bitmask of DRM_SYNCOBJ_WAIT_FLAGS_* + * \param first_signaled - \c [in] self-explanatory + * + * \return 0 on success\n + * -ETIME - Timeout + * <0 - Negative POSIX Error code + * + */ +int amdgpu_cs_syncobj_timeline_wait(amdgpu_device_handle dev, + uint32_t *handles, uint64_t *points, + unsigned num_handles, + int64_t timeout_nsec, unsigned flags, + uint32_t *first_signaled); +/** + * Query sync objects payloads. + * + * \param dev - \c [in] self-explanatory + * \param handles - \c [in] array of sync object handles + * \param points - \c [out] array of sync points returned, which presents + * syncobj payload. + * \param num_handles - \c [in] self-explanatory + * + * \return 0 on success\n + * -ETIME - Timeout + * <0 - Negative POSIX Error code + * + */ +int amdgpu_cs_syncobj_query(amdgpu_device_handle dev, + uint32_t *handles, uint64_t *points, + unsigned num_handles); + /** * Export kernel sync object to shareable fd. * diff --git a/amdgpu/amdgpu_cs.c b/amdgpu/amdgpu_cs.c index 3b8231aa..e4a547c6 100644 --- a/amdgpu/amdgpu_cs.c +++ b/amdgpu/amdgpu_cs.c @@ -661,6 +661,29 @@ drm_public int amdgpu_cs_syncobj_wait(amdgpu_device_handle dev, flags, first_signaled); } +drm_public int amdgpu_cs_syncobj_timeline_wait(amdgpu_device_handle dev, + uint32_t *handles, uint64_t *points, + unsigned num_handles, + int64_t timeout_nsec, unsigned flags, + uint32_t *first_signaled) +{ + if (NULL == dev) + return -EINVAL; + + return drmSyncobjTimelineWait(dev->fd, handles, points, num_handles, + timeout_nsec, flags, first_signaled); +} + +drm_public int amdgpu_cs_syncobj_query(amdgpu_device_handle dev, + uint32_t *handles, uint64_t *points, + unsigned num_handles) +{ + if (NULL == dev) + return -EINVAL; + + return drmSyncobjQuery(dev->fd, handles, points, num_handles); +} + drm_public int amdgpu_cs_export_syncobj(amdgpu_device_handle dev, uint32_t handle, int *shared_fd)