From patchwork Fri Dec 7 15:54:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Chunming Zhou X-Patchwork-Id: 10718415 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 1B9B215A6 for ; Fri, 7 Dec 2018 15:55:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0A4EB2DADC for ; Fri, 7 Dec 2018 15:55:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F2D2B2E5F6; Fri, 7 Dec 2018 15:55:27 +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 A717D2DADC for ; Fri, 7 Dec 2018 15:55:27 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 279A36E7C5; Fri, 7 Dec 2018 15:55:27 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from NAM05-CO1-obe.outbound.protection.outlook.com (mail-co1nam05on0630.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe50::630]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5F696E7C5; Fri, 7 Dec 2018 15:55:25 +0000 (UTC) Received: from BN6PR1201CA0002.namprd12.prod.outlook.com (2603:10b6:405:4c::12) by BYAPR12MB2629.namprd12.prod.outlook.com (2603:10b6:a03:69::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1404.17; Fri, 7 Dec 2018 15:55:23 +0000 Received: from BY2NAM03FT056.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::203) by BN6PR1201CA0002.outlook.office365.com (2603:10b6:405:4c::12) 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 15:55:22 +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 BY2NAM03FT056.mail.protection.outlook.com (10.152.85.45) 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 15:55:21 +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 09:55:20 -0600 From: Chunming Zhou To: , , , Date: Fri, 7 Dec 2018 23:54:18 +0800 Message-ID: <20181207155422.15967-6-david1.zhou@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181207155422.15967-1-david1.zhou@amd.com> References: <20181207155422.15967-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)(346002)(396003)(136003)(376002)(39860400002)(2980300002)(428003)(199004)(189003)(50466002)(1076002)(47776003)(36756003)(110136005)(54906003)(316002)(5660300001)(5820100001)(104016004)(105586002)(478600001)(72206003)(106466001)(305945005)(53416004)(68736007)(97736004)(476003)(446003)(336012)(2616005)(11346002)(2201001)(81166006)(126002)(81156014)(23676004)(86362001)(39060400002)(8676002)(356004)(14444005)(50226002)(26005)(8936002)(66574011)(486006)(76176011)(2906002)(426003)(4326008)(77096007)(2870700001)(7696005)(53936002)(186003); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR12MB2629; H:SATLEXCHOV02.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoDomainNonexistent; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; BY2NAM03FT056; 1:BNZq8DcgigwsgTaLiEB/4cetB4my+/Rr7c3ujtv//0e5Xvj5bDTR6H3zvv/q18whk7rJJU+AYTMDXJhFs/mIoRhS0r7tD6M0yGmnrLKrbGMd4hGG3bDJyZPGBi/b+NqK X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f2553413-ad42-4371-b576-08d65c5c6501 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(5600074)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060); SRVR:BYAPR12MB2629; X-Microsoft-Exchange-Diagnostics: 1; BYAPR12MB2629; 3:jDzlH/GCQMY5jYXv7tgh5iZ5H5uKTVtFN7+pa9BfhIEFsSbsHkUIRW21C341z2f+d2ocZmHElv2O4V57ywoLYyyEPaVLTnYxkQq1zquDs2gNBV5ZgolqDeahr1wudRJ4f5Z2kMI8stTlpkuwYiLPF2/zYGb8Vn99/6puQt+uIko+e9qfaJDh8VfluPnsivfCmLVPyYVTjIv9O45ucA+RjihCxDMYkUO3Pd6HIOH5+qP1AqC2wDlbe1YlH5XjxePEgTK/fQt1ZxaCClW8ZA+eZt37PMAchTJivjlHpT5lAaZEOTfIppJhVl+bmWW71eZvoB2tYqEReBl8NpkOwPWGiFQTdEqJhRSVlh4dRHGP+Gw=; 25:Ff5iJfN7TkeSDkZXgFjLNTVXenTWtpMmfZgtkbtsEbAyY+tLNkp9SD5kfq40JOAAka3CxyfJt9AJUyvpWlTlix7Bfgh5xzko9eg5HavOcuOQbSOpcB0pa3f1FhrZk1RPvosPmMKY04XvmtHtTO/gqngZ0TkhJXLPkIV99x7SrF67ZEaVseIqwVH/kgyrqaUV/+uQk0AzBpShA7X3a5sex+a9ptl22Ni2rycXcXUre/saXqnPbMjvlTPB+JEwAm+OHNNao5GvhRoxNEPuMybSJdeuZ38AKRZtuOrO5KajcMntf8Mksn232UPrR0h3Nw9D9rA3w5CKLqsP7orb+x78Yw== X-MS-TrafficTypeDiagnostic: BYAPR12MB2629: X-Microsoft-Exchange-Diagnostics: 1; BYAPR12MB2629; 31:BBGtzlWiOtTGh8ik+1QdUFHyElf+UUx2u/wnG0EQuI+DTlILLGlbt6MITvHhP+PmRopDJ/MBI0hs7rXc+XGDAVLlDtLPFAW5J/1g6oNYpXpeZAl/OIqjS64+wydu8XPlMPxLBR1787SuecnHB5V1EfXsVdbRCbWPh/NiPhUGEHNOSMcQCS5kGo7mFXr/i20m0UNGLlkROxheOgKFxX2woMdVPAnUWgtkFmKq6X1yXVU=; 20:YVY9q5reypZ8l1dDPvtLiwueWehZ4tuLhM3xVcCMhVSCB+VdJ2yotRPPRsSy4fhcj8fsNaSymfP7pmhcsVHKMT7/6gPPlE5QTsINvbc+2XIFFXalbSkA6B9a73bEcPOXdUM61Zw4pJXIRaNgw8a+R9R3Ak9GfiYNs5dNGTvK4UOm8C/LT4xTQKr9CaKKFZn0gH791qzhf2gtesgUXNGhyKVq4a8PdGwuZTjS6r9Wn38hDVucqluIExilgoUYevWASZfUffnXlG5gACT9QNktmlz3t/yIYXudMW8ip+KOxAJWdZNSXvZAKq/buE+oM0QVKVTdJ8WgRA8QKpu51/QcxIuk9nr5zbVKHotURukn3RcUjRCeT/vHQj6/QE3we5HMQlByIrzirCm/5SUfl1rqhV14bFQYxgR0D+dB9XXc3AaD4O/vPOKfsrno/IUB77POVk8cCwTEHQjibS9E70zr1a7GFjfWbRdk/NgzedH7YPvtwbMlFztRdz/z5Fx7YW/C 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)(93006095)(93003095)(3231455)(999002)(944501520)(52105112)(3002001)(10201501046)(6055026)(148016)(149066)(150057)(6041310)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699051)(76991095); SRVR:BYAPR12MB2629; BCL:0; PCL:0; RULEID:; SRVR:BYAPR12MB2629; X-Microsoft-Exchange-Diagnostics: 1; BYAPR12MB2629; 4:DsOjUYQjLpKAbmSMgzvPxRBeJ19mFrVq3/3d5bSifcAheJic9FIYlJRzuwAT+dkuuSt3NnDKLOTmPS0YnWbhGwT+uzQJjBb3QcW+tXS9eVKvS7qs8JppV320pyK1bjJsVUwvUl66e0nW2SUySXBI6YMPTE56Ch3+JK6b9KEWvFktrU8NHDoQco2KLNV9mPz3HOyvHSWXdnOBTLVu7fkmfFf3ikN7T3aAgThynl82kSX9WW9mQoRJ2hNZNyT16F/QEyczdwG4rhFPcrERbqb/Hw== X-Forefront-PRVS: 0879599414 X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BBYAPR12MB2629=3B23=3AIFKAnKG?= =?utf-8?q?tqt0i3FdmTf/yATzxca84w3n1/r7rNRDZs2SnwrJjsoJoIhnSpK6pHFhLqkzRcxxC?= =?utf-8?q?1cPK24zVXWugT2YLw0S2wcAy904hSd/C3ru1n3AqCXxcZZpnc5UcqrucHVnOQcLA2?= =?utf-8?q?UkpiVnTqyf4VaLT06tUw2J+Ehd+Cyx9F5bv94hI9tywl8F7OHgmdh870UV7k2pVBe?= =?utf-8?q?Q8gEV87v8O6ZKaSssoOSmu2FGQEkr37lHviMSNrHHElNgEIttx4M3VHx7eZwtyc2P?= =?utf-8?q?0KmvTNqoRgVPSULdSP5ul17yxFdP4LZjURR22lF80TnKuLDfbrISfPxgQlNj9b9H2?= =?utf-8?q?u0qjrOuiAayU8yuKHwf0Q6MCakucvuUtcC5+GmmkW2fRRE2fkJt9K0YA5jG26qLbr?= =?utf-8?q?B9dh+6s/yvyF3cTYUAZA5vA5ltQ2Q5uDk9qgNULtYtzH/jQtFw6N4S6JD2a4JGCbN?= =?utf-8?q?HVszZ6yHoioJeGGBn1lUQGc4n3WaGYEdQsMqiXlfssdpOgZuHBlpsrwSpI7VEJS6z?= =?utf-8?q?fl5m37WbQrHhC87KxKJhcRU1f8Nr6SeIBdZaQxlexYdGPM8hf4nUlwdob/NBkHrIU?= =?utf-8?q?PpJXHP0QqEm4GlN5mDfIeQ/Eqqtnmdg0MGVjhM2BgAuKFtJs451chrtiH5TwAPFkR?= =?utf-8?q?PvP42Fs7LC3xQ1LuIrfUrgmjkYummGppcfMP9YoXJN32oPdKvVONRLQWZHfYAHalK?= =?utf-8?q?IXOOnp33cHt8w4MHvqLf47pk6jaPjDrWfmYMZIGS8R4mTGycO3t38bv574G8EAc6t?= =?utf-8?q?lv4V5/ZyIfymrKY7Z5YieludWkRrn2q1no4f5nDSK12s0JTqx9U0nZDB+kdFjXQ9L?= =?utf-8?q?WcW2f78YmJ6eT/d+r328BQ1YLlrA8QqEN/SEjZ5DRy5Ade2ODXLY26YfWlXdIbru3?= =?utf-8?q?XtkPIpOs7ahWagmiHw8NDU/Os35sKKhyS6tl9eCc6eQWXnXnIVnKE7HxqRgfE8xfr?= =?utf-8?q?/GQOo+H2rWNa+OUT6BrE4zV4HezLafY+AyfC5iVxE64ws5xwWtvwJSLJJ+NqSxcou?= =?utf-8?q?5VrIOV2M/iZrwxUPzbfXqeAxoUoQNwcPRaRtbOeps4ClLoWZnxXLvgWvvwPg8GDIm?= =?utf-8?q?hGXbZ7z2QRjH6smuTmpvPlnOLWcgQdLJ43szgiJQZ5cDC8LLHCb/1D7055kfuQYet?= =?utf-8?q?eymmzveaQfaHnEmwx/iZ1xQBP/qhEWmM/0koctPuro+hzplPhEHEHelkf0x5wy7Ny?= =?utf-8?q?0LTfkJd5CZFFSN3qs=3D?= X-Microsoft-Antispam-Message-Info: q9JH7JNFYJCKZlvUejQLdoba4TcY4bFPmrEMYEVBNtfOz+hiZ/TwUo5Qc6oHz/6fzSuPyNnybBCKdVAYEFhSCm8XPWIRdSLgjhYueJrJkyptcwxCRsJ45Mg42iNRqDVIv9smX0LH65nivxzqc9kX2ANARSP2KQmHsEdTEmqVmdBCekRckpwD2yrwwb/n+LfRuVUjwNH74TQB1FKZABjiaEymh4jVruMY/SqsdI/pcXv+X0302imKocIW2hYCIsmACTS2VPo0eHAkVHRuHSUfGC7/MeWROlOr4lggLwhZSh5LTeeawiVEvrMb6cOM0VZnZIoSiSmVBVrqIz3iUB7Dev1ZbxOIdNGtRRkgmc8dMBo= X-Microsoft-Exchange-Diagnostics: 1; BYAPR12MB2629; 6:GAzNPKH3vnmIm8hSUMv91aKYCbU7/VqUVbKw1M7wuTzlEGaz9pleJOMroats6QhP69cgqDxXtuMiEsIS2pKDFddlwnHLRi9upgTMj49J4NcPkhBgdxyo8apmMKhZFLr3aTMPYNyQ9EkjyI6cxJt3UAUNpgJYBhx2vBoNTKmJF1TnxVyyid6fcWtj+tJov1GEwHk/9DjL58UZ3p+++JlE916L5PPAcPJ8qh9niZVxcixgSxnaJxN37ivpUJ5bwEcguqXd+YEKyMfLdE/LCLPME6w8OfKMUs3q+QdWmdRAJcDmBxHh/k0GRScp88dprA20UbK/LW8t0sGhWFJROyaIwvag/8aGoJ7O5Y/LyArDP1QhlfB+loNROtdUX+bHTLGxSFd3KArue9Q6FcLR0Us8x5ZbprTzqwasHovbGKyfbkdAKVCVFwZyzHl2fD9HINYF4Y0OuAnArbes75wuOqsKeg==; 5:pagm2Ls6rTQclkc5qXap4YmwBAPbcKTX/dgpmsIZmGuzFITccAnlkWYWfnHrxApFrcAmp3yWeFVewihTzLsUzktLI3JmKWWrYt/MxI23VMGeSdYp+fH4ulYUFXRwzy2VF4Zhx4HiyZzx1+0pt6DDLla6KRfiBVL6fytvWowUlYI=; 7:O7gULrVQZKuXp27fWpp5Ol0fSDHPEGfifUYxVbQHZ21K/KoscQMZyuRMl/IXMupr0Chku9lAUYjm5lvGmYfk9gLrcaGo5TpulYNtYIKzbioYgqf2birYmUXfBIcZIZmti00OK3Hnxconacu9wIOxiQ== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BYAPR12MB2629; 20:ObQodEiqJ49t4MNMLdR6MWFXzB1yof0/5uHR08Q2Mt8xA7n6DsxxGUNGutoEA9mX5rbwF3wF367lxrnihMMjo2i3L37Xk92a8NG6rmx1COoK0a1ROBcnhsKOhc7FaoVvK1QyLZIO9CAKdC+5oRM7BSbXtU+CqbeiiaJbAHXUZTL4SwBUOXThjHKJQ8XyyOBR/fjFqEL9rHcZ0kClbSfu0Xqx+izWwsKi7CO7R6N0gUmfQCp8oT5W7zDQ7XY5XdgB X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2018 15:55:21.9142 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f2553413-ad42-4371-b576-08d65c5c6501 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: BYAPR12MB2629 Subject: [Intel-gfx] [PATCH 06/10] drm/syncobj: use the timeline point in drm_syncobj_find_fence v3 X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Christian_K=C3=B6nig?= , =?utf-8?q?Christian_K=C3=B6nig?= Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Virus-Scanned: ClamAV using ClamSMTP From: Christian König Implement finding the right timeline point in drm_syncobj_find_fence. v2: return -EINVAL when the point is not submitted yet. v3: fix reference counting bug, add flags handling as well Signed-off-by: Christian König --- drivers/gpu/drm/drm_syncobj.c | 43 ++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c index f97fa00ca1d0..282982e58dbd 100644 --- a/drivers/gpu/drm/drm_syncobj.c +++ b/drivers/gpu/drm/drm_syncobj.c @@ -231,16 +231,53 @@ int drm_syncobj_find_fence(struct drm_file *file_private, struct dma_fence **fence) { struct drm_syncobj *syncobj = drm_syncobj_find(file_private, handle); - int ret = 0; + struct syncobj_wait_entry wait; + int ret; if (!syncobj) return -ENOENT; *fence = drm_syncobj_fence_get(syncobj); - if (!*fence) { + drm_syncobj_put(syncobj); + + if (*fence) { + ret = dma_fence_chain_find_seqno(fence, point); + if (!ret) + return 0; + dma_fence_put(*fence); + } else { ret = -EINVAL; } - drm_syncobj_put(syncobj); + + if (!(flags & DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT)) + return ret; + + memset(&wait, 0, sizeof(wait)); + wait.task = current; + wait.point = point; + drm_syncobj_fence_add_wait(syncobj, &wait); + + do { + set_current_state(TASK_INTERRUPTIBLE); + if (wait.fence) { + ret = 0; + break; + } + + if (signal_pending(current)) { + ret = -ERESTARTSYS; + break; + } + + schedule(); + } while (1); + + __set_current_state(TASK_RUNNING); + *fence = wait.fence; + + if (wait.node.next) + drm_syncobj_remove_wait(syncobj, &wait); + return ret; } EXPORT_SYMBOL(drm_syncobj_find_fence);