From patchwork Wed Jul 12 05:29:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Felix Kuehling X-Patchwork-Id: 9835915 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 9BC7B60363 for ; Wed, 12 Jul 2017 06:01:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 857E92841D for ; Wed, 12 Jul 2017 06:01:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7575928487; Wed, 12 Jul 2017 06:01:56 +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 9ED782841D for ; Wed, 12 Jul 2017 06:01:55 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id ABFD06E324; Wed, 12 Jul 2017 06:01:53 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0061.outbound.protection.outlook.com [104.47.32.61]) by gabe.freedesktop.org (Postfix) with ESMTPS id A5DBD6E066 for ; Wed, 12 Jul 2017 06:01:52 +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=Pz58ILTHO+cjp4JOR4k5J9UPZ5b90RZwqHN7HnHCzQk=; b=lxvu2uQkimu7X9eM0VDuOlg3eKEOJex1BhO9eXvQCjnVcMCTaLoM8OUixhDjKchn+sIElKMo3kf9xc4shwN0443kBEKZ+OWKodfhRPjWwgFBPUzm1Or1btTUr1ZYe1ksmo0D4AgiU1Eov/GMTFKMYurcii1/b9J9ELLaHyGVD+E= 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 BN6PR1201MB0225.namprd12.prod.outlook.com (10.174.115.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Wed, 12 Jul 2017 05:30:14 +0000 From: Felix Kuehling To: amd-gfx@lists.freedesktop.org Subject: [PATCH 4/6] drm/amdgpu: separate BO from GEM object Date: Wed, 12 Jul 2017 01:29:25 -0400 Message-Id: <1499837367-8368-5-git-send-email-Felix.Kuehling@amd.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1499837367-8368-1-git-send-email-Felix.Kuehling@amd.com> References: <1499837367-8368-1-git-send-email-Felix.Kuehling@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.55.251] X-ClientProxiedBy: BN6PR19CA0083.namprd19.prod.outlook.com (10.175.197.21) To BN6PR1201MB0225.namprd12.prod.outlook.com (10.174.115.21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 622d21b6-e0af-4df4-22d1-08d4c8e712b3 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BN6PR1201MB0225; X-Microsoft-Exchange-Diagnostics: 1; BN6PR1201MB0225; 3:10LEcgcunseadVOSxGaCiHK/+g6R7kKxbofrjpIn8/yZxvlSVKXG5oGzm4K0VGDno3A6eTVjqyaPnxehOqLx+nRn/2GwMYyHCzruQHX2JmaMWLCObwXqk82NEL8sQj3rDHDjivJWpVEgzMBf4gL4TeN9h9ZPY7D8v7GPnKwwzVv0Z4B7zHj7Fx9Py3fwIjgKxc8SF6rQRZRhgDox3yNSKyAnlzvtykwYbSPK32/EzB0VPQzVTvPlWEhHv8JdWFvpvv9kT6OceyDLzENFixD8FtlPRfNhnBJElk7Tr+lKZK9F4RHP904nwLmL6fRwpPKgy6ZR60nnuPirOg2/AzX3em9dUNTLn1UT77njdgV75/UHD7sZLhOzO6Kgsb8xf63QEAxNiJRrq6ifgHRj2uy2UcOPLqPQAwsLZTz2ScPdDd2zUvECbLYLxfZrKPDmVPMsW7O6dXvAfNf0+9/GgdwnjAogL0RaccDJdcA9GkQX0SfIacM+7Rjl6bfjnXn+jMwUjrVTgaaPETgvsdSMWaskJcQLZGdxSd00B9By2bbblWi28PaS2P48RmypzZPgftAzNp+WOFGA4tNDbqCs+evFySikXHWnEl+U9YpzZvOoRKGWU9DdxyVd4/C47lcHFWcf8WX6ZrbDuyzw4VCWjq+LofSYSek8jUgCpQGtTQpqcvsgmDIdH9ooKEeWK1xQPk3UmleRne9a4cfyhtGTKaomeh+p2swuGfFiPUnwXnYXdK6WTJuZF42aXGINxxModCoI9PDVzu8hrqB5eZaP7r+GJw== X-MS-TrafficTypeDiagnostic: BN6PR1201MB0225: X-Microsoft-Exchange-Diagnostics: 1; BN6PR1201MB0225; 25:Abfvvrl2CDXI8o+fbo6vRcCxvSnoC5VcUE93tjvfZQ9eOaD/qmZxcz6fNdr7go5Vi2r4jSMLKfZQa0nGunn90zbMF+JK2M7rOADAvsGKLrxmwvtPg/OVTtfqUDdjSLM7z3vf9igVQQ7ZyzyIU+EGeTtEdozuQHZkFc8j9TNaisBF+9HBO6H0kOJp0Aofab+RroFjSv8rOTe4DElN51EbUu8U+d+13jDRJ8OZCrorUj2ccMwYiqRd5zj7dRMk6a6qXLJtMjTtw/XMM050U9YQ1Yv1SnwlhDE97qJMlzWRFcpDB1nRmhanjxQiRqy2wC0UWV5ldv1+IsILibCUCr3rVq0Va+q1kOMVScH/J9CVAcBMyzhTfbaWrxmhpg5Zz8loItisxR9GA2912LVw/YGbqARUmuCiiFZyWdt3Y4K4SSszS/1IK+UEwizPAkD2+7BZpo3StJ/LVTsu/+4VcLmkEGpmNKx8yQOTCFWjL5kRpD+pE01youT/Iyhl1B9qBLBQ/n71deOiKHfCQP2R50v4YE4Eo9IoQxCoiaA8Z4ywG3LBeCruo4wXfX88PM07SxV4Cz54Ke4KWIKl7k+faVJ4Apjwv8kU88DAmYCvbUZvYw2XRwX5SMXXWy+Ic77mjR5AjtPOyLHyzfJxuiJYaAT6ydyZDHQphOe8KCNLNe69PvF0pClarfwTJNWVqlSWndlMFI15JjAbSphTOMj1ZRYL6Bod5kFl/KdgfxctgjxKLta8sbr6Sw67JogoK+2qxhlcGC8FeLKSOdLlb3t0GEDnAq4utHNZs4672F/kMocOH/11yY/Jlk5JuBmx9bhsIb1U/bymyUyH80LNHkGfmGRUlLnO2EwdbPjxDXCywTD4wwZPn+BTjnl7crA9+dCaLza1qs6nvMJmr8knL+4j1q1GJ1GQ6P/bTHPpbYO9kp7AA/4= X-Microsoft-Exchange-Diagnostics: 1; BN6PR1201MB0225; 31:/svahm3Y6Lq+R3Yun2M+nWKUhh96LjOdK1P5Fydt4Tx4TXZ63q4ZoBqlor54u177APxWTa2isfor3dWPGB/YWVFTQa/lXS0hijK3yBxK4nMcMXaHMR6wcjT006tGebfrATe4/Cfw0hadaKsJbJXsgi3YaF3dT08ltmMtnhol8ktvhSB4jXj3aBeT+fS8luhrHyJLms5tnOdVqbG3BPNSTU/HmSCP2Eu0dFlILVgP1bUHhEqEkA5+id0m3kVWj6aXceB5MuT9Jl9PoiMSZAvQgTZMvk1UAUEYwyU6/yH8NRbv6VAlDch8yiiXhdFy9SszXQ3l3STNeQUtIdFwFGvucPjzNbG5M26k0zZXGIKqjBikTsyPQytWjlnJwaXybIcG66CF+pMpsvDvHL5fa+X4tES1e87y1hu4HHOwUyLfK39HasaPcJNtjyuCxfmz1JVxpVXam/1nHEJn+gcubaZKrd0AN2Za2sTvD7lBOuI62XMEfToHBF+2qXDIZkZnOWuPLyNR3z8sqXVQsbvOpAFpfq2xZHeNDCxLNvVgatbYs3NKk/pj9f/r2nKYDimsFzm8/S5X8R1uUfkfu4KExauN0ht92xey9TxlTIW6bLJ7kdFVpOpOmQbf0XWkXrSWZODrkSdCjPEqtN79zvLvsLGPQZSUrqL5t/697WwQ8Rsu3tA= X-Microsoft-Exchange-Diagnostics: 1; BN6PR1201MB0225; 20:gtuOeT/ytuBSyOr22fKARgBfM0A9jKDuarHkmkfsLexPZ8hu+FY4SVQWb13XDj9wb4Gvs5Fpr6Mkxl86riSn1N0oXEtCg+go/EJ53sHSMA9Vap1bwnJjzvz3CiL6hmUejLnYSFdIQHte0F0btE/QWowj20usURjHoX4W5uTSiq58xETt8UJKZC9TA0dblWAbDAgm07iLSduFQd2MXpWxFZrx56VtVcDUzz6EtaOVJ+uVFB5fHWvTAI+4WCRYoFM634s0YFcnq209yVRXho1SZJSBzrA8kl2rbkRI4s4YTpsmvNofOWAMpcEUF2tP/ze9G2CFJAxgUN8KNnDBmNpenyAxs/uhl7Fshc7OGqbEoKBREWqQKmu4+alIwLqUcxes65IQW3UYf5tRz7SjZ0g4/FvsUmmTgJVZbATU83J5odTZZvhxtxutaXOq3HNyyutWYZR6faE0EQ6RWR03TOHcf5v9FJM0UGQn0LKjyQUpgoScARzEIa8yR/Prf455zOyd 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)(5005006)(8121501046)(2017060910075)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123560025)(20161123558100)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR1201MB0225; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR1201MB0225; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyMDFNQjAyMjU7NDpiM2N0S0pQRnppbFhaQ2MzRzVtNFZSKzA3?= =?utf-8?B?RDltQVE0WktjTm4xdGVCb2N3b3BLazRMWlhXRXhmQVlhazZwQm5oZUh5NzVV?= =?utf-8?B?SERFSnJRM09yeFh4czZaenkxY0VWcFRVV29SeVpFbUNUbDg1M2EvV2xGRjFG?= =?utf-8?B?T1JKZHZTd1RMZ0ZmWGZNVWx2bVZidzFXMmFDMDczbFVuUFRrTG1nb1REYXlm?= =?utf-8?B?REFtMnF3QW5sVE9IRitQbDd1SC92VzM1TE9Td2JJNGtvVlV1S0RMTHg1MlJ5?= =?utf-8?B?MGY5dWRaRUJqY1Z1dU9zdnZGYmROK21YeE1yL2RSYTQ1QVRkMDhXcVVDN3JT?= =?utf-8?B?OFRGeGdUdENFV0I1VWJlT2FJOENaTlZnVzNEZW95bU9SRFRRWHF0RW5rU0Er?= =?utf-8?B?eUlsdStZczVVZzRBT0t0R2xRWXhCYTE1ZU15bVVaWlFaTDVhTWs5NTdOUkY0?= =?utf-8?B?dlFadW9IZENJRDRhKy9CcnEwNzFhRUlNRGRvVW5odGMybWZNR3FNRTdrNHNo?= =?utf-8?B?akN4aUg3K09EZktlNlZwZG5uNnBIOTdVTFc3cGZKNHJsMkdja0ZiZDZYMkFD?= =?utf-8?B?Skp0RlhnYjkwWDFoOUlhV1dmSmVoU2hQMWx3U1YrNUlIYnoyM2U1cnJ0UjVU?= =?utf-8?B?ekhOY1RUOGZvNFMva0FOMFhOc2w4QTNvdWNFTnNha3V6YmU0dWtxdHlLR3p1?= =?utf-8?B?K3FsTEFHcDNCSFc2TnkxTHpXL2lYVldRYUVqazVtSXA4NG5KZHloMWd2Tll0?= =?utf-8?B?TkN2dGpzT0FPZWRCeGtVMWZrVTRURWV4Z0Z4TkJiTFdWZHBxZ04vT29tSkc5?= =?utf-8?B?WmtyRE5IbHRMZk11STA1RnpPM2pVTmNsNDd1MmVvUFVYMDZHTDE1OXpYbVpY?= =?utf-8?B?QUprMklUZktxckFpalN3Nm81NVBTVnFTT3RjMFUzcDl4QnE1cUFRS1U3V2VB?= =?utf-8?B?K2VYcVB4cmhqcGdCK2luWjA3WDhGZzFhN2g5VGI4QXc0U1ZqZWJXR3dIL25r?= =?utf-8?B?YUtVSk5sRW1uWExZc0t4WThLSmxaeGlVWmxYTmNWZ3g2ZnlNb3RMTUEzUkph?= =?utf-8?B?cXM2QnpTQWRlOFdnT1l5Vkt2c0JGOStIbThwdlpqd3oxWFllMkZnWE9teWUz?= =?utf-8?B?MzlxRnFjb1ptTmVjN0dkWEU1dk9EMWJqeTcrdTNVZGdjWlhWeHYwaE9aejF0?= =?utf-8?B?UjZmbU15aFVrRytMQjhUS3luV1laT2l2dkM2ZzZLRmhKZCtsRXUveWladklF?= =?utf-8?B?Unp5R2E1MTd3ajBqbEFvUTFIZE9sWE83K3V1eDY3c05xdmwwZmFuOWY4NkJu?= =?utf-8?B?OE1sMjlDU0wyR3l3Nk1RS3JidmoxNEdvMUhHOTJzd1hzYjNaeGI1VG9ORHhq?= =?utf-8?B?aVBtRHFCakNVSE84Z1FtSzNDZzlEM3VjMmVkNExlV2dVOXNJbFR5VGFpS2ZL?= =?utf-8?B?L3FDVmxoNVhycHJONkd1VlVjcCtOTTQ4UndNdUlic0dza1EzR0dXWi9GY1Nt?= =?utf-8?B?MmE3c2ozZXFjZ1ZJaSt0WFJPZy9SOGVqYWJkQTJ5ZUJzRkZ4bjU5UFFLaU1L?= =?utf-8?B?S1MwMFVoQ1I2NmZDU1UxNVVQZUE5bFc3K1JKT3o3VWJVdVlmbnI2OEhmVXNP?= =?utf-8?B?bmErOEt1cTQzTm03a0w2cVZzSmQxMksxOVpLbmFyV2tYUHhvV3REQzdkek51?= =?utf-8?Q?AUX7dltxHiYPy0DYEkGxAYklpXq59IGydSaYuG0e?= X-Forefront-PRVS: 036614DD9C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(39400400002)(39860400002)(39850400002)(39410400002)(39840400002)(39450400003)(50986999)(50466002)(50226002)(6486002)(8676002)(2906002)(2870700001)(110136004)(38730400002)(81166006)(76176999)(2351001)(66066001)(2361001)(47776003)(7350300001)(23676002)(189998001)(53416004)(42186005)(36756003)(6116002)(5890100001)(3846002)(305945005)(450100002)(4326008)(86362001)(7736002)(25786009)(53936002)(5660300001)(2950100002)(72206003)(6916009)(6666003)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR1201MB0225; H:Harpoon.amd.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyMDFNQjAyMjU7MjM6cHd0Qk13bmc0SERxdllTWU5jeHljMkpp?= =?utf-8?B?djJ5ZTNGUVMvd09YT0tTZCt2ZTc2bThmQUxBRUZJUS9xbUxCdnR1Y0x5M3lZ?= =?utf-8?B?cjh1VnJCODlkTmFKb09salpFLzFRU3IrSlBoN2F6bUpHR2FnazBOMlBwNFQ1?= =?utf-8?B?V215YWRuaEdzQ0grU2RTYjB5eURFSk9ORjRsb09lWDRlRzdScnVpWWprSWJY?= =?utf-8?B?YzhBb0V1cnBwdDFsTVVGTVl0R295OUgwc0UrSldMa1NNb1JyaEhIZEFxTCto?= =?utf-8?B?dTc2NlF5WW5jeUphL3ZIcnVIdDNmVFBlTStlNVllWG94bmc0OVJ4cFUzT0U4?= =?utf-8?B?dTBtSGV4NGdCUGZ6bDZzMkYrbXZQeEQrWUhocnRkdWszckJvNjVzWHVCYWdy?= =?utf-8?B?RUZ3TWpWMHNmK2pEUzZTOGpxVlY5R2RobW5lb0tISUw0QWc3RXlpcE9RRHQ3?= =?utf-8?B?bnRrbEFrdVF1cEN1bC9QNktQSE5haFVUL1laSmRkeERFVCtPeEVQdDRrTUFv?= =?utf-8?B?eFIvYy8xOHcwenJCaHNNL29PSmpvWElhUTBKc2VHeDBENTArQWJJZDZWN3pG?= =?utf-8?B?TGlQdngveVVHaDRhVjErZlRENFkwMU5WbWtrY3M0STc5V1F0NWYxYjVOTjVv?= =?utf-8?B?K3RDRXJ5RFN6dHpvbUxaZFBGQnVqU2pGK2FSV2VodFp5eDUxMDg4WGU5YUpY?= =?utf-8?B?ekEyYi9uS1Y2bzQrbm80ZWNoeHZLazJDQy9EdzlhTlFnYTZxMVBEL1NjZ1F4?= =?utf-8?B?OVlabndnMHdRUmJHTUZpZFlCeFhKWVpYdWtzRkRod2NORDNLTWU5MWNEVkc3?= =?utf-8?B?YTBVM0R6UkMwU3JKN25QSGVXWStWU083ZVU2UHBkRnJya2hBR3hqWktyQTh4?= =?utf-8?B?V05DTUo0YlBET0s1bGlsdDVpRUc2eUV2U1RITVRRcllub2dqU0RFV0Rva2JV?= =?utf-8?B?aHJ6eWJnUklNc1kwMDVYZU1TS2ZzdWE4U2pPWGJOM2ROYTZNdGZjZ3dxVVMx?= =?utf-8?B?VlI1UUNTdmtDTmd0YzBJWCs1d1pLbUFIMlIxWVBkTGNsRXFNZzBSSVdoaXQ0?= =?utf-8?B?SDMzS1pkMkFnNTBQUHN1VHQ0UkkxdUgxTTg5ZXBXRkZlbmJpbzRXaE1zMWJF?= =?utf-8?B?cFVoNiszZEV1d2VuZ0I2alZrVWtrdkE3MnJNZzlSM0phTGJBR1FTTzZuSUJ5?= =?utf-8?B?V1RCVGdDeTRXTDZGQ2o5d042Ylo1Qnc0Z1BCOE4yUHdtdDlIbFNZVjVlSURz?= =?utf-8?B?bzJucDlBcTBZNy9tT1ZzWWo0ZUdvVjg0L04vdUpYaThoQURmTnI1QkR3R1da?= =?utf-8?B?WC9YemNmbUxoeG91UVFxWUVlOGdDaXAwUUlzYmxLN0JjSGpWaTJEMGNqamN5?= =?utf-8?B?RTRTRHAzdW1kQlNzbFB6dXR5TE4rWStFN1pybzRKMU1Mc0RTYlZocUZENXVI?= =?utf-8?B?S0RlNEl1NEZ1RWlXbmV3Q0drUDVtVEszQ01qSWxOYk56S3g4bjRGSHI1ekxu?= =?utf-8?B?NEowL0Rld1NRVnF1MHBCOFJQUytnMDJkcktFeml4Z2Z0S3ppTDBEVlFDMm5n?= =?utf-8?B?MHN0RlFldENwaWdkVmZzOVhHZ3NDN2Z3QT09?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyMDFNQjAyMjU7Njo0Yks1MHJQOVR6NzlleGEwamFjWlA3VmJs?= =?utf-8?B?VitIbFMzZmR0V2lSa3JaYTExT20rQ3dLZW5jZkJLZ21kV1VCVlRXeENvdlV4?= =?utf-8?B?dzM3QnIvblA2WGRZamJPTmlwSG54QjFQcGtiQjVoWGJLMWFRNUJqcDRaWmZ3?= =?utf-8?B?cTNibUZwaEdsQ3l3ZGlnN0dvcmFzWVpEOCtmSytOYmpzRWNQY0NDYW1OQlNN?= =?utf-8?B?OUh6bGx3ZWwxRWZNRDcyUlpaZVYwSjl4MFZPVVBGZ2NYd0VLeG5PalNGbzN1?= =?utf-8?B?THNkUVpZOWlXbTNTK2FKT0JaSlhocy9oUGJzWW1WVFNSWlN4MlczNHZKZTFx?= =?utf-8?B?YVdUNmhVbkdNMXA3QWdlbVhKSENlcExjaWlqK1FNbTFETnpuVkwrSDV1K3lS?= =?utf-8?B?V0VwQkhHcjU5Yk5QYmk1MUtVdFpCNElxTlJTQTZIQUxqSmxiV0RZRmU0aXZE?= =?utf-8?B?UHlwemZ0TnVTd3hFWDJOVS81SGtpTFlKZW5pN3hwTWlDd3I2RVdNaDFXMkJX?= =?utf-8?B?R2V2ci9Gd3NtUDhrNnh6cFBiQ3BzcHovNVZvU3FSYjF3V2xtVi9wL2YxaGtO?= =?utf-8?B?Q09LS0pmQ1g5Sm16RDhqcUlrd1prdnQ1eXcya3EwcHVtWVIydDBQSTdHR3d2?= =?utf-8?B?UndGMllVUDhscUF2cE9CaTdxOHoxcE1qK3NMSkN1bXh1Ri83Tkx5TFAzL0JQ?= =?utf-8?B?blRsUW1CSzRtU3RjTEdaTVpGVysvaDF3RGh3YmtNTTJJTWQremJOZENPSUN0?= =?utf-8?B?RFhFNi8rS3ZiOHZ4dWszbGNlOXNpRDB6OWNCQ3doQXZQMTNBQWVSMmN1amdG?= =?utf-8?B?b2QwV1ZiVGxhYmtTSzBJZlJQK2VRNFgwZ1VYcURUdW1iTHk2VDF5bzFkdHAz?= =?utf-8?B?dHpPTFgvcXFxM1oyWnZxVHpLQ0lYRkY0ZmVJd2F4OW9odFoyWWJCaEk1YmFO?= =?utf-8?B?d1o1aEV0bTRXeVBhNUgvelV4a1lianNKOVdRRkxTUHBHNTArYzNnYlZqa0Rv?= =?utf-8?B?dnhkem9XZGJLSkNXT2wyOEpGWHY4VEF4RFZXekZibUIxK3pnY2xEZGNiLzdF?= =?utf-8?B?S25JYW9MR3Z5SkVnUE52UXNlampxSEk0bi91WDVMNWFZb1l4WG81ak5LbkJp?= =?utf-8?B?clZyNDEwMjZWTFcxSUlsNkJ2MUdqdGQrdHBVZHBUYzFEZE9UQjd3Qk0zY1h0?= =?utf-8?B?Zi8vYnFXYXpXVlJRWGNUUU5INk9DcXpvVlprWDhMditZb2kwMTBzNi9jZTNR?= =?utf-8?B?TUhXRmkrSW82Q1R6M3RGYVBZM0xiL01UcmpyU3I1bTVQSXhaVnExYUtrVndQ?= =?utf-8?B?QW9uaVZUSFpyZUpwdHNkQTZoQmd0RjQzSm9JdThJSlMwRVNvSytsUE01OEVw?= =?utf-8?Q?vpkvKnrAT?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR1201MB0225; 5:mmTffADg7RDdDFO928T3YYix13YwNQXgv2kUj4+e1+qr0ZT/kX15cbCzY2gWvuNKXtAqHo4uiXaurmrI23DcyZIdRuiBUIuWzGAeyPQCbtQXj+KiTrL7EoFAFB9c79Jv5/ItwHLRFsRckraSbKF8aruMMA6XDK/BYK6XNH0cajEYhLU+FUd+50glQ2kO3sTr7d2BkcfcjN+J+n1bT+eiNzLlM+ZW8HufN9pbqGmTmOZ4uCjR+Xl8xWnEPDzNomD+tkoZMTHje4zGqtx35eTsxlnj8w/aGLJAmMnWUMFN3g0WhWuUMPesu/MHk2D7ILMLZvtsFieTZn3uFXKFrwpo3LOZiy1o8p1V30s/zWrnFmj9anySdKLNL/LD/eIp65ysAPBxlJ3KnYRfPW7xtq8eE7s40F+tRSjGxXbWhPx4s4jq0UI+69RQrqVhFpYVWVfvoR1vjsfGF18uyfAYCDUiiAC91/2Da5qNy7EIqJ/h2V44oKvs4yt6/nBs59ssZ9rZ; 24:j5ARhKr4rZe0lfo87z4FGp3P45SlY18WoyqwHTKadPPRKfj5goloIREeS0NEKNi9IQYP1g1VPxlp5gxe40mN3aiMRCuJR4QfEEuchYPlDWE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR1201MB0225; 7:ghhnzK4rlRJq/U6j8zFGAf7O/oTcUK8jSA5qBPobbD5CHJlX5uZOCbPQMTFCGsuKMg5L2fIC+djeB7znooXQ/wLXGQ2PXJxGvGKBaPkQuFJGbdq39K2+BQqP2HYGCXhT0tyqi+G2RWcVWOBl8/dmCzfoNS4NzNbIkAJXP2NtFvQd09W4RsD+03YuqSB+P3wrFQZDwjUdBZdVO8Mezuo4MvY227/T2zvH/0YYY4iZZ+K+ecpj5rhmGpKkRzevScFUzTBRgfgiZbPPaS0fzk2sZsTgbLmzF3DChIgue2QM5bqPi5fk6AIuyesh2Z1BnYpUB5OynqDCHXfNSJyE3/VMlD2vSJNq8Nu76qWEZGSwyJqC+yGVT2Y0S/l5AqO2wHGqVlZ3nYq3NmNGmzI3nMaX7j6vyHqtuB9A9sA/a5QyupOB8AH4UC50Aa+3IqBC3M+sSi9wEk+S0Lb8uR99MCyjU2wD10wguXNnUDNJ1nePnQSuNkclN0PDnoF17QaOJkIY1AHwq+3iqSd0/AdIW42Z6Rb83nS6a2BQkjHwlsuZsm3BKzm1xEKgte9nqvA/UYRNwj1eVyYGzqhq+R4t6hUfVdXE9qVxtrbdG5VIBOALWk4+a/8Dxd2QgVgBsgOqnAz6kXcowgM+T/TYBD4JqI+FRkjs9FLsmjUieWIyxQP0DoJ5a6cFBX6gjucaU7pxsDk5sZzoFtMBDe4Fbd/BWDJn0BspKgpLWtk7IkbfVOaGubO9qEu1kU9UAbdBNxksLl4FYpfb2e7+uMx3vPphb6cgN0zBBmaNRvJ14BYI+PiraIQ= X-Microsoft-Exchange-Diagnostics: 1; BN6PR1201MB0225; 20:+rtWj8PogL1tNAqpMeQEwcQ04uTyCnzwkoLzeisySUhjqGWt2gqNSes0QU9/C5+G91DeBgnhQD2+YaDyYms/3JyUSbu5m5CV3nqHcNRuVg58dy9JzDhEsdlFVYbdldlLj9qshN78Lc/wznJxWatOTDYyzvTPGY2FlILBIFRYKBhJPdHRdSKbUggLGhRGJPGvIH8fzMID3EVsxW/AvZ904b3DXi4WO+sbx8yOrHdbP1zfDAQS+IPU9O2oeH0T0b0j X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jul 2017 05:30:14.1250 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1201MB0225 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 6e24339..776de77 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -95,7 +95,6 @@ static void amdgpu_ttm_bo_destroy(struct ttm_buffer_object *tbo) 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); @@ -344,13 +343,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 7cda5dd..1d18570 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,