From patchwork Fri Mar 21 08:00:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Huang, Honglei1" X-Patchwork-Id: 14024955 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B3500C35FF3 for ; Fri, 21 Mar 2025 08:01:30 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2689310E6FA; Fri, 21 Mar 2025 08:01:30 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="3+zhvy/V"; dkim-atps=neutral Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2062.outbound.protection.outlook.com [40.107.94.62]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4F0CF10E6FA for ; Fri, 21 Mar 2025 08:01:26 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EdxaQH7UatbImrZKA4uDJK97/hxHxI1E7sjTyUlnzCCpInn193cBN4na0SMv05G3lSgzwXzdNIJ6kHRkQFYha2zHvVBK4mN8QjnSgeBPW8uz8gOjopCHrJRypwic8lP8ILSLvLQQbv7Tf1D8iQYUkZx/7bC0allCXeG9U2NWPIqSCEbIQJ4rA6a+shyDceoT18FHSj7kcvfSFrIOFimm0piV6KEU028qefZ7QyKZweIzKFcKVLAFH6vGPrgRrYR6loRYtiYFcdouFUtxrShWE5xTPfcVT08Jsj9Sz1mavGm1ow15INZDB4DNK3s+oGGZFZjT0XcZ+Zn9rcvAx+2cfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=n49a1sg6WxPz61LI+gIlE0wSqV6yReAXhsWydBLFgyk=; b=n4U+lXlmCQ9W5982iCEx3OD98BXpFOndcskqhfUPQnZsGPRMX0ZtnJVgKrIXagDHbbvunhSFuaKJid7RNKs/5bcZ4GhcPFok+KH2+qd3zs9sJh386Gf0oESubrZKN6g7tOm1m7mZkb8DSytjm8kVIN1R7zw1FAagZqaWolkqbvWv6Ho72hnefRYnngfqq/SDxorqPZn0wcPhfTsGE7XYFuMD6K7Y3CR9Fd1N+Yz0j6JrSxAN86pL6EFP24AYMlKS0wWF+FUmLeThLia3Jra+mv4gP4/C20omGyTSXN52b93FWqU6Nh/zoP4SRu+bqFJXSKeAfkJpzhS1Xdgtdwe2og== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=redhat.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=n49a1sg6WxPz61LI+gIlE0wSqV6yReAXhsWydBLFgyk=; b=3+zhvy/VXkLM16hLv/hLUqWiq468i0HgoO/iYPeS7cF1Azjke8ZFBwkz723CmbIqLTYCG2R7jX6PXm48JUrtyR5KYlKiRmzOsBqbKgDoIBL2DhWXkYWy3WSe+WREdazRiLdwqyP5YnNNgsLsyqRkHImosrcRBxNHz2SM147DrXc= Received: from CH2PR03CA0024.namprd03.prod.outlook.com (2603:10b6:610:59::34) by DS7PR12MB8275.namprd12.prod.outlook.com (2603:10b6:8:ec::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.34; Fri, 21 Mar 2025 08:01:22 +0000 Received: from DS3PEPF000099DC.namprd04.prod.outlook.com (2603:10b6:610:59:cafe::9a) by CH2PR03CA0024.outlook.office365.com (2603:10b6:610:59::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.36 via Frontend Transport; Fri, 21 Mar 2025 08:01:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DS3PEPF000099DC.mail.protection.outlook.com (10.167.17.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Fri, 21 Mar 2025 08:01:22 +0000 Received: from jenkins-honglei.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 21 Mar 2025 03:01:17 -0500 From: Honglei Huang To: David Airlie , Gerd Hoffmann , Gurchetan Singh , Chia-I Wu , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Simona Vetter , Rob Clark , Huang Rui CC: , , , Demi Marie Obenour , Dmitry Osipenko , Honglei Huang Subject: [PATCH v2 6/7] drm/virtio: advertise base userptr feature to userspace Date: Fri, 21 Mar 2025 16:00:28 +0800 Message-ID: <20250321080029.1715078-7-honglei1.huang@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250321080029.1715078-1-honglei1.huang@amd.com> References: <20250321080029.1715078-1-honglei1.huang@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF000099DC:EE_|DS7PR12MB8275:EE_ X-MS-Office365-Filtering-Correlation-Id: 7456493b-904c-421d-b9b4-08dd684e91fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|82310400026|1800799024|376014|36860700013|921020; X-Microsoft-Antispam-Message-Info: dx3Uz+yHkBMQiNQTX55cL8y6kkkA/AWH8JaMFISourlOrMu2L+KTFCSKbPbQ0YQb2Sr/2Kc4Dtu+kn+Bebv3dLYcOa++66vjhBiidFB7bLYaCRlDkhtDw+C636tsCiUJh5Lb3XJH4Q9xsmgG+yLE8gJ6ehpZ9YlGiH+e/0eBLBeV8blhvggoZsD2y/IC9DoB75XQ/jHPPKHJLTOrJl3Qn3dqVQk0vnd45TqcX7qvVKXVutetuVP3BSK8m37WhnHy0f+Fvbe7yP4RiSvG3P5o6l96vgNtj7Y/f/HxFydbQuDIOdzP+NIEyrhukG32vowPswqxrGgkbITHqNbCNFh5YDFVJaJ0D826WexLpLKx2i1z8TKQ2YHy6N9Kjm4DGVYN2bXkxLZCGG7nxPVmTqSUp7MH1OI48xn9yS8wBhm68UpotvHkdqansxhPJKS6xupNUnpFg9SQofTj4ihoKsNrSTzhyb1Xo+E/fc5sfhoIZL1XDB3H5t7sw20FEzemuTv322uKuQSDQ9huIxo1Pk7ccPr+WMo52rcWL0Ggxet+zm8Fgk110hKu7ruOxM8x+uBWXg2QkY0CE6iVluM5FbuLP4cjQ/LJiTENjs04qeZHbjCQ9JEy6H0IfBxSGGA4mqY7perVXLNAMI+mbZVFUK0bedO9mhn5AbQnMdmfXKXWilotaDk1TSdmMJhl4D4Rd+y+UzNP/XesjCjet1r1KX+fifqnJzhwbecMbDcTP+yH6ZZqLr2T3WCOfeC+OfMih1ormW0foq34uXD0+6AMRPSAk1pwxnrDGhzdw90x18oP3M0IJ4FvGeGByzWtM1zHBXfNtOJGIDh48kHsZQu8J7WH339uY0YLtT2iLSCUbbBJNblZdf93dqEOVFMQZTe5eybVthiwsbZxg2ah+yxJb2DjkpmN4G2KYUn1Ni0h2/N2Cd9qSO54xRIgKlhOGKM/Q6HoPC9mbj+L/rrfvUr9bRoyR92YHsv1xhfSIE+jcHFxraxiR/eESxucNjhgRGO2zzT9aqHPnS9z5E27lXaNIsi6MlSqXYchKAtmBttK5/DRDqqirWqF6ykZbphqfLecKNYNXyY0yBXXVI35HnLKlOHnABfMC2H4Ib/GG4ZG/7VGPN+wE2gIMG5UP50gi0iED5KCF++6tpgkl4YtKlA0Oamxh3F3auP+lZFZI9p6vCGzSXjA5TB/BUaOq3LTEsHhAoKTBxrDxbPoUExEIHbBtPrYzK/WGG1ZXuCQ++McSUpoJH4ei8xJNDqOCMuizJeuHWKpt9+1DLAnMgzs9JZ79/MBjmr4NroxOsXj9w5oOFlTHhZCPzY03MJWb78WT5Quc69nV4jCkpIxI9cGk7RFw4jbEGouNTJCInHUpWnegvPY1by6VoIreH3jIj/71Wt5tOPLSVh4CDqPWvmyixDJSWDeQxTIQ681F/RgJmiOY6yLn8Yp/Hix/ktSOsYJycHW4xJfB7QYDM79W9EtRMKOiJq8wpe5/Xw2Geh18ddGjcpgQcrfzZO5qCsrngTwVQdp4M6/ X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(7416014)(82310400026)(1800799024)(376014)(36860700013)(921020); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2025 08:01:22.1825 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7456493b-904c-421d-b9b4-08dd684e91fe 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF000099DC.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8275 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 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" From: Honglei Huang Introduce the basic userptr feature to userspace. Signed-off-by: Honglei Huang --- drivers/gpu/drm/virtio/virtgpu_ioctl.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_ioctl.c b/drivers/gpu/drm/virtio/virtgpu_ioctl.c index e4f76f315550..8a89774d0737 100644 --- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c +++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c @@ -36,7 +36,9 @@ #define VIRTGPU_BLOB_FLAG_USE_MASK (VIRTGPU_BLOB_FLAG_USE_MAPPABLE | \ VIRTGPU_BLOB_FLAG_USE_SHAREABLE | \ - VIRTGPU_BLOB_FLAG_USE_CROSS_DEVICE) + VIRTGPU_BLOB_FLAG_USE_CROSS_DEVICE | \ + VIRTGPU_BLOB_FLAG_USE_USERPTR | \ + VIRTGPU_BLOB_FLAG_USERPTR_RDONLY) /* Must be called with &virtio_gpu_fpriv.struct_mutex held. */ static void virtio_gpu_create_context_locked(struct virtio_gpu_device *vgdev, @@ -444,6 +446,8 @@ static int verify_blob(struct virtio_gpu_device *vgdev, { if (!vgdev->has_resource_blob) return -EINVAL; + if (!vgdev->has_resource_userptr && rc_blob->userptr) + return -EINVAL; if (rc_blob->blob_flags & ~VIRTGPU_BLOB_FLAG_USE_MASK) return -EINVAL; @@ -489,6 +493,7 @@ static int verify_blob(struct virtio_gpu_device *vgdev, params->size = rc_blob->size; params->blob = true; params->blob_flags = rc_blob->blob_flags; + params->userptr = rc_blob->userptr; return 0; } @@ -527,8 +532,10 @@ static int virtio_gpu_resource_create_blob_ioctl(struct drm_device *dev, vfpriv->ctx_id, NULL, NULL); } - if (guest_blob) + if (guest_blob && !params.userptr) ret = virtio_gpu_object_create(vgdev, ¶ms, &bo, NULL); + else if (guest_blob && params.userptr) + ret = virtio_gpu_userptr_create(vgdev, file, ¶ms, &bo); else if (!guest_blob && host3d_blob) ret = virtio_gpu_vram_create(vgdev, ¶ms, &bo); else