From patchwork Wed Jul 19 02:22:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Felix Kuehling X-Patchwork-Id: 9850349 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5F152602A7 for ; Wed, 19 Jul 2017 02:22:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 47DDC27F2B for ; Wed, 19 Jul 2017 02:22:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3CDCD28628; Wed, 19 Jul 2017 02:22:18 +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=-2.6 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED, RCVD_IN_SORBS_WEB, T_DKIM_INVALID 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 36FCE27F2B for ; Wed, 19 Jul 2017 02:22:17 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DE9AB6E3E8; Wed, 19 Jul 2017 02:22:14 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0040.outbound.protection.outlook.com [104.47.37.40]) by gabe.freedesktop.org (Postfix) with ESMTPS id 74DEB6E3F5; Wed, 19 Jul 2017 02:22:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ChXkNV4k2Qee1501u3KkfINZChD1PLLYOV7tkIIeny4=; b=wr6C4bB0Sec7j8CdcR9Tm0Q92cHQ18VIuR5mClzye19UPD6YO9m+IcSczpFWfpD/QArbHjJ0Gn467BBKBm+4Fxb5X0GMtIU5YfMxl73GFWoDTlBV/uFvsWCq+4+4D1vaXF4wRld8IfHFQOwzZUr4nEPVgbvrtotFlbTnzX0zZNU= Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none; lists.freedesktop.org; dmarc=none action=none header.from=amd.com; Received: from Harpoon.amd.com (165.204.55.251) by DM5PR1201MB0235.namprd12.prod.outlook.com (10.174.107.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Wed, 19 Jul 2017 02:22:10 +0000 From: Felix Kuehling To: amd-gfx@lists.freedesktop.org Subject: [PATCH 4/6] drm/amdgpu: separate BO from GEM object Date: Tue, 18 Jul 2017 22:22:11 -0400 Message-Id: <1500430934-27098-5-git-send-email-Felix.Kuehling@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1500430934-27098-1-git-send-email-Felix.Kuehling@amd.com> References: <1500430934-27098-1-git-send-email-Felix.Kuehling@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.55.251] X-ClientProxiedBy: CY4PR03CA0008.namprd03.prod.outlook.com (10.168.162.18) To DM5PR1201MB0235.namprd12.prod.outlook.com (10.174.107.23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c767b7f8-695f-41eb-8f5b-08d4ce4cf662 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5PR1201MB0235; X-Microsoft-Exchange-Diagnostics: 1; DM5PR1201MB0235; 3:8wJrAgjOsrqt/ujLchvIQs21S5bwlPlQNPti4kuVegKlMZI6OTlStXI85yL/OzOMOxROMW980+2IAbRGjzt4r4e851oGLSw1eZQpI5R2InPQWqANdFxdvgXKwSVo7jum7XUSAI8hJQOX7U7I72KARcL/Z4fHYcRQNBLMngUk+DZObkbzf1DWR2NiO1nPmTkf8e/2sWfK4fIBXXshvfZ7IUPBbiDPzUesd+pR63vJrfZKJAOEgNNHzO9FAbX0n6j57rRDP/kt5c990SPqw/HIGahgUkowKGon3yWeT1YNE444jLi9HZE9qdDwWqxOIxduawFq3Le2KJC2mcxTZVINQtQCBUVHKYpJwJJ5QeEAb4DrAMISadvhmjmYYb4WjeQNiUyS9Wrysn/b8JKtyrm0voQUD47vQD1Po1MjFjl1wov7MgoAiNGZIpyWceIxI6ylxhyWp4S1UerpUJGXqJBhU8WVT7dVIoYVPDPQdDfd/QY4GOMMDOhTWYQZ+7rIgAVmNvH3CbHefuWpMIm212ohpjzJEZNFYddayxd1xzFpkd5/Q1cw0soAL9uMXn9fCX+xAmexJjfC9ZqTPnkzRZmzD9wOJlc2YXTcAGFD1XDqpI8p1BJDrgdGPvZRoxGaBVluyIZxoeHIsuEUq0os+rUwCiCPxvOjzPdZw8OP9T+ue/qxRLUDGZXEsZnBNo3gu8emF5DaDq6Jp9SCz859i1yGqKpJ0yKj3Y3i6GqfmL1OCb6KupEc682PMD20T6VD+PadoNa299QPtxHN+oviDN+Gxg== X-MS-TrafficTypeDiagnostic: DM5PR1201MB0235: X-Microsoft-Exchange-Diagnostics: 1; DM5PR1201MB0235; 25:FmQfTt8Oej6iu7JmTqgOYoEJ2eWImpZrCfirHqHTyiuQNKpdsJ6KSe38keJorWGGUNFxdd6zmzN4ehkaeFegbFAPpCfCJDlmgFTxO4Kh1BTHJGR2RdbFwsu5Z3Dm1Hoq7dr3BYgAdkNwoTuUbBmQtbUzc7qJJBLzOojeexFUDvTh1HR/Yy/GHYHsj7+fB0Q/U84kW7rq8ifsDDU+QQTZ280qBY5pvf9UB+6fbBaNrjvYqmY2wRieBEcNhnXAu27LRu4aVDKSLAUjTU4PU1PQGrW2Fs5pJ/eoGLj44pHZBzu/ePROus9bMym4PTNgGiuVSC+iiIBeEDR+nLJKn8/XST8AP1nwuXv3W6ik0JdBb8p3iS8gvWuKXAKZy83fs2W8Um+BWuXNU0CcdqmwwumEAo859SYfRiz0GsdZnMYkPA4nWY6AaT1l+i8mk7OXAkrUiLLkJKxMCZcyHGTSYHgjLnnNo8HslaOePb9P2f+4Y6kxIQd284vNjmcoH/PIZy/s8ceNJCwq/jbuMEUUWAjEVud0rHRGYGIbka2Vi/5xapwLJwHcrDYjakHMPfnHvwrgjQVB5D8N1CJBtT04qjLS8sIL0tTTNCxoBlcETZ5aoRMnsFLfCJsImpX//TTwWGDxUcPmltkYp40Ygm2qRgIi/h8MbBDYy1LY4EM3a2ElmtjWNRrAzasEL/YzknPS8Edr7U5WOdfp0VVNdC4vedgdKycnHGFeLvrZV9psD7qU/OEI5CDvNIMy89SdSqofK0ceaKPDRRitm66gpRiFdzRWrxubo+uPGdRZnYVBh1vcfs0s0kVtAkxEvAZAmX7ne+PAMp7zhravPWGzx6tEpLhTwFc17v1VcCaihB1O0QAapiteXxslTtIgbQYljqwA0yyxFxuQvwSjs6BXoiDwe0gqKNjKDVNOZfCKfyAunpGoMSY= X-Microsoft-Exchange-Diagnostics: 1; DM5PR1201MB0235; 31:SU3/V5o9FC7ySaYii/EQh8Quxl4sDUHAUYeC9g31JEjnaebdMy2MMxwpDKWGChFGCoPVsYID/Hs+uSmFC5Kb0i1hpmni+5O5KhHyfKtD06m2bL3kXbVbV5V6JUaaokTey47vbLGuo4mNxmLFhrxhzIhd6ftlqpS1Wo2Z8N56f81WgpvWKoJDA/TwssMoanWjeW11eczf4eji9BMnUQ6R7f1RaNGKLqEpNgw6T10bUtumGqZ5W+SnbBqDF1vH2sDQOvxWc0thCmsDzLMjNwkA63QS/Hn+B1WT/KcZIZ7+AjSTTdhmsSUanPcVSH7WGG9vfIu/Kx2+PlBDhy5x5FVsRr5yZ030ykFHLFeH91Ab2oILb+6hVxKjEhcLQn9gQADj0VgURao0ylApBY896rj0LJXhtAv+u8jtDeHiFIHlZob5/xuxgNPP90Lv7lF2SG9r3wpfpbvJj9lc8KmHxKi+HgjcoRmSEeSTZicn9pZpGtMEdg/I9dLBV5Jz5q8gawOH06N73PB4aJkMyzqk33xbnXhKEobKdaeoEupmCfuYZqYmEYZs9Rr9YvDVODaKWRhYwjllf2WST97sDnXPWjjX4XIQK1LE8BvTVQr8eg7iOWlq1K8dCnKTFx9XRzXG5lutSdKWkwB3k5Gy9icvBAuPQGJvgxP3He+JnLRgApj0vro= X-Microsoft-Exchange-Diagnostics: 1; DM5PR1201MB0235; 20:h49Dje3piEtkBh5bpTQutTxSOpgAFMa3VvgyJxT8KnSaT7k13fNGOy8ZUHNQzvI9LzpTRsu2hc62BoVZD1MzDP7CWgP9bNwP4LJFP0oIawpbzmBKF2jbkXu7Tmb4WaZcPRnECtYerhwh+ojSkB4dYVIot95EE6ANholHUDTkMBDpOkhkCp2l0kYKIq+YkkR6JT/e3cqpaV0zDIHbkLKzr4toKbocfPlEmsBe/NA5T+JvJfFrwOBf4cwt7GzUrEF+JBq3eS50MY3cFHR8WhLEKaJHomjwaQC50b1CMBw0pYQZ3iMO1GMOFtJPoyzH2znHA5xjdxXwqOG8jcLAgdX90g+/Bf3KUFs0cZNgIQhyov4F8au/jELk0ERIABAdMIBIdELutmbe5jblnohjxcGa/Jo4KK6Ffq72i6zrONJBrTB7XoqkzvxIUHVjlqD8gZd/Ekh6s/JhfZE6R7W+JpG4ABsT/v/SY0Nz855Xk/bLpr83VSiJizkr2THWmLR2UzQL X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(247924648384137); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123555025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR1201MB0235; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR1201MB0235; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyMDFNQjAyMzU7NDpFK2tTaWpMbEJlSUR2V3FuOTNTV3lpcWw1?= =?utf-8?B?cEtKQmFydXNMZHFSaGlQNDJqdmE5SExuZHJOY1VpUHVWbXVPbGMvU1J5ckpJ?= =?utf-8?B?Wmx1TlgwOEdIR0xFWkQyQyt2L3FOSCthamFXRzhrdVZoNVovT1pPM0NOTXlO?= =?utf-8?B?UDJUN2JndmtOa2hGM0hxRmpWUUVEeUNpY3J2RmcxQlYzM0s5a05WYjY3cWdO?= =?utf-8?B?RTJManVKZ2dTT2labjRoOTJoYTlUVHl1KzRYbVhGZ3hhU0d3ZzYyWWV5WUtB?= =?utf-8?B?bml1NlRqb3p2N2pZK3hCYXdQeWpTSVVuQk9wSmJEejBjbDNRMXRNaWFRRys1?= =?utf-8?B?NFRIWUVxYmg5cmhRb000MkZaeVZ6aHdMcCtobXJEWHZpNmtwbjdUUk1zUlhL?= =?utf-8?B?aWFTT0t4ZzBFNVdkWEw0Mk5NSitIL1FQdW1kRU1salozYkUxVVJzdWE4SkRa?= =?utf-8?B?T2R0MDRGY3RrRGkyRHpRY2g5QkNCcEM3MGMwRHJ2TTkvRnk1RVdKbllaTngw?= =?utf-8?B?Y2x0MllPY01lcFVFSmp6N0l1cFJlVXBrVmdxZUJ4eG5YZFNNaWppbGZQRFZM?= =?utf-8?B?cWlZVmk1Vnd6bThucVlVckJMVWRBb3IxUGc1ZmRCUnhzaWg5a244bXhlNnBZ?= =?utf-8?B?UUhoWWs1bERKdVhsUmZQWi9EbWs5WFE3bW5QbzJEWER5TFFPajBQWXNUTVk4?= =?utf-8?B?V2JvY1NPNUVKUTRUT01QMjBmL0NIYzBOOG9Oc1JhVktJQ2lRYmJ4ckNSZXdw?= =?utf-8?B?MUJaQzBxYURSZEdPQ2hRYnJHcjBlaW9nVHByVUkrUFRzZWJMSUVmV2xzWkhE?= =?utf-8?B?eFpPQ1poRFo5Mk9aQ3RnTDNYU3dJUURHeEZ2WHJvbWZ4TjMrejdwVEE2NzJI?= =?utf-8?B?eEZiSmo3MTQyQkRiNk95WUhqVVpSMVhGb3RLYkFKYTlYZmVWVkNRYi8rN2x2?= =?utf-8?B?bkxHNUtDSWJGTTRDakZIcmlWTExvK2liSlg4dWcwZ2J5VEZKKzNsY25odzh6?= =?utf-8?B?L00vd1RlMFdUN3JTMldNS0tTWWhKWmhwcXlZaXBRUTBlWG9wS1NpNkE5YU9x?= =?utf-8?B?RHRudi9Xa1hhOXM2WmFGelVZK09ENmhweW1DRnFTSDNjMXo0NkhZWTdpMkU3?= =?utf-8?B?NzNRYUNVVXp5Um4vczFvaWEvVE5wUXZ0Sm9BdEJ5RnpXQkxyVmVEVVV0Ym1F?= =?utf-8?B?c1BkWmVZVTl3a1Aza2NOdkNuUWRRc05sdXZFZGxodC9GY2gxVzJQQXEyTUdx?= =?utf-8?B?ZUE5OGdpd1dheWdCUjRPc09YTHR2RmRrZnk3OFNuK25TUVpBWDRrWDdYaUhH?= =?utf-8?B?cmFjV2pOOWluOW10OEh4WUlDaDhXbWlOY1VwallNT1NaMVBMcjlOMUs5Z0xW?= =?utf-8?B?N0ZSdXdPS0ZhRklBSmFEbzRxalR1bHp0UmpTcmpzQU9jZ0ZYcCtRRlNEOXVV?= =?utf-8?B?R0ZOc0p0NnpzRzJjbGpEa2F2Nkg2V2p4L3VKM2pnK0JnQVljOHNCSmVCUks3?= =?utf-8?B?M1c2SHo1cDRIV1F5dU5lT0kvRHFiakZ2M3RBd0loUVBvak9CQUVJdjkxMlNj?= =?utf-8?B?UDkzMlNPRDNrYmRrOXJidFdMdDM4akJuRGVyU3E1dDMzMk80N1JubHMzV0hU?= =?utf-8?B?MzRvSFFUdEtIaERPOW5XaWRqRlo4emhndlhPQmZPNTRVQUtuY2hwQzZwRVBp?= =?utf-8?Q?hD9S/BxkPOJgmq/yHUTDJTQjtH2MRGEoM3XDrlLm?= X-Forefront-PRVS: 0373D94D15 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(39410400002)(39860400002)(39840400002)(39400400002)(39850400002)(39450400003)(25786009)(50226002)(47776003)(66066001)(2361001)(42186005)(8676002)(2870700001)(81166006)(23676002)(2906002)(4326008)(53936002)(50466002)(7350300001)(5660300001)(76176999)(50986999)(450100002)(53416004)(36756003)(2351001)(86362001)(38730400002)(305945005)(189998001)(72206003)(478600001)(6916009)(5890100001)(6486002)(6116002)(3846002)(2950100002)(7736002)(110136004); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR1201MB0235; H:Harpoon.amd.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyMDFNQjAyMzU7MjM6M2tFWWNyMUpWRTJOTFRZM1NCVDlOd3Ax?= =?utf-8?B?ZTUrNGEzYjl1SUduS3p0S2NGQjJwQzMzNHdOQkZ0UXlsbDNpYlZXaDZDYWxX?= =?utf-8?B?NDFBODFncktFY25pNXRoa2lNQlE4Z0VSSzl3S01WN3ZoTmRtRkkxVzFPZnpr?= =?utf-8?B?YTF5NU5tL0ZPRkhEMjJJZWdSV2duOGg1YzluNjVVV2IvbEk1SlY2ZXFBNjlI?= =?utf-8?B?cFQ5K2wrT0E2RGNNL2NORW1CZUtodEtoNE1KUUFJMFpYekpZVDNTVkVzOEZp?= =?utf-8?B?Sk5tUm1qb3ltcTNld0Z2aCs1ODZPMDZia2RzWjJlS1Y5QVRadHVnNUtTNUh1?= =?utf-8?B?RUZFVFZOTHZaaU1xR256elB4UklqSjJnVWFHUXp6UkRxcTVUbU5mK05pc0Mx?= =?utf-8?B?VGQrdU96S2VVZ1QwSHRlU3dUTC85aVphRFNEK2VQNU95bk8vWFVXSFBqNVV0?= =?utf-8?B?b09PZ1lvcjEzVnM5Tk1SRHcxMTJjSENrVVpDTG1mNVk4UzlpcnhsWndDODRX?= =?utf-8?B?REZXcVZtL1hFZVd5aHROQSt5UmFMalRHNFVlNklCdWZPU2NPUERueWYxRjRL?= =?utf-8?B?OTNDa21ITVQvNDZCNTZTVzFIbkJyQzFvQU9ONS9ZWi8zOFh5SFcwMGRzVkty?= =?utf-8?B?cTZTOHE0a29TbEJYMTQ5d2RwdStCekY3VVVNTDBMbytCRXRRbGFHVWFBdFNN?= =?utf-8?B?QkhCUFQrUFhDZTFIc0ZDbUkzMWx2YzBzdXhUUmpXcXltZ2RHTGhhSjZoZDlU?= =?utf-8?B?N3VKWXlmTU9scnhxZk5CUGhuOWZQUU9WdTZJZWJ1bEVYcFk3QWhXSWtLeHlP?= =?utf-8?B?dmxrQUZQRllXRnNXQ1h3a3pMbDV3REtjV0xOYUpHK1ZHUDFFKzV4MGJsZFMv?= =?utf-8?B?TVFubk0rMHF6MUNkcTRIZ25VazVFSXhPdDl4aTBreWQ3N3pkcDE0a3F5ZlZy?= =?utf-8?B?MkZ3cmVMOUhabXQ5SU05L0FmZHA0elFpcXI2K0dXQ01KYUp6UjlBaWRVT29V?= =?utf-8?B?RDZ0MHpSSG4vb3BWdzdTZU5EOXhuRFNyVW1ocmgzUm5jZnA4M2E4U1lTYWZ5?= =?utf-8?B?ZlZVOFptYUJvK2ZvbTVBb2VWV0l5dGxaQjNoTjNnbWtPbzhtMHhXakRSMkx2?= =?utf-8?B?OHVQc2dBVTZLb3ZBazNmRHJLNWJIdFNVQVkxenVJYzFNSjlVL0NlYWcvV09q?= =?utf-8?B?alpkaFhlWm5IRDVxelAvS1BPazdxalYyQVlkR1FwUytmRUR0bzJDSGlBb0ll?= =?utf-8?B?TWhGb1czUHpKMXZjZVdMKzJMVWZOQjVLeVZFL2p5bnlxZm5QUXRYUXZ6ZjhM?= =?utf-8?B?VmVZVXpBVlJXd0s5M2Z6N2dLRFE2cHAySjF5VndTVkJQQk5GblRTQkI1MklW?= =?utf-8?B?UTdsVGdCMGpGN1pyMWwwWUtEdUFuM05HMHlsTFhUSXF2MEtzQWQ0Sm84TVM3?= =?utf-8?B?MjcxNEFZRU0yb2ZjTHVGQUxqVkRDKzRybXY4VWQ4OWRYK3pSVGZKVGlhSUZ3?= =?utf-8?B?RldXQkRLQnJmQ29vZXFpc2dlVDc4dGNXYzg1Qks2aGhFa210TjZUbUVJTXlM?= =?utf-8?B?RHRhVTRZNnBhZjAvUzkyNUlGcGpwRmt6QT09?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyMDFNQjAyMzU7NjpmR0huNVJWL2RFRXBQN3huQ29OcU9PVDFC?= =?utf-8?B?UzhPVGJBNFdPdGxKMzE0ZXFFb0ZKVUIyZFgzb3U0Zi9YQXBQcmllbVFDT1FC?= =?utf-8?B?TFhsTkExZWowdzQxT1l2ZzRrOTRYR0w2VlpaWlZjaWZYb0J0bmd0NXAyY2g5?= =?utf-8?B?VWgyajAwVWl3bDlNUWpYL1lGczNFR1Bqb29lSnlVdFhteGVyaUFWbWJYODEy?= =?utf-8?B?WUpFOTZqR25QMDRGQzVBd01IY2VQNFg0SytUYU84bnFUQ2x0SFdhN1dFaTlK?= =?utf-8?B?TXg5THlGOWE5WDJEUmVuajhxbkpnRHdYMlVacTErem9uczYyR3Q4LzZSVGhT?= =?utf-8?B?S1U0TEhYOHA4L2lkT3o1N2V3TGhEUWRKdHZKT2dtLzBjMzJtZFVVTnJPbTZ6?= =?utf-8?B?Y1I5MHQ5TXVIejM3dHFxNXZqWmJMUmpmZG9YaHViR0pXa0xIb0ovSU9RQkxu?= =?utf-8?B?ZXhld1pSdkJrMUM2UnJxZHdmWTZ2eE5UK2ZVMWxBTkdTSk5FNmlicklTRDNF?= =?utf-8?B?c3paenNWUy84b0V6bGY2NEdxL3YwdmpUbk5VR2dVL0VOcittbUJack0wZUFE?= =?utf-8?B?dGIybE16L01jQ0ZKOHZvNGlnWm9WVjQreFRHT1I2ZGVmemdZNm16d1V4U05G?= =?utf-8?B?QU1CL3pjSGt2NWhuR2FMaXoyWHZQU0xZejltQ29ieGF3VmtNV3hYU3hjSWNO?= =?utf-8?B?VW1jQXhxNDZMOGdOa3NaVHhYVGYwY2dFTGtXRjYwN0tyWFRQVUdKZU5nZ2RH?= =?utf-8?B?azQ3SnNBcVQzQkFhYmZhSjd0aCtyZ0x0NzdjQUkySG1RVFpCeFpieFNvVXRh?= =?utf-8?B?SFllaUNKOFhMck1sSjNRV3h0SHBEL003b2o3SmRweU56RUZBZ2R1WTJRdVQr?= =?utf-8?B?YlJ6d21IbUJIT3hES0Z2RmN3V2tUVm9rSEgyUHlsMVNnVCt2bzgzZCtsYVpp?= =?utf-8?B?RnpJSmFZdE50cjI3QUdza2VzZ2VZK0tMaFVhY0E4U2pzcWFERkZaNlI5eGc0?= =?utf-8?B?WWFBbzhwYzBTSVFPOWlNU1g4djc4OVlXR3ovbk5HamIwV043VFVtYndwRUZO?= =?utf-8?B?NXcvaGJTWCtNRXp6aDA3N1NjTWFLUzdwMlh3UWtEVEdMekRBd214SFJxakpL?= =?utf-8?B?cHRUVVFxT3cza2diTHBRN1lnU2JtRm5hTGY5eGZjdUNFNFY4L1VZNDBKS2Vn?= =?utf-8?B?dnRaZjlFMWJrdEhOTHl4VWpQQ2lyNzRFUXozQk5GK09Sc00xZTdab0hVZXA1?= =?utf-8?B?SGdTczFWdnhqSE5JWmdSeENhOHZmS202TjFNZ2hlNElBYk5EaXYxbGUycU5h?= =?utf-8?B?L3lXRENwT1VXM1Zicm9oL2dwVGdrVDk0WlhYNUdHNXJPUjh3RHNUdnNzYTRy?= =?utf-8?Q?t7JQGM27S?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR1201MB0235; 5:yvI0Ftrx1h0kcRrfHQPpoW4SbQbiRGztoXKAhtk4wqEku0ULmPC08hCWrswyU00vfkwOwWs9t7OgZ0Y5trsLQeCCO1ma6icxLWGRX0xTpz5FOc7rsFoAs2UrOJyMxpvYjLcWHiAQM63D1aYykL7tby5F3tBTqv1ILl87iys8Ha1F0DzbwbJK7fHCYiJsi0fIjiP/Mh0kg5mW+ajjYMakTXsekWvNOkBHRbP8auxET8bqKhYk9OUtJmCXylr4IxCEIDS+GLvhWL4Qdm9ETBgb1oRQVEPb5Uf0d8cLPel/hsWbV8ENlagSjqR5xa37UgsuYgBBHXOcIK+8aok9/fobHaH40uYZEK8FcJlKodNfjCvI4GvhLqAMn8KuAxXqY//pN17X31ZRddNwf7W9/lLTmS57P4xmQtwGyKUacASO3SUTgEG/KFfPrm+q8ztP/yd/2ccCrkgt8IQum11iPQYFU8yWa43Oqg0hWh3j0nMGE9XbiaB1lYg2HGecQHVbxsYz; 24:ycWkLKnM5zICUKGJAv/4/lOtSqgpD3gCZgaVJim5PhqE+xAG5gqhQjZRaCL/Dqj1Ogow5ZAVRfozb28aZ5MNHoZHy34iTrDEUftLGct8E2M= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR1201MB0235; 7:LC6S7SZrc6RNAYGaz+GJ0FgEbf4VkrtKTs435ILL+2xnTNENrxQy3m7BKKD8E8Ehvu27JU36NZb4X7vuFcwaFGzBDo2swQxY/WlBMQRD6NDmlrbpWyKp8dlpzIE8WllX6Gqu5dnuiESBdp6GxhIGYpWDINwZ5B7ebw0sPNRE1ZX0Rkxkr16N3TCDWPyia/9g0KTz194t4urakQJ6pDWKjRrLNrHBDsR5GPHfidy1vBYkOk+Eo3EkevBhCpI86G63lMgIVOB1q83GNDYUllIHaAtfQOzNDWgPa7MKyvxb/IGExIr2hy70X+BPeYGuMCZmyRzULMiu/eQz7En9mq0+gv/tgLCzZqFuwgVHMsRGSv6I0a3Fz0U7splLct07XlRgmq2HM5NaAq9AQODqWfe4b99reXHmIFhzS2WZGSuLSluFrC+wDQ16lPkuSd0DAshsLBTI0b8pBGc6YKQqR3fnzp9SIs6McmzIIigwJ3PpNcWsVROjQjTAoZynfhJRh5Le5JiyWD0RQOmdgGYV6VCrOhYOoXW/evuBAfdJo936r/dn4M8a6yZErrHHZ3NGwfMI+lxskEV3oQ3Yrv4oy8GUKPJ8/1AwgQg9RsmTSYiIpxAVKA8jchHP/S2rIkJ5NWw4k0kGiK7lz4RG5UMJie6dJ2d/F1599Zm62AtmFgRjUFlxKpTQU4TtpWZCXyh1eYr+2muq+jgcdsOIm2XjCxFWowDpCf9ae5ABgjzwULfwSwp8cCS6qZIBaItNKbxSweXKh/LVb8oGshNmmzoZ1eEU8pojpFyKhZJPGd3d8mkEDMQ= X-Microsoft-Exchange-Diagnostics: 1; DM5PR1201MB0235; 20:9Emv6mAWsCqeSM1oV2K/I98n4Fu/jjhT/b6GZXOC+19Nli+/yGnPnQuIjqx1un9kKq9M/n/IzhT1NDrgAVmH1iIf09TxHLZ7CmHB/1FLhoKzFORKLhpoyjnl84PF26wLbZsv+OM/NxCWmPQxi0N/IUeUgQ7qMn+/hP0amUoaaBnD90CkxbBwYIZsrcJ6M6f+eHoR6X8g6jWjXu6uB6WasB+xoV7bDuJ7OM8neVEy7kdAdpvXhFPbn3MInYIGdYv5 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jul 2017 02:22:10.8667 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB0235 Cc: =?UTF-8?q?Christian=20K=C3=B6nig?= , dri-devel@lists.freedesktop.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Christian König This allows us to have multiple GEM objects for one BO. Signed-off-by: Christian König Reviewed-by: Felix Kuehling --- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 12 +++++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 41 +++++++++++++++++++++++------- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 7 +---- drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c | 20 ++++++++++++++- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 17 +++++++++++-- 5 files changed, 77 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index f6345b9..9fa3cee 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -417,6 +417,12 @@ struct amdgpu_bo_va { #define AMDGPU_GEM_DOMAIN_MAX 0x3 +struct amdgpu_gem_object { + struct drm_gem_object base; + struct list_head list; + struct amdgpu_bo *bo; +}; + struct amdgpu_bo { /* Protected by tbo.reserved */ u32 prefered_domains; @@ -433,12 +439,14 @@ struct amdgpu_bo { void *metadata; u32 metadata_size; unsigned prime_shared_count; + /* GEM objects refereing to this BO */ + struct list_head gem_objects; + /* list of all virtual address to which this bo * is associated to */ struct list_head va; /* Constant after initialization */ - struct drm_gem_object gem_base; struct amdgpu_bo *parent; struct amdgpu_bo *shadow; @@ -447,7 +455,7 @@ struct amdgpu_bo { struct list_head mn_list; struct list_head shadow_list; }; -#define gem_to_amdgpu_bo(gobj) container_of((gobj), struct amdgpu_bo, gem_base) +#define gem_to_amdgpu_bo(gobj) container_of((gobj), struct amdgpu_gem_object, base)->bo void amdgpu_gem_object_free(struct drm_gem_object *obj); int amdgpu_gem_object_open(struct drm_gem_object *obj, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index 917ac5e..b625ee5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c @@ -33,14 +33,20 @@ void amdgpu_gem_object_free(struct drm_gem_object *gobj) { - struct amdgpu_bo *robj = gem_to_amdgpu_bo(gobj); + struct amdgpu_gem_object *aobj; - if (robj) { - if (robj->gem_base.import_attach) - drm_prime_gem_destroy(&robj->gem_base, robj->tbo.sg); - amdgpu_mn_unregister(robj); - amdgpu_bo_unref(&robj); - } + aobj = container_of((gobj), struct amdgpu_gem_object, base); + if (aobj->base.import_attach) + drm_prime_gem_destroy(&aobj->base, aobj->bo->tbo.sg); + + ww_mutex_lock(&aobj->bo->tbo.resv->lock, NULL); + list_del(&aobj->list); + ww_mutex_unlock(&aobj->bo->tbo.resv->lock); + + amdgpu_mn_unregister(aobj->bo); + amdgpu_bo_unref(&aobj->bo); + drm_gem_object_release(&aobj->base); + kfree(aobj); } int amdgpu_gem_object_create(struct amdgpu_device *adev, unsigned long size, @@ -49,6 +55,7 @@ int amdgpu_gem_object_create(struct amdgpu_device *adev, unsigned long size, struct drm_gem_object **obj) { struct amdgpu_bo *robj; + struct amdgpu_gem_object *gobj; int r; *obj = NULL; @@ -71,7 +78,23 @@ int amdgpu_gem_object_create(struct amdgpu_device *adev, unsigned long size, } return r; } - *obj = &robj->gem_base; + + gobj = kzalloc(sizeof(struct amdgpu_gem_object), GFP_KERNEL); + if (unlikely(!gobj)) { + amdgpu_bo_unref(&robj); + return -ENOMEM; + } + + r = drm_gem_object_init(adev->ddev, &gobj->base, amdgpu_bo_size(robj)); + if (unlikely(r)) { + kfree(gobj); + amdgpu_bo_unref(&robj); + return r; + } + + list_add(&gobj->list, &robj->gem_objects); + gobj->bo = robj; + *obj = &gobj->base; return 0; } @@ -691,7 +714,7 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data, struct drm_amdgpu_gem_create_in info; void __user *out = (void __user *)(uintptr_t)args->value; - info.bo_size = robj->gem_base.size; + info.bo_size = amdgpu_bo_size(robj); info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT; info.domains = robj->prefered_domains; info.domain_flags = robj->flags; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index a019556..bd70baf 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -96,7 +96,6 @@ static void amdgpu_ttm_bo_destroy(struct ttm_buffer_object *tbo) amdgpu_bo_kunmap(bo); amdgpu_update_memory_usage(adev, &bo->tbo.mem, NULL); - drm_gem_object_release(&bo->gem_base); amdgpu_bo_unref(&bo->parent); if (!list_empty(&bo->shadow_list)) { mutex_lock(&adev->shadow_list_lock); @@ -345,13 +344,9 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev, bo = kzalloc(sizeof(struct amdgpu_bo), GFP_KERNEL); if (bo == NULL) return -ENOMEM; - r = drm_gem_object_init(adev->ddev, &bo->gem_base, size); - if (unlikely(r)) { - kfree(bo); - return r; - } INIT_LIST_HEAD(&bo->shadow_list); INIT_LIST_HEAD(&bo->va); + INIT_LIST_HEAD(&bo->gem_objects); bo->prefered_domains = domain & (AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GTT | AMDGPU_GEM_DOMAIN_CPU | diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c index 6bdc866..b9425ed 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c @@ -65,6 +65,7 @@ struct drm_gem_object * struct reservation_object *resv = attach->dmabuf->resv; struct amdgpu_device *adev = dev->dev_private; struct amdgpu_bo *bo; + struct amdgpu_gem_object *gobj; int ret; ww_mutex_lock(&resv->lock, NULL); @@ -75,7 +76,24 @@ struct drm_gem_object * return ERR_PTR(ret); bo->prime_shared_count = 1; - return &bo->gem_base; + + gobj = kzalloc(sizeof(struct amdgpu_gem_object), GFP_KERNEL); + if (unlikely(!gobj)) { + amdgpu_bo_unref(&bo); + return ERR_PTR(-ENOMEM); + } + + ret = drm_gem_object_init(adev->ddev, &gobj->base, amdgpu_bo_size(bo)); + if (unlikely(ret)) { + kfree(gobj); + amdgpu_bo_unref(&bo); + return ERR_PTR(ret); + } + + list_add(&gobj->list, &bo->gem_objects); + gobj->bo = amdgpu_bo_ref(bo); + + return &gobj->base; } int amdgpu_gem_prime_pin(struct drm_gem_object *obj) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 4d2a454..53cb7fb 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -256,11 +256,24 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo, static int amdgpu_verify_access(struct ttm_buffer_object *bo, struct file *filp) { struct amdgpu_bo *abo = container_of(bo, struct amdgpu_bo, tbo); + struct drm_file *file_priv = filp->private_data; + struct amdgpu_gem_object *gobj; if (amdgpu_ttm_tt_get_usermm(bo->ttm)) return -EPERM; - return drm_vma_node_verify_access(&abo->gem_base.vma_node, - filp->private_data); + + ww_mutex_lock(&abo->tbo.resv->lock, NULL); + list_for_each_entry(gobj, &abo->gem_objects, list) { + if (gobj->base.dev != file_priv->minor->dev) + continue; + + ww_mutex_unlock(&abo->tbo.resv->lock); + return drm_vma_node_verify_access(&gobj->base.vma_node, + file_priv); + } + ww_mutex_unlock(&abo->tbo.resv->lock); + + return -EPERM; } static void amdgpu_move_null(struct ttm_buffer_object *bo,