From patchwork Thu Jan 4 22:17:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Kuehling X-Patchwork-Id: 855841 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pci-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="5YSsW71C"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zCMcp2N2xz9s8J for ; Fri, 5 Jan 2018 09:18:02 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752552AbeADWR7 (ORCPT ); Thu, 4 Jan 2018 17:17:59 -0500 Received: from mail-by2nam03on0078.outbound.protection.outlook.com ([104.47.42.78]:32395 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753262AbeADWR6 (ORCPT ); Thu, 4 Jan 2018 17:17:58 -0500 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=gb6xJj6RfommYsgxQNPRWldTW+YEJx0l7iQb+7a3Ivg=; b=5YSsW71CYmtTC+nScdfegAEm3jG98NuSXSM6oosynucDlF/am8Dfa7j7T9xI1madTETzZARNzy7JPWZ4cLHMbWWyES+ktowTh+EKD6c20h5j/0wGuTScTkOCNkCOeir085c5KzOvcPXJrfjVteOSK0KnGlv+eNNzUs/sYGjr1Kk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Kuehling@amd.com; Received: from Harpoon.amd.com (165.204.55.251) by CY4PR1201MB0230.namprd12.prod.outlook.com (10.172.79.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Thu, 4 Jan 2018 22:17:55 +0000 From: Felix Kuehling To: amd-gfx@lists.freedesktop.org, oded.gabbay@gmail.com Cc: Felix Kuehling , linux-pci@vger.kernel.org Subject: [PATCH 2/9] drm/amdkfd: Conditionally enable PCIe atomics Date: Thu, 4 Jan 2018 17:17:41 -0500 Message-Id: <1515104268-25087-3-git-send-email-Felix.Kuehling@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1515104268-25087-1-git-send-email-Felix.Kuehling@amd.com> References: <1515104268-25087-1-git-send-email-Felix.Kuehling@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.55.251] X-ClientProxiedBy: DM5PR06CA0094.namprd06.prod.outlook.com (10.174.189.35) To CY4PR1201MB0230.namprd12.prod.outlook.com (10.172.79.7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e1abc320-8f65-42cc-cb6e-08d553c1017b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060); SRVR:CY4PR1201MB0230; X-Microsoft-Exchange-Diagnostics: 1; CY4PR1201MB0230; 3:MSPG9sBWrVNHuFfB/J+pEfreBBgadL7g6rckwV4JIh+BDImUfJod+hZ2j5c5oSkU+XFaYJ3IGOsLBc/FU+ECpz0L4xJkTilLpb10soSVjeYYO8HAk0D841yHortZnL4aQtGyio+GgPTh1VBUawZZl68OskX0j2wdeOeBOtvBFu2WcvuUbpM4mGOtxhEuEkIekjFAcbH7ow3xb9hhqsSuCPegWfadLDeGcv2CAODW+x17wtJEiWkka+L8o1hwskZO; 25:3BYpMRbG5e1F4f8Ajd0EH7WsqhPaXTzQijqY3oOAhTlg6yGf6Z2cys+rQjl1gQazO6BFffWgunRe6uKBfenh/ZZD/pOAq6V9WqmMc2NXLBFXAH0zOkVi8x41zlgqfomTpwRle6bWqYL8mzKMLJR0iMkTd4kWkJjGBFOk0WfVxOQsh7yxmeajCpsh2AL7h2rBk5K3JSrMdCQdK6+Y74td+GOSWX5ehdTiW+P+M2oqonq/QIbnQXg8r93HMcvx8OY6CnodEECFR6mwo0S6FJA7qBQA2PqWevwYxl4fidTztJfCBCcLOE/HU3oZW/5lamxhWPUlPSKpTctCW4941NSCsQ==; 31:MTrE4zdg4l7BhqDaVBTfcu/YSVR6MDprgJ4w1I4fdgYt6V60/DiU+1UF6ElWUlZwyPIhZtMK0tvxa1hN94u8n9YpuYRS/Be+4ob/q9cvecD1gLEANduQ3Xpj1IBaH5SOGDgj5dIOGwk9Ro0PFt+pOHAYFe84dSCe9kiGRFOHiUy43HiorkBaiGcbGEqhcDhEUNxE0afGF9y0dOHumhq/dQRqOuP3LNMpDebbuO0d7EY= X-MS-TrafficTypeDiagnostic: CY4PR1201MB0230: X-Microsoft-Exchange-Diagnostics: 1; CY4PR1201MB0230; 20:Kysb4og5s9NOkhMf8C223l7h1O320tyrLCDkHFZASlw/EqTihNxF5M70wYllCzT4F2CiJFIyy6/deXXtHT6Za+o4aq8k2MTYJIv/CtTpVz6bP6rsb9zWEWGPjK7R1jjFJheBm5sZzk4Y5AoXTFvoDuAvHgdwSXs5hKoHKo0A2ZJrs+rDL0LIgrb8iK84fEFszOt/Jw1WEpWUZ0LLeU2dvOVW5xDraYSHKiEz9zlKYcKbl9xzRUsLyYAsjR2XTcENRA+2WO7GW6Z7UanfjzZG+jH9mk0xVQ7fmFvw6j/Jh0P7DdNMD2d9wPBcyNIn10jbGYb4ipLxHDUrlsOhcPQ4FnUIO6WX7VLZNwRNBTFw7svqo8CHeE44k/JPXicM/odn4j39wEH8vp4Sk4m2VLuswtlVPTgkOlSwcPPBQRHrTDxYNSmhLVmFKsPUgbzt6bjmUakTfdQkbykkgMPqhmXVXIXRWoSIIz2Sllo+ehO5e0zPxu+hk/wEEVSODlmusUfV; 4:iMhZGdqmAAkotdS0XLt4xY5R2C2tc8p7zcFoGnL2Rha0WdJZ9PWSqWBVQXFHjih3SrUPtQhZQ712WI939lacNe1xFkZIUmRM0QD1nrl3jA6ZVJPP+Oh2BUQThqhv3QklaHgAETihiykg+vrMAbTcWx6H+/6P3UPO4h3im1vFDD+x2oTZl2H/q2VP5laAtnOz85q20bnK5bSjI+d+B6qHnRxzKXZE7dv4F9qWuN4KgJIWo45pjqPn476OxkRSZ3E4idGro/YaCrkOysrgZhk9OQGiPqtRL0ksLznucRu/HwZBxNoBGXpsa3i39gla7wHKrThDVHFlNEjEoWEqeMz3Kw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(3231023)(944501075)(10201501046)(6055026)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:CY4PR1201MB0230; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:CY4PR1201MB0230; X-Forefront-PRVS: 054231DC40 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(346002)(39860400002)(39380400002)(366004)(396003)(189003)(199004)(66066001)(36756003)(47776003)(68736007)(478600001)(6116002)(8936002)(3846002)(81166006)(4326008)(53416004)(50226002)(72206003)(39060400002)(25786009)(386003)(16526018)(5660300001)(316002)(8676002)(81156014)(305945005)(7736002)(7696005)(52116002)(6666003)(76176011)(51416003)(2906002)(97736004)(2950100002)(106356001)(105586002)(86362001)(16586007)(6486002)(48376002)(53936002)(50466002)(357404004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1201MB0230; H:Harpoon.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:3; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; CY4PR1201MB0230; 23:6a31J/gPWRhelFq3D97jJOUF7d/cNghc7xNR6DJ3WoQjC2vUR8sntROM2UT1kQBXSfnyjQ79KjpuJlnBXHduRMefJ2hjbisp5B1EuX5EojSDXU2aztAh+gNgAHw5AQES4fw5yJM8618DwQ+ZmF5jj9Yg63tMfI5afWZlt1MufXojSjswaew3qOXx0BstTtgimqPUeCS+s7CrFMOBLTpJs1AY/pGl1+plDSRLcK9BV60AlBZF5UUlaF/CxNtaGmU5GM/TkgAkdwcN5gFFPkmDa8397Ef8mRTTsi8zXezZeUU9NoRehnutIHyQFLracMs6soaycEKC7bO7L5r1tg0bPbPZiD/SZIBF70JBBOF3sfvzkabBrenN1B6dw6AFdzE7gghV5qGW2dEcGybLO57OymcesOB3hP/JpNPjw6ZnkZUPosLEMQrg3c0Osyf7LZY0YDItP0FSIqF9E+VMScPXpa4SCSoDrfzmfWWdJxlyjNBW/nnmC1075Dej6DyOyQrkBfxzZ4Dxjc7GVxdDiebtFUe9QTO4AZgQ8FNuer1C9ikKuJEdHre70cK5p0a+oT7w+92K7+EmZfGVUaYyqRjncmzomUej3QWIIDXkZLX3S95br6BMIM3R8HSAsZeEBn0xJPj7PUeLj45v0SWrFlpar4cMj/AMoTiPXPL3lcE2YcS3XblgCxno/LDEypZjr2W8/Clf4966Tdkj0AoHXI19bWkni9mAJ+mFFcwRXTk7iPSxGJhjtW07JRybXiNzGgXoGOJy5dhzCsSJvV+5wvwl3Xbe3iTnFPFHhxjOdpFFwXbshnz1MR1CYPw6nY+ZJ3ab+UAkhKn71lzqwIHa8u3CMKJ3BNdi+7mxZIpPWiaKcll4r1aq6JPtKhwP+DisG6CWqFV1N7BGKj1eOz0jQeXonqWH2SkZNiHlILe3XLkmAofQ1hsBtYBfv6fa2UtuXZHyATefGu2K/YDl/yWIVPjfRCgRecEOhO4Uh1rvhXreESSi18aLuWfZ4rkL2LKXZjMF2gHjkEkwINwJDoOkdVcZ2VX5gDQ7BeZHIFvZWwLDNBREmMdkjaHiJGSzszMY8dOZzeo0pwnKy9WWD3fRF4llLgOOvdszI3V4OFOig1ryLLE= X-Microsoft-Exchange-Diagnostics: 1; CY4PR1201MB0230; 6:Ge0cJmheijxD3QN0fuC2zKgvgN9GObuvbBxEEpi4brPfPnkxPos7BqH17y2xSUaxv4/HwUIpGZTvJ4ARvdkC5Fy4bbQ7uA01WURuHs0vgMseYuhH+tJ5RrvwXW8hVxkleezzMW/nBOfPv0PqovDct5wghVfrTTd3L78YRqXKxTwVId2m/Xxc2YmFT5goDpFuxtu6Zf+OGZv9dNdkt5ONYwrWFz6eUbfjEc4N/VZwRrEcnL/awzbDSiyBer0tDJfOabWDqA1LBxDJPjbe9JsaVVViRKilJouk8QHymCfYmlmj39bGuLQ3Bh8+jkNJI+S2AbsFM+rz19O1xvliJcjU9xkXMq/n6gOlT7hGodGp614=; 5:RMhMF9A37lp6LphyHMXnqxht/m4T0Ea6LuwDNJB+8VltFuAwLANYCYftAsa9nZU5mufPPQfBzAWNnGMVtesMemgzV5ohKHPvKJVoAjglvH9Czvr/ZijBV2x9h+9BmkvCR/Q+gz15LNAK5wWXNDwn1u/ag52wYWQvnZQDuf2AaDw=; 24:ml6n9QEvVWIXgtBDzpTKuTecBpMuXHjqoOBHwbaDpvmGn9NrFKN5nwXODXxMGs6ZfdBHbZnt65+H0cTfhv+6Fu8dvBKMc5yTOehfUmicFJU=; 7:e1aFLdvzbTT1+WBAodO07rRSltY7Jnlw0vBwSZu6VGIVeccD8LXhYYtnchoDzlaVmOYDf2tqz525HBcMdm66TOzVTkgf7VhtDx0BGwrnBFNz7QrbFVy3AGIqrx90wMXHpxoe2ppfRClfEVMajK+tc5senvc6us/7wiAAR8sLtwWzGQNyYBbN3GwwwDSdidVyUQCYnURQD6yYTtTLAmH5jWqRiebs4CHyzwfH3D8Q4F/V7fn+uC8J/QELJDrcFdIv SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR1201MB0230; 20:yPEvs68S/BLa5vwTCa6BS4s/9QJCiKBTV+s8Cqo9sexK769SXZ2MSdYYT/LKRw0GMhYNKpS8ppXTUHCsMUffuN5TOOKBDPFD01ciPRCBtCfE3a3RPVpxl9+/vvId1bXAils79fD36JPE5AFlVzFMlyWgSfF3qKWvOom+Mg9IoRHdUyvZtBPmktU5fZUprhojq2swj7BQc6vTJgo7z4eHHxSf2Lj+F3KNOQafv8Y6dnuWgnTWzI0S7Qx2Qxa4vUyA X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2018 22:17:55.5226 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e1abc320-8f65-42cc-cb6e-08d553c1017b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1201MB0230 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org This will be needed for most dGPUs. CC: linux-pci@vger.kernel.org Signed-off-by: Felix Kuehling Reviewed-by: Oded Gabbay --- drivers/gpu/drm/amd/amdkfd/kfd_device.c | 17 +++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 1 + 2 files changed, 18 insertions(+) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c index a8fa33a..fafe971 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c @@ -41,6 +41,7 @@ static const struct kfd_device_info kaveri_device_info = { .num_of_watch_points = 4, .mqd_size_aligned = MQD_SIZE_ALIGNED, .supports_cwsr = false, + .needs_pci_atomics = false, }; static const struct kfd_device_info carrizo_device_info = { @@ -53,6 +54,7 @@ static const struct kfd_device_info carrizo_device_info = { .num_of_watch_points = 4, .mqd_size_aligned = MQD_SIZE_ALIGNED, .supports_cwsr = true, + .needs_pci_atomics = false, }; struct kfd_deviceid { @@ -127,6 +129,21 @@ struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, return NULL; } + if (device_info->needs_pci_atomics) { + /* Allow BIF to recode atomics to PCIe 3.0 + * AtomicOps. 32 and 64-bit requests are possible and + * must be supported. + */ + if (pci_enable_atomic_ops_to_root(pdev, + PCI_EXP_DEVCAP2_ATOMIC_COMP32 | + PCI_EXP_DEVCAP2_ATOMIC_COMP64) < 0) { + dev_info(kfd_device, + "skipped device %x:%x, PCI rejects atomics", + pdev->vendor, pdev->device); + return NULL; + } + } + kfd = kzalloc(sizeof(*kfd), GFP_KERNEL); if (!kfd) return NULL; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h index 6a48d29..eebfb1e 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h @@ -158,6 +158,7 @@ struct kfd_device_info { uint8_t num_of_watch_points; uint16_t mqd_size_aligned; bool supports_cwsr; + bool needs_pci_atomics; }; struct kfd_mem_obj {