From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.5 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7522BC43381 for ; Thu, 28 Feb 2019 00:38:34 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3A625214D8 for ; Thu, 28 Feb 2019 00:38:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="oIYH4cFQ"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="y3cVawvT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3A625214D8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=7UMAP4DPq8sQWXYMKR7l00SqyDF38FEbkGYW0o2MGLE=; b=oIYH4cFQn4XuaA IDV92IxYrs3MISEMRcMxYZK1UZKoA7tND5yvdZQS8fKujBfykC/xnKFxdHEAc6Q3AFVSkRf9oJJpw SISPz/j/rFaYhgiUOqz7naVeGDV2yoWXkcCgNCqTjp4tmtjuhXDD4UeZ7+I8xGMmwbUqOMWAigisc ei0l0oIr046b9ceqpV+HEYuKT86f5vlMuNDLMbFTg+AY5NCtNwKy+tkq1t3nmVi8LXIVMfklEa0Tu R3I9jrzS0wiiMiPcyqi5rRK+blrQhL6VfviPYPG+TVAhjlfG8NPwxR901kzPmVMcrrJoVWlfynrTu JS+mKJ4qAJo+FnDzFX3w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gz9iZ-00075E-Lx; Thu, 28 Feb 2019 00:38:31 +0000 Received: from mail-by2nam05on062e.outbound.protection.outlook.com ([2a01:111:f400:fe52::62e] helo=NAM05-BY2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gz9iV-00074o-8t for linux-arm-kernel@lists.infradead.org; Thu, 28 Feb 2019 00:38:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bz/CJFWuOI734RlkTCuFV8QlB4FCU0cEhBdV79orLCM=; b=y3cVawvTB9WBPTyqyh8IDx7NbxaiYc3m1WM2MCpH9MwL74KOT9dSYiT5AaEvMWQm1LcmC2qUunQJXhMELyd6g8rtrv3yNPIb1TFvbUSZJu7UCuHjb60QXDcNqg7eciaeN6FzSkL8jYK++fGJcys4ZtE6HVBOpSUc0ekzNcRoatE= Received: from SN4PR0201CA0046.namprd02.prod.outlook.com (2603:10b6:803:2e::32) by BN6PR02MB2258.namprd02.prod.outlook.com (2603:10b6:404:32::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.16; Thu, 28 Feb 2019 00:38:19 +0000 Received: from SN1NAM02FT047.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::202) by SN4PR0201CA0046.outlook.office365.com (2603:10b6:803:2e::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1643.16 via Frontend Transport; Thu, 28 Feb 2019 00:38:19 +0000 Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by SN1NAM02FT047.mail.protection.outlook.com (10.152.72.201) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1643.11 via Frontend Transport; Thu, 28 Feb 2019 00:38:18 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1gz9iM-0002zU-7V; Wed, 27 Feb 2019 16:38:18 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1gz9iH-0005dY-3H; Wed, 27 Feb 2019 16:38:13 -0800 Received: from xsj-pvapsmtp01 (mail.xilinx.com [149.199.38.66] (may be forged)) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id x1S0c6JL017519; Wed, 27 Feb 2019 16:38:07 -0800 Received: from [172.19.2.244] (helo=localhost) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1gz9iA-0005d0-PD; Wed, 27 Feb 2019 16:38:06 -0800 Date: Wed, 27 Feb 2019 16:36:06 -0800 From: Hyun Kwon To: Daniel Vetter Subject: Re: [PATCH RFC 1/1] uio: Add dma-buf import ioctls Message-ID: <20190228003606.GA1063@smtp.xilinx.com> References: <1550953697-7288-1-git-send-email-hyun.kwon@xilinx.com> <1550953697-7288-2-git-send-email-hyun.kwon@xilinx.com> <20190226115311.GA4094@kroah.com> <20190226221817.GB10631@smtp.xilinx.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(39860400002)(376002)(346002)(136003)(396003)(2980300002)(189003)(199004)(51914003)(54906003)(446003)(316002)(58126008)(50466002)(57986006)(5660300002)(63266004)(76506005)(9786002)(2906002)(106466001)(16586007)(106002)(4326008)(6246003)(8676002)(336012)(486006)(47776003)(305945005)(126002)(476003)(26005)(14444005)(426003)(44832011)(186003)(587094005)(77096007)(6346003)(36386004)(53546011)(478600001)(229853002)(11346002)(6916009)(1076003)(76176011)(8936002)(23676004)(2486003)(53386004)(81166006)(81156014)(33656002)(966005)(6306002)(356004)(93886005)(18370500001)(42866002)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR02MB2258; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; LANG:en; PTR:unknown-60-83.xilinx.com; MX:1; A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 61f4288e-9ed7-4313-18c7-08d69d1508fa X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060); SRVR:BN6PR02MB2258; X-MS-TrafficTypeDiagnostic: BN6PR02MB2258: X-MS-Exchange-PUrlCount: 6 X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2258; 20:ddzKs2vOhEevGPMb+/vz/i4mWfdAGp2a4drdnzGbqOn/NRNDJJA7CEtNIMMdT2Q7ZBb7bbl4RUPb+obIaLvqxnwa5HhVYRxZrhp/dYNuH+a1yHXgnrrlbRnl6HYDM1kOxLTlTYK5mChYfvpCu9jKcRhqrJ66PteGiYx89yod8d5AhJvQM6Zmc9j7xf6PqCoa6K+nq5fgMu1kbpChseWRQ+jiEnb9WGVCRrpMbB3JvmJG++a3dEPJWyON5zOH5F7/kvrXuYpxCjKD7C1lEQKC7SY6fSBcb4OToEm04WkoywVnrucVGuDFkgrirqgIfkSzl7aDihsSa1WWaZJi5NUdnTgC8EuOq563ZT7h8QEd+ISRJPD+q2UCcc5A+uoJpaXiY9eyNbSyJtTaei6gqnEJ5QcfqAiYUVmEOIsd6S+7R5p6GmZY2pduNKoQyEg4HbbDrE6FqUDlGpI3109UQC8Jf+gU8ltej0UmsjhMOU15acZvJm8Ue1b0LVoS/WGWKQsN X-Microsoft-Antispam-PRVS: X-Forefront-PRVS: 0962D394D2 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjAyTUIyMjU4OzIzOjVFU3hwR28rZmtqYUFhenRKR0pDOWFONkQv?= =?utf-8?B?ODZ0bXVrVDhPT0VXcDdFWFZWbWpXZWdqZWp3MHp1RDRLSWNTazBaVDg2U1Ir?= =?utf-8?B?TVlkV0JHREZKYzJVTEtUZFFTQ0hQM3FDQmdZMFF3TElxNitqdFNtbDQ3Z1BW?= =?utf-8?B?M0Q1OC80TWdvM3BuY2ZQMC9PVnRVK25kQ0Y4QTZtTWFuc09USzdPQXlmc1Ey?= =?utf-8?B?Q2R6WmZBWHB4KzhrODQvbmpVYnZUNFUwckdyZjhyb2tSNDVQeUdTMnoyTldR?= =?utf-8?B?c0x4ODdGMWNCMEhFU2VmaHhSUTluVzdrUlpoOWNqbHhGbnlLRGV0c3d2b09P?= =?utf-8?B?UXVNVUVBY3lrT1phb0hQQ1ZFZG56L2t3SG1TQ3BRdEk5Z0cvcW1iV2wwQUQ3?= =?utf-8?B?YWhpVTZkQ1JCUnFCVno3MlJKQ3BmaGRPdVpOeG52SVZIUmkyTU91aEM5NnNI?= =?utf-8?B?cXN6dG5XdnRDNWNrTWoycmdjRE50ZUZaVk14RDdGUGpPSlpFMDJWK1JqclpH?= =?utf-8?B?bGhLb1o0eHdxT0NWbncxNmxXb1hlZ3dKbFlSbUVUbUIweGY2VVBUZ243YkIw?= =?utf-8?B?dnZEOVFva051OUxvQ0QrVmtxYlpTakI3UzI4WG9yZUFwb2V4aHl0U3REanVW?= =?utf-8?B?QzlUdTdYaDBEUW9TNVBzc3pNcWx3WVh2cUxzNy9yYVc1dHh4dGQva1BVQ1pz?= =?utf-8?B?L3FmNFBBNUlUY0NmRnpCRGRWM3ZzTUFOcWFMK3JVRmdZVUNhbnlTSVpwbnp6?= =?utf-8?B?Y0xtWlJ0MXUyMTkyeVRDNDNKaVQ4ck5xcm5Wd1BoOVFxb2VXa2NRTHZCOWNv?= =?utf-8?B?d0VRQlYyM3R1dXYyNG5nand4RjVFRFFMa0NCblFVT2JpRzVqbndhY1MyZWxt?= =?utf-8?B?NFNxd29lWWpKdmJJRHJvazZuTXo5L3dKYUliUWlHZ0Zhd2V6cGM1MkNIN2F5?= =?utf-8?B?WGtIZTAyTDhSZnpOQjNlbkMwRmRoVjZ1aUY5NzN4SnZOdk1GSEF1aTBtVktF?= =?utf-8?B?VG81NnJiWERIU2JwdGNLYlpDVlRGM1l2a0o2SW5nNEw5VHFVbFZ0QzhsT1A2?= =?utf-8?B?WjRXY1JqLzZnbkxQaEZrYjNOM0JPaEJTS1lsMi9qV1BqZ3BIWUg1RHQyMmhI?= =?utf-8?B?MEdmNzhid0E2cFU2QlMyY3VXKzdOWGNYYXFqRldBOFRIOUNNay9Na2ZFMmlj?= =?utf-8?B?d01ubStiZjNvM3kzRFZhbGpYdUdDdkVPMHRhaDIvOWhFS0lDcDQrNnB4a3FC?= =?utf-8?B?MG9UV0QvclVtU294TWQ0UVpCSnczNkt6YUdMWW1wUzR4UEkzRFJ1VDBjZnd2?= =?utf-8?B?RnBYZkl3bWhyTDBwcFdncW0yNlVHTzJxVUFxQW9IQk5nM1d2YmlRSWlsNHh5?= =?utf-8?B?Q1BHZWJVY1I3NE9ocEhFaEhIc2d2TVdtY0hyQUJZRXQzVGpENFJMYllaMzNp?= =?utf-8?B?cGJ1bG9USXhzWUhUc1hVanZUOFIxWUk1Z2NsKzdXTUFtVVpITzBCTU93ZE5B?= =?utf-8?B?V0MyTjcyVFhKbG9ERlgyajhmWjhXdDg0Z3VzbkxJS0pGVHB4KzR3VUFuZEMw?= =?utf-8?B?ampoZkJLRERPSWNCSWdNZG5ZbGZkNzhMa1MyVkttOUxFYUo4dyt4Y0tRRnFy?= =?utf-8?B?Vytod1VhRGFHaUllTFhjbFJqaXJFNnB1MWNKM1oyU2t5eER3Sm9xQXhrV2xi?= =?utf-8?B?RVZWbWx4ZGpocG1BUjQvOFFlRlpZNExxb1hoMmwxcW9ERUxudmJ0elhjaENE?= =?utf-8?B?MjhNMjk5U0tJK2lxdDNTdGU4bEIwN0N0a1RlMEd6WjhlVWpxMUhpUEl0M3BI?= =?utf-8?B?ZW4rVkNTeVkvV3Y1VWJEZnRDYlU0UkJvaGFFU0d0dGNjQmc9PQ==?= X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: uAygwNZRa8FUSWR7zA7RwHkN9mFPum6QkHrP29r6khSJByPHam7D/nVroTmkKQP6kdrAIedOUTTmVtRg+etDJNOQXhlCS5IgwFK2l+pzdv6whrgnO1P35Qtj1pzkS9sY8f8Wg1CrwZv9Fl8AgpTQAD1lg5lO4DwsglI2Sv7wxYkw9/Fe3tsHiQkO0SWMdOp1J+8Ej8lE1TAnSd8km4Iuuas3ag7vtbjGsGNnGYg38SJy22JDyfSJlCj9jICmWy84CS9Z3j/d+Mr2baybJ/v4sWOMoewrxVu60nKH4Qwx66iwLcwBIRcUnuWLOIbc9pSksucqMkitysh+yNPybKjgE7567UM3lnk5Wi1Rb9sH4Qt3/LEaPWqj3gjefEYW8ppd6HUJ1ZQdl9SOCkGDgocPQaObGdNHopGTzcUzAPLe42I= X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2019 00:38:18.6332 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 61f4288e-9ed7-4313-18c7-08d69d1508fa X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR02MB2258 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190227_163827_535655_31C98C10 X-CRM114-Status: GOOD ( 36.28 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Hyun Kwon , Sonal Santan , Greg Kroah-Hartman , Cyril Chemparathy , Jiaying Liang , dri-devel , Linux Kernel Mailing List , "moderated list:DMA BUFFER SHARING FRAMEWORK" , Michal Simek , Linux ARM , "open list:DMA BUFFER SHARING FRAMEWORK" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Daniel, On Wed, 2019-02-27 at 06:13:45 -0800, Daniel Vetter wrote: > On Tue, Feb 26, 2019 at 11:20 PM Hyun Kwon wrote: > > > > Hi Daniel, > > > > Thanks for the comment. > > > > On Tue, 2019-02-26 at 04:06:13 -0800, Daniel Vetter wrote: > > > On Tue, Feb 26, 2019 at 12:53 PM Greg Kroah-Hartman > > > wrote: > > > > > > > > On Sat, Feb 23, 2019 at 12:28:17PM -0800, Hyun Kwon wrote: > > > > > Add the dmabuf map / unmap interfaces. This allows the user driver > > > > > to be able to import the external dmabuf and use it from user space. > > > > > > > > > > Signed-off-by: Hyun Kwon > > > > > --- > > > > > drivers/uio/Makefile | 2 +- > > > > > drivers/uio/uio.c | 43 +++++++++ > > > > > drivers/uio/uio_dmabuf.c | 210 +++++++++++++++++++++++++++++++++++++++++++ > > > > > drivers/uio/uio_dmabuf.h | 26 ++++++ > > > > > include/uapi/linux/uio/uio.h | 33 +++++++ > > > > > 5 files changed, 313 insertions(+), 1 deletion(-) > > > > > create mode 100644 drivers/uio/uio_dmabuf.c > > > > > create mode 100644 drivers/uio/uio_dmabuf.h > > > > > create mode 100644 include/uapi/linux/uio/uio.h > > > > > > > > > > diff --git a/drivers/uio/Makefile b/drivers/uio/Makefile > > > > > index c285dd2..5da16c7 100644 > > > > > --- a/drivers/uio/Makefile > > > > > +++ b/drivers/uio/Makefile > > > > > @@ -1,5 +1,5 @@ > > > > > # SPDX-License-Identifier: GPL-2.0 > > > > > -obj-$(CONFIG_UIO) += uio.o > > > > > +obj-$(CONFIG_UIO) += uio.o uio_dmabuf.o > > > > > obj-$(CONFIG_UIO_CIF) += uio_cif.o > > > > > obj-$(CONFIG_UIO_PDRV_GENIRQ) += uio_pdrv_genirq.o > > > > > obj-$(CONFIG_UIO_DMEM_GENIRQ) += uio_dmem_genirq.o > > > > > diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c > > > > > index 1313422..6841f98 100644 > > > > > --- a/drivers/uio/uio.c > > > > > +++ b/drivers/uio/uio.c > > > > > @@ -24,6 +24,12 @@ > > > > > #include > > > > > #include > > > > > #include > > > > > +#include > > > > > +#include > > > > > + > > > > > +#include > > > > > + > > > > > +#include "uio_dmabuf.h" > > > > > > > > > > #define UIO_MAX_DEVICES (1U << MINORBITS) > > > > > > > > > > @@ -454,6 +460,8 @@ static irqreturn_t uio_interrupt(int irq, void *dev_id) > > > > > struct uio_listener { > > > > > struct uio_device *dev; > > > > > s32 event_count; > > > > > + struct list_head dbufs; > > > > > + struct mutex dbufs_lock; /* protect @dbufs */ > > > > > }; > > > > > > > > > > static int uio_open(struct inode *inode, struct file *filep) > > > > > @@ -500,6 +508,9 @@ static int uio_open(struct inode *inode, struct file *filep) > > > > > if (ret) > > > > > goto err_infoopen; > > > > > > > > > > + INIT_LIST_HEAD(&listener->dbufs); > > > > > + mutex_init(&listener->dbufs_lock); > > > > > + > > > > > return 0; > > > > > > > > > > err_infoopen: > > > > > @@ -529,6 +540,10 @@ static int uio_release(struct inode *inode, struct file *filep) > > > > > struct uio_listener *listener = filep->private_data; > > > > > struct uio_device *idev = listener->dev; > > > > > > > > > > + ret = uio_dmabuf_cleanup(idev, &listener->dbufs, &listener->dbufs_lock); > > > > > + if (ret) > > > > > + dev_err(&idev->dev, "failed to clean up the dma bufs\n"); > > > > > + > > > > > mutex_lock(&idev->info_lock); > > > > > if (idev->info && idev->info->release) > > > > > ret = idev->info->release(idev->info, inode); > > > > > @@ -652,6 +667,33 @@ static ssize_t uio_write(struct file *filep, const char __user *buf, > > > > > return retval ? retval : sizeof(s32); > > > > > } > > > > > > > > > > +static long uio_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) > > > > > > > > We have resisted adding a uio ioctl for a long time, can't you do this > > > > through sysfs somehow? > > > > > > > > A meta-comment about your ioctl structure: > > > > > > > > > +#define UIO_DMABUF_DIR_BIDIR 1 > > > > > +#define UIO_DMABUF_DIR_TO_DEV 2 > > > > > +#define UIO_DMABUF_DIR_FROM_DEV 3 > > > > > +#define UIO_DMABUF_DIR_NONE 4 > > > > > > > > enumerated type? > > > > > > > > > + > > > > > +struct uio_dmabuf_args { > > > > > + __s32 dbuf_fd; > > > > > + __u64 dma_addr; > > > > > + __u64 size; > > > > > + __u32 dir; > > > > > > > > Why the odd alignment? Are you sure this is the best packing for such a > > > > structure? > > > > > > > > Why is dbuf_fd __s32? dir can be __u8, right? > > > > > > > > I don't know that dma layer very well, it would be good to get some > > > > review from others to see if this really is even a viable thing to do. > > > > The fd handling seems a bit "odd" here, but maybe I just do not > > > > understand it. > > > > > > Frankly looks like a ploy to sidestep review by graphics folks. We'd > > > ask for the userspace first :-) > > > > Please refer to pull request [1]. > > > > For any interest in more details, the libmetal is the abstraction layer > > which provides platform independent APIs. The backend implementation > > can be selected per different platforms: ex, rtos, linux, > > standalone (xilinx),,,. For Linux, it supports UIO / vfio as of now. > > The actual user space drivers sit on top of libmetal. Such drivers can be > > found in [2]. This is why I try to avoid any device specific code in > > Linux kernel. > > > > > > > > Also, exporting dma_addr to userspace is considered a very bad idea. > > > > I agree, hence the RFC to pick some brains. :-) Would it make sense > > if this call doesn't export the physicall address, but instead takes > > only the dmabuf fd and register offsets to be programmed? > > > > > If you want to do this properly, you need a minimal in-kernel memory > > > manager, and those tend to be based on top of drm_gem.c and merged > > > through the gpu tree. The last place where we accidentally leaked a > > > dma addr for gpu buffers was in the fbdev code, and we plugged that > > > one with > > > > Could you please help me understand how having a in-kernel memory manager > > helps? Isn't it just moving same dmabuf import / paddr export functionality > > in different modules: kernel memory manager vs uio. In fact, Xilinx does have > > such memory manager based on drm gem in downstream. But for this time we took > > the approach of implementing this through generic dmabuf allocator, ION, and > > enabling the import capability in the UIO infrastructure instead. > > There's a group of people working on upstreaming a xilinx drm driver > already. Which driver are we talking about? Can you pls provide a link > to that xilinx drm driver? > The one I was pushing [1] is implemented purely for display, and not intended for anything other than that as of now. What I'm refering to above is part of Xilinx FPGA (acceleration) runtime [2]. As far as I know, it's planned to be upstreamed, but not yet started. The Xilinx runtime software has its own in-kernel memory manager based on drm_cma_gem with its own ioctls [3]. Thanks, -hyun [1] https://patchwork.kernel.org/patch/10513001/ [2] https://github.com/Xilinx/XRT [3] https://github.com/Xilinx/XRT/tree/master/src/runtime_src/driver/zynq/drm > Thanks, Daniel > > > Thanks, > > -hyun > > > > [1] https://github.com/OpenAMP/libmetal/pull/82/commits/951e2762bd487c98919ad12f2aa81773d8fe7859 > > [2] https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers > > > > > > > > commit 4be9bd10e22dfc7fc101c5cf5969ef2d3a042d8a (tag: > > > drm-misc-next-fixes-2018-10-03) > > > Author: Neil Armstrong > > > Date: Fri Sep 28 14:05:55 2018 +0200 > > > > > > drm/fb_helper: Allow leaking fbdev smem_start > > > > > > Together with cuse the above patch should be enough to implement a drm > > > driver entirely in userspace at least. > > > > > > Cheers, Daniel > > > -- > > > Daniel Vetter > > > Software Engineer, Intel Corporation > > > +41 (0) 79 365 57 48 - http://blog.ffwll.ch > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hyun Kwon Subject: Re: [PATCH RFC 1/1] uio: Add dma-buf import ioctls Date: Wed, 27 Feb 2019 16:36:06 -0800 Message-ID: <20190228003606.GA1063@smtp.xilinx.com> References: <1550953697-7288-1-git-send-email-hyun.kwon@xilinx.com> <1550953697-7288-2-git-send-email-hyun.kwon@xilinx.com> <20190226115311.GA4094@kroah.com> <20190226221817.GB10631@smtp.xilinx.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM05-BY2-obe.outbound.protection.outlook.com (mail-eopbgr710052.outbound.protection.outlook.com [40.107.71.52]) by gabe.freedesktop.org (Postfix) with ESMTPS id A01D66E11A for ; Thu, 28 Feb 2019 00:38:23 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Stefano Stabellini , Sonal Santan , Greg Kroah-Hartman , Cyril Chemparathy , Jiaying Liang , dri-devel , Linux Kernel Mailing List , "moderated list:DMA BUFFER SHARING FRAMEWORK" , Michal Simek , Linux ARM , "open list:DMA BUFFER SHARING FRAMEWORK" List-Id: dri-devel@lists.freedesktop.org SGkgRGFuaWVsLAoKT24gV2VkLCAyMDE5LTAyLTI3IGF0IDA2OjEzOjQ1IC0wODAwLCBEYW5pZWwg VmV0dGVyIHdyb3RlOgo+IE9uIFR1ZSwgRmViIDI2LCAyMDE5IGF0IDExOjIwIFBNIEh5dW4gS3dv biA8aHl1bi5rd29uQHhpbGlueC5jb20+IHdyb3RlOgo+ID4KPiA+IEhpIERhbmllbCwKPiA+Cj4g PiBUaGFua3MgZm9yIHRoZSBjb21tZW50Lgo+ID4KPiA+IE9uIFR1ZSwgMjAxOS0wMi0yNiBhdCAw NDowNjoxMyAtMDgwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4gT24gVHVlLCBGZWIgMjYs IDIwMTkgYXQgMTI6NTMgUE0gR3JlZyBLcm9haC1IYXJ0bWFuCj4gPiA+IDxncmVna2hAbGludXhm b3VuZGF0aW9uLm9yZz4gd3JvdGU6Cj4gPiA+ID4KPiA+ID4gPiBPbiBTYXQsIEZlYiAyMywgMjAx OSBhdCAxMjoyODoxN1BNIC0wODAwLCBIeXVuIEt3b24gd3JvdGU6Cj4gPiA+ID4gPiBBZGQgdGhl IGRtYWJ1ZiBtYXAgLyB1bm1hcCBpbnRlcmZhY2VzLiBUaGlzIGFsbG93cyB0aGUgdXNlciBkcml2 ZXIKPiA+ID4gPiA+IHRvIGJlIGFibGUgdG8gaW1wb3J0IHRoZSBleHRlcm5hbCBkbWFidWYgYW5k IHVzZSBpdCBmcm9tIHVzZXIgc3BhY2UuCj4gPiA+ID4gPgo+ID4gPiA+ID4gU2lnbmVkLW9mZi1i eTogSHl1biBLd29uIDxoeXVuLmt3b25AeGlsaW54LmNvbT4KPiA+ID4gPiA+IC0tLQo+ID4gPiA+ ID4gIGRyaXZlcnMvdWlvL01ha2VmaWxlICAgICAgICAgfCAgIDIgKy0KPiA+ID4gPiA+ICBkcml2 ZXJzL3Vpby91aW8uYyAgICAgICAgICAgIHwgIDQzICsrKysrKysrKwo+ID4gPiA+ID4gIGRyaXZl cnMvdWlvL3Vpb19kbWFidWYuYyAgICAgfCAyMTAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+ID4gPiA+ID4gIGRyaXZlcnMvdWlvL3Vpb19kbWFidWYuaCAgICAg fCAgMjYgKysrKysrCj4gPiA+ID4gPiAgaW5jbHVkZS91YXBpL2xpbnV4L3Vpby91aW8uaCB8ICAz MyArKysrKysrCj4gPiA+ID4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAzMTMgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQo+ID4gPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Vpby91 aW9fZG1hYnVmLmMKPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy91aW8vdWlv X2RtYWJ1Zi5oCj4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvdWFwaS9saW51 eC91aW8vdWlvLmgKPiA+ID4gPiA+Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91aW8v TWFrZWZpbGUgYi9kcml2ZXJzL3Vpby9NYWtlZmlsZQo+ID4gPiA+ID4gaW5kZXggYzI4NWRkMi4u NWRhMTZjNyAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvdWlvL01ha2VmaWxlCj4gPiA+ ID4gPiArKysgYi9kcml2ZXJzL3Vpby9NYWtlZmlsZQo+ID4gPiA+ID4gQEAgLTEsNSArMSw1IEBA Cj4gPiA+ID4gPiAgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ID4gPiA+ID4g LW9iai0kKENPTkZJR19VSU8pICAgICs9IHVpby5vCj4gPiA+ID4gPiArb2JqLSQoQ09ORklHX1VJ TykgICAgKz0gdWlvLm8gdWlvX2RtYWJ1Zi5vCj4gPiA+ID4gPiAgb2JqLSQoQ09ORklHX1VJT19D SUYpICAgICAgICArPSB1aW9fY2lmLm8KPiA+ID4gPiA+ICBvYmotJChDT05GSUdfVUlPX1BEUlZf R0VOSVJRKSAgICAgICAgKz0gdWlvX3BkcnZfZ2VuaXJxLm8KPiA+ID4gPiA+ICBvYmotJChDT05G SUdfVUlPX0RNRU1fR0VOSVJRKSAgICAgICAgKz0gdWlvX2RtZW1fZ2VuaXJxLm8KPiA+ID4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Vpby91aW8uYyBiL2RyaXZlcnMvdWlvL3Vpby5jCj4gPiA+ ID4gPiBpbmRleCAxMzEzNDIyLi42ODQxZjk4IDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVy cy91aW8vdWlvLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvdWlvL3Vpby5jCj4gPiA+ID4gPiBA QCAtMjQsNiArMjQsMTIgQEAKPiA+ID4gPiA+ICAjaW5jbHVkZSA8bGludXgva29iamVjdC5oPgo+ ID4gPiA+ID4gICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+Cj4gPiA+ID4gPiAgI2luY2x1ZGUgPGxp bnV4L3Vpb19kcml2ZXIuaD4KPiA+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvbGlzdC5oPgo+ID4g PiA+ID4gKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyNp bmNsdWRlIDx1YXBpL2xpbnV4L3Vpby91aW8uaD4KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsjaW5j bHVkZSAidWlvX2RtYWJ1Zi5oIgo+ID4gPiA+ID4KPiA+ID4gPiA+ICAjZGVmaW5lIFVJT19NQVhf REVWSUNFUyAgICAgICAgICAgICAgKDFVIDw8IE1JTk9SQklUUykKPiA+ID4gPiA+Cj4gPiA+ID4g PiBAQCAtNDU0LDYgKzQ2MCw4IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB1aW9faW50ZXJydXB0KGlu dCBpcnEsIHZvaWQgKmRldl9pZCkKPiA+ID4gPiA+ICBzdHJ1Y3QgdWlvX2xpc3RlbmVyIHsKPiA+ ID4gPiA+ICAgICAgIHN0cnVjdCB1aW9fZGV2aWNlICpkZXY7Cj4gPiA+ID4gPiAgICAgICBzMzIg ZXZlbnRfY291bnQ7Cj4gPiA+ID4gPiArICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRidWZzOwo+ID4g PiA+ID4gKyAgICAgc3RydWN0IG11dGV4IGRidWZzX2xvY2s7IC8qIHByb3RlY3QgQGRidWZzICov Cj4gPiA+ID4gPiAgfTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgc3RhdGljIGludCB1aW9fb3Blbihz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZXApCj4gPiA+ID4gPiBAQCAtNTAw LDYgKzUwOCw5IEBAIHN0YXRpYyBpbnQgdWlvX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3Ry dWN0IGZpbGUgKmZpbGVwKQo+ID4gPiA+ID4gICAgICAgaWYgKHJldCkKPiA+ID4gPiA+ICAgICAg ICAgICAgICAgZ290byBlcnJfaW5mb29wZW47Cj4gPiA+ID4gPgo+ID4gPiA+ID4gKyAgICAgSU5J VF9MSVNUX0hFQUQoJmxpc3RlbmVyLT5kYnVmcyk7Cj4gPiA+ID4gPiArICAgICBtdXRleF9pbml0 KCZsaXN0ZW5lci0+ZGJ1ZnNfbG9jayk7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgICAgICByZXR1 cm4gMDsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgZXJyX2luZm9vcGVuOgo+ID4gPiA+ID4gQEAgLTUy OSw2ICs1NDAsMTAgQEAgc3RhdGljIGludCB1aW9fcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2Rl LCBzdHJ1Y3QgZmlsZSAqZmlsZXApCj4gPiA+ID4gPiAgICAgICBzdHJ1Y3QgdWlvX2xpc3RlbmVy ICpsaXN0ZW5lciA9IGZpbGVwLT5wcml2YXRlX2RhdGE7Cj4gPiA+ID4gPiAgICAgICBzdHJ1Y3Qg dWlvX2RldmljZSAqaWRldiA9IGxpc3RlbmVyLT5kZXY7Cj4gPiA+ID4gPgo+ID4gPiA+ID4gKyAg ICAgcmV0ID0gdWlvX2RtYWJ1Zl9jbGVhbnVwKGlkZXYsICZsaXN0ZW5lci0+ZGJ1ZnMsICZsaXN0 ZW5lci0+ZGJ1ZnNfbG9jayk7Cj4gPiA+ID4gPiArICAgICBpZiAocmV0KQo+ID4gPiA+ID4gKyAg ICAgICAgICAgICBkZXZfZXJyKCZpZGV2LT5kZXYsICJmYWlsZWQgdG8gY2xlYW4gdXAgdGhlIGRt YSBidWZzXG4iKTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICAgICAgIG11dGV4X2xvY2soJmlkZXYt PmluZm9fbG9jayk7Cj4gPiA+ID4gPiAgICAgICBpZiAoaWRldi0+aW5mbyAmJiBpZGV2LT5pbmZv LT5yZWxlYXNlKQo+ID4gPiA+ID4gICAgICAgICAgICAgICByZXQgPSBpZGV2LT5pbmZvLT5yZWxl YXNlKGlkZXYtPmluZm8sIGlub2RlKTsKPiA+ID4gPiA+IEBAIC02NTIsNiArNjY3LDMzIEBAIHN0 YXRpYyBzc2l6ZV90IHVpb193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZXAsIGNvbnN0IGNoYXIgX191 c2VyICpidWYsCj4gPiA+ID4gPiAgICAgICByZXR1cm4gcmV0dmFsID8gcmV0dmFsIDogc2l6ZW9m KHMzMik7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4KPiA+ID4gPiA+ICtzdGF0aWMgbG9uZyB1aW9f aW9jdGwoc3RydWN0IGZpbGUgKmZpbGVwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25n IGFyZykKPiA+ID4gPgo+ID4gPiA+IFdlIGhhdmUgcmVzaXN0ZWQgYWRkaW5nIGEgdWlvIGlvY3Rs IGZvciBhIGxvbmcgdGltZSwgY2FuJ3QgeW91IGRvIHRoaXMKPiA+ID4gPiB0aHJvdWdoIHN5c2Zz IHNvbWVob3c/Cj4gPiA+ID4KPiA+ID4gPiBBIG1ldGEtY29tbWVudCBhYm91dCB5b3VyIGlvY3Rs IHN0cnVjdHVyZToKPiA+ID4gPgo+ID4gPiA+ID4gKyNkZWZpbmUgVUlPX0RNQUJVRl9ESVJfQklE SVIgMQo+ID4gPiA+ID4gKyNkZWZpbmUgVUlPX0RNQUJVRl9ESVJfVE9fREVWICAgICAgICAyCj4g PiA+ID4gPiArI2RlZmluZSBVSU9fRE1BQlVGX0RJUl9GUk9NX0RFViAgICAgIDMKPiA+ID4gPiA+ ICsjZGVmaW5lIFVJT19ETUFCVUZfRElSX05PTkUgIDQKPiA+ID4gPgo+ID4gPiA+IGVudW1lcmF0 ZWQgdHlwZT8KPiA+ID4gPgo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gK3N0cnVjdCB1aW9fZG1hYnVm X2FyZ3Mgewo+ID4gPiA+ID4gKyAgICAgX19zMzIgICBkYnVmX2ZkOwo+ID4gPiA+ID4gKyAgICAg X191NjQgICBkbWFfYWRkcjsKPiA+ID4gPiA+ICsgICAgIF9fdTY0ICAgc2l6ZTsKPiA+ID4gPiA+ ICsgICAgIF9fdTMyICAgZGlyOwo+ID4gPiA+Cj4gPiA+ID4gV2h5IHRoZSBvZGQgYWxpZ25tZW50 PyAgQXJlIHlvdSBzdXJlIHRoaXMgaXMgdGhlIGJlc3QgcGFja2luZyBmb3Igc3VjaCBhCj4gPiA+ ID4gc3RydWN0dXJlPwo+ID4gPiA+Cj4gPiA+ID4gV2h5IGlzIGRidWZfZmQgX19zMzI/ICBkaXIg Y2FuIGJlIF9fdTgsIHJpZ2h0Pwo+ID4gPiA+Cj4gPiA+ID4gSSBkb24ndCBrbm93IHRoYXQgZG1h IGxheWVyIHZlcnkgd2VsbCwgaXQgd291bGQgYmUgZ29vZCB0byBnZXQgc29tZQo+ID4gPiA+IHJl dmlldyBmcm9tIG90aGVycyB0byBzZWUgaWYgdGhpcyByZWFsbHkgaXMgZXZlbiBhIHZpYWJsZSB0 aGluZyB0byBkby4KPiA+ID4gPiBUaGUgZmQgaGFuZGxpbmcgc2VlbXMgYSBiaXQgIm9kZCIgaGVy ZSwgYnV0IG1heWJlIEkganVzdCBkbyBub3QKPiA+ID4gPiB1bmRlcnN0YW5kIGl0Lgo+ID4gPgo+ ID4gPiBGcmFua2x5IGxvb2tzIGxpa2UgYSBwbG95IHRvIHNpZGVzdGVwIHJldmlldyBieSBncmFw aGljcyBmb2xrcy4gV2UnZAo+ID4gPiBhc2sgZm9yIHRoZSB1c2Vyc3BhY2UgZmlyc3QgOi0pCj4g Pgo+ID4gUGxlYXNlIHJlZmVyIHRvIHB1bGwgcmVxdWVzdCBbMV0uCj4gPgo+ID4gRm9yIGFueSBp bnRlcmVzdCBpbiBtb3JlIGRldGFpbHMsIHRoZSBsaWJtZXRhbCBpcyB0aGUgYWJzdHJhY3Rpb24g bGF5ZXIKPiA+IHdoaWNoIHByb3ZpZGVzIHBsYXRmb3JtIGluZGVwZW5kZW50IEFQSXMuIFRoZSBi YWNrZW5kIGltcGxlbWVudGF0aW9uCj4gPiBjYW4gYmUgc2VsZWN0ZWQgcGVyIGRpZmZlcmVudCBw bGF0Zm9ybXM6IGV4LCBydG9zLCBsaW51eCwKPiA+IHN0YW5kYWxvbmUgKHhpbGlueCksLCwuIEZv ciBMaW51eCwgaXQgc3VwcG9ydHMgVUlPIC8gdmZpbyBhcyBvZiBub3cuCj4gPiBUaGUgYWN0dWFs IHVzZXIgc3BhY2UgZHJpdmVycyBzaXQgb24gdG9wIG9mIGxpYm1ldGFsLiBTdWNoIGRyaXZlcnMg Y2FuIGJlCj4gPiBmb3VuZCBpbiBbMl0uIFRoaXMgaXMgd2h5IEkgdHJ5IHRvIGF2b2lkIGFueSBk ZXZpY2Ugc3BlY2lmaWMgY29kZSBpbgo+ID4gTGludXgga2VybmVsLgo+ID4KPiA+ID4KPiA+ID4g QWxzbywgZXhwb3J0aW5nIGRtYV9hZGRyIHRvIHVzZXJzcGFjZSBpcyBjb25zaWRlcmVkIGEgdmVy eSBiYWQgaWRlYS4KPiA+Cj4gPiBJIGFncmVlLCBoZW5jZSB0aGUgUkZDIHRvIHBpY2sgc29tZSBi cmFpbnMuIDotKSBXb3VsZCBpdCBtYWtlIHNlbnNlCj4gPiBpZiB0aGlzIGNhbGwgZG9lc24ndCBl eHBvcnQgdGhlIHBoeXNpY2FsbCBhZGRyZXNzLCBidXQgaW5zdGVhZCB0YWtlcwo+ID4gb25seSB0 aGUgZG1hYnVmIGZkIGFuZCByZWdpc3RlciBvZmZzZXRzIHRvIGJlIHByb2dyYW1tZWQ/Cj4gPgo+ ID4gPiBJZiB5b3Ugd2FudCB0byBkbyB0aGlzIHByb3Blcmx5LCB5b3UgbmVlZCBhIG1pbmltYWwg aW4ta2VybmVsIG1lbW9yeQo+ID4gPiBtYW5hZ2VyLCBhbmQgdGhvc2UgdGVuZCB0byBiZSBiYXNl ZCBvbiB0b3Agb2YgZHJtX2dlbS5jIGFuZCBtZXJnZWQKPiA+ID4gdGhyb3VnaCB0aGUgZ3B1IHRy ZWUuIFRoZSBsYXN0IHBsYWNlIHdoZXJlIHdlIGFjY2lkZW50YWxseSBsZWFrZWQgYQo+ID4gPiBk bWEgYWRkciBmb3IgZ3B1IGJ1ZmZlcnMgd2FzIGluIHRoZSBmYmRldiBjb2RlLCBhbmQgd2UgcGx1 Z2dlZCB0aGF0Cj4gPiA+IG9uZSB3aXRoCj4gPgo+ID4gQ291bGQgeW91IHBsZWFzZSBoZWxwIG1l IHVuZGVyc3RhbmQgaG93IGhhdmluZyBhIGluLWtlcm5lbCBtZW1vcnkgbWFuYWdlcgo+ID4gaGVs cHM/IElzbid0IGl0IGp1c3QgbW92aW5nIHNhbWUgZG1hYnVmIGltcG9ydCAvIHBhZGRyIGV4cG9y dCBmdW5jdGlvbmFsaXR5Cj4gPiBpbiBkaWZmZXJlbnQgbW9kdWxlczoga2VybmVsIG1lbW9yeSBt YW5hZ2VyIHZzIHVpby4gSW4gZmFjdCwgWGlsaW54IGRvZXMgaGF2ZQo+ID4gc3VjaCBtZW1vcnkg bWFuYWdlciBiYXNlZCBvbiBkcm0gZ2VtIGluIGRvd25zdHJlYW0uIEJ1dCBmb3IgdGhpcyB0aW1l IHdlIHRvb2sKPiA+IHRoZSBhcHByb2FjaCBvZiBpbXBsZW1lbnRpbmcgdGhpcyB0aHJvdWdoIGdl bmVyaWMgZG1hYnVmIGFsbG9jYXRvciwgSU9OLCBhbmQKPiA+IGVuYWJsaW5nIHRoZSBpbXBvcnQg Y2FwYWJpbGl0eSBpbiB0aGUgVUlPIGluZnJhc3RydWN0dXJlIGluc3RlYWQuCj4gCj4gVGhlcmUn cyBhIGdyb3VwIG9mIHBlb3BsZSB3b3JraW5nIG9uIHVwc3RyZWFtaW5nIGEgeGlsaW54IGRybSBk cml2ZXIKPiBhbHJlYWR5LiBXaGljaCBkcml2ZXIgYXJlIHdlIHRhbGtpbmcgYWJvdXQ/IENhbiB5 b3UgcGxzIHByb3ZpZGUgYSBsaW5rCj4gdG8gdGhhdCB4aWxpbnggZHJtIGRyaXZlcj8KPiAKClRo ZSBvbmUgSSB3YXMgcHVzaGluZyBbMV0gaXMgaW1wbGVtZW50ZWQgcHVyZWx5IGZvciBkaXNwbGF5 LCBhbmQgbm90CmludGVuZGVkIGZvciBhbnl0aGluZyBvdGhlciB0aGFuIHRoYXQgYXMgb2Ygbm93 LiBXaGF0IEknbSByZWZlcmluZyB0byBhYm92ZQppcyBwYXJ0IG9mIFhpbGlueCBGUEdBIChhY2Nl bGVyYXRpb24pIHJ1bnRpbWUgWzJdLiBBcyBmYXIgYXMgSSBrbm93LAppdCdzIHBsYW5uZWQgdG8g YmUgdXBzdHJlYW1lZCwgYnV0IG5vdCB5ZXQgc3RhcnRlZC4gVGhlIFhpbGlueCBydW50aW1lCnNv ZnR3YXJlIGhhcyBpdHMgb3duIGluLWtlcm5lbCBtZW1vcnkgbWFuYWdlciBiYXNlZCBvbiBkcm1f Y21hX2dlbSB3aXRoCml0cyBvd24gaW9jdGxzIFszXS4KClRoYW5rcywKLWh5dW4KClsxXSBodHRw czovL3BhdGNod29yay5rZXJuZWwub3JnL3BhdGNoLzEwNTEzMDAxLwpbMl0gaHR0cHM6Ly9naXRo dWIuY29tL1hpbGlueC9YUlQKWzNdIGh0dHBzOi8vZ2l0aHViLmNvbS9YaWxpbngvWFJUL3RyZWUv bWFzdGVyL3NyYy9ydW50aW1lX3NyYy9kcml2ZXIvenlucS9kcm0KCj4gVGhhbmtzLCBEYW5pZWwK PiAKPiA+IFRoYW5rcywKPiA+IC1oeXVuCj4gPgo+ID4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9P cGVuQU1QL2xpYm1ldGFsL3B1bGwvODIvY29tbWl0cy85NTFlMjc2MmJkNDg3Yzk4OTE5YWQxMmYy YWE4MTc3M2Q4ZmU3ODU5Cj4gPiBbMl0gaHR0cHM6Ly9naXRodWIuY29tL1hpbGlueC9lbWJlZGRl ZHN3L3RyZWUvbWFzdGVyL1hpbGlueFByb2Nlc3NvcklQTGliL2RyaXZlcnMKPiA+Cj4gPiA+Cj4g PiA+IGNvbW1pdCA0YmU5YmQxMGUyMmRmYzdmYzEwMWM1Y2Y1OTY5ZWYyZDNhMDQyZDhhICh0YWc6 Cj4gPiA+IGRybS1taXNjLW5leHQtZml4ZXMtMjAxOC0xMC0wMykKPiA+ID4gQXV0aG9yOiBOZWls IEFybXN0cm9uZyA8bmFybXN0cm9uZ0BiYXlsaWJyZS5jb20+Cj4gPiA+IERhdGU6ICAgRnJpIFNl cCAyOCAxNDowNTo1NSAyMDE4ICswMjAwCj4gPiA+Cj4gPiA+ICAgICBkcm0vZmJfaGVscGVyOiBB bGxvdyBsZWFraW5nIGZiZGV2IHNtZW1fc3RhcnQKPiA+ID4KPiA+ID4gVG9nZXRoZXIgd2l0aCBj dXNlIHRoZSBhYm92ZSBwYXRjaCBzaG91bGQgYmUgZW5vdWdoIHRvIGltcGxlbWVudCBhIGRybQo+ ID4gPiBkcml2ZXIgZW50aXJlbHkgaW4gdXNlcnNwYWNlIGF0IGxlYXN0Lgo+ID4gPgo+ID4gPiBD aGVlcnMsIERhbmllbAo+ID4gPiAtLQo+ID4gPiBEYW5pZWwgVmV0dGVyCj4gPiA+IFNvZnR3YXJl IEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiArNDEgKDApIDc5IDM2NSA1NyA0OCAt IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gCj4gCj4gCj4gLS0gCj4gRGFuaWVsIFZldHRlcgo+IFNv ZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICs0MSAoMCkgNzkgMzY1IDU3IDQ4 IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.5 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CF802C43381 for ; Thu, 28 Feb 2019 00:38:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7B108214D8 for ; Thu, 28 Feb 2019 00:38:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="y3cVawvT" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730378AbfB1Aih (ORCPT ); Wed, 27 Feb 2019 19:38:37 -0500 Received: from mail-eopbgr690059.outbound.protection.outlook.com ([40.107.69.59]:55808 "EHLO NAM04-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730139AbfB1Aig (ORCPT ); Wed, 27 Feb 2019 19:38:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bz/CJFWuOI734RlkTCuFV8QlB4FCU0cEhBdV79orLCM=; b=y3cVawvTB9WBPTyqyh8IDx7NbxaiYc3m1WM2MCpH9MwL74KOT9dSYiT5AaEvMWQm1LcmC2qUunQJXhMELyd6g8rtrv3yNPIb1TFvbUSZJu7UCuHjb60QXDcNqg7eciaeN6FzSkL8jYK++fGJcys4ZtE6HVBOpSUc0ekzNcRoatE= Received: from SN4PR0201CA0046.namprd02.prod.outlook.com (2603:10b6:803:2e::32) by BN6PR02MB2258.namprd02.prod.outlook.com (2603:10b6:404:32::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.16; Thu, 28 Feb 2019 00:38:19 +0000 Received: from SN1NAM02FT047.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::202) by SN4PR0201CA0046.outlook.office365.com (2603:10b6:803:2e::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1643.16 via Frontend Transport; Thu, 28 Feb 2019 00:38:19 +0000 Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by SN1NAM02FT047.mail.protection.outlook.com (10.152.72.201) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1643.11 via Frontend Transport; Thu, 28 Feb 2019 00:38:18 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1gz9iM-0002zU-7V; Wed, 27 Feb 2019 16:38:18 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1gz9iH-0005dY-3H; Wed, 27 Feb 2019 16:38:13 -0800 Received: from xsj-pvapsmtp01 (mail.xilinx.com [149.199.38.66] (may be forged)) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id x1S0c6JL017519; Wed, 27 Feb 2019 16:38:07 -0800 Received: from [172.19.2.244] (helo=localhost) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1gz9iA-0005d0-PD; Wed, 27 Feb 2019 16:38:06 -0800 Date: Wed, 27 Feb 2019 16:36:06 -0800 From: Hyun Kwon To: Daniel Vetter CC: Hyun Kwon , Greg Kroah-Hartman , Stefano Stabellini , Sonal Santan , Cyril Chemparathy , Jiaying Liang , dri-devel , Linux Kernel Mailing List , "moderated list:DMA BUFFER SHARING FRAMEWORK" , Michal Simek , Linux ARM , "open list:DMA BUFFER SHARING FRAMEWORK" Subject: Re: [PATCH RFC 1/1] uio: Add dma-buf import ioctls Message-ID: <20190228003606.GA1063@smtp.xilinx.com> References: <1550953697-7288-1-git-send-email-hyun.kwon@xilinx.com> <1550953697-7288-2-git-send-email-hyun.kwon@xilinx.com> <20190226115311.GA4094@kroah.com> <20190226221817.GB10631@smtp.xilinx.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(39860400002)(376002)(346002)(136003)(396003)(2980300002)(189003)(199004)(51914003)(54906003)(446003)(316002)(58126008)(50466002)(57986006)(5660300002)(63266004)(76506005)(9786002)(2906002)(106466001)(16586007)(106002)(4326008)(6246003)(8676002)(336012)(486006)(47776003)(305945005)(126002)(476003)(26005)(14444005)(426003)(44832011)(186003)(587094005)(77096007)(6346003)(36386004)(53546011)(478600001)(229853002)(11346002)(6916009)(1076003)(76176011)(8936002)(23676004)(2486003)(53386004)(81166006)(81156014)(33656002)(966005)(6306002)(356004)(93886005)(18370500001)(42866002)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR02MB2258;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;LANG:en;PTR:unknown-60-83.xilinx.com;MX:1;A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 61f4288e-9ed7-4313-18c7-08d69d1508fa X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060);SRVR:BN6PR02MB2258; X-MS-TrafficTypeDiagnostic: BN6PR02MB2258: X-MS-Exchange-PUrlCount: 6 X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Exchange-Diagnostics: 1;BN6PR02MB2258;20:ddzKs2vOhEevGPMb+/vz/i4mWfdAGp2a4drdnzGbqOn/NRNDJJA7CEtNIMMdT2Q7ZBb7bbl4RUPb+obIaLvqxnwa5HhVYRxZrhp/dYNuH+a1yHXgnrrlbRnl6HYDM1kOxLTlTYK5mChYfvpCu9jKcRhqrJ66PteGiYx89yod8d5AhJvQM6Zmc9j7xf6PqCoa6K+nq5fgMu1kbpChseWRQ+jiEnb9WGVCRrpMbB3JvmJG++a3dEPJWyON5zOH5F7/kvrXuYpxCjKD7C1lEQKC7SY6fSBcb4OToEm04WkoywVnrucVGuDFkgrirqgIfkSzl7aDihsSa1WWaZJi5NUdnTgC8EuOq563ZT7h8QEd+ISRJPD+q2UCcc5A+uoJpaXiY9eyNbSyJtTaei6gqnEJ5QcfqAiYUVmEOIsd6S+7R5p6GmZY2pduNKoQyEg4HbbDrE6FqUDlGpI3109UQC8Jf+gU8ltej0UmsjhMOU15acZvJm8Ue1b0LVoS/WGWKQsN X-Microsoft-Antispam-PRVS: X-Forefront-PRVS: 0962D394D2 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjAyTUIyMjU4OzIzOjVFU3hwR28rZmtqYUFhenRKR0pDOWFONkQv?= =?utf-8?B?ODZ0bXVrVDhPT0VXcDdFWFZWbWpXZWdqZWp3MHp1RDRLSWNTazBaVDg2U1Ir?= =?utf-8?B?TVlkV0JHREZKYzJVTEtUZFFTQ0hQM3FDQmdZMFF3TElxNitqdFNtbDQ3Z1BW?= =?utf-8?B?M0Q1OC80TWdvM3BuY2ZQMC9PVnRVK25kQ0Y4QTZtTWFuc09USzdPQXlmc1Ey?= =?utf-8?B?Q2R6WmZBWHB4KzhrODQvbmpVYnZUNFUwckdyZjhyb2tSNDVQeUdTMnoyTldR?= =?utf-8?B?c0x4ODdGMWNCMEhFU2VmaHhSUTluVzdrUlpoOWNqbHhGbnlLRGV0c3d2b09P?= =?utf-8?B?UXVNVUVBY3lrT1phb0hQQ1ZFZG56L2t3SG1TQ3BRdEk5Z0cvcW1iV2wwQUQ3?= =?utf-8?B?YWhpVTZkQ1JCUnFCVno3MlJKQ3BmaGRPdVpOeG52SVZIUmkyTU91aEM5NnNI?= =?utf-8?B?cXN6dG5XdnRDNWNrTWoycmdjRE50ZUZaVk14RDdGUGpPSlpFMDJWK1JqclpH?= =?utf-8?B?bGhLb1o0eHdxT0NWbncxNmxXb1hlZ3dKbFlSbUVUbUIweGY2VVBUZ243YkIw?= =?utf-8?B?dnZEOVFva051OUxvQ0QrVmtxYlpTakI3UzI4WG9yZUFwb2V4aHl0U3REanVW?= =?utf-8?B?QzlUdTdYaDBEUW9TNVBzc3pNcWx3WVh2cUxzNy9yYVc1dHh4dGQva1BVQ1pz?= =?utf-8?B?L3FmNFBBNUlUY0NmRnpCRGRWM3ZzTUFOcWFMK3JVRmdZVUNhbnlTSVpwbnp6?= =?utf-8?B?Y0xtWlJ0MXUyMTkyeVRDNDNKaVQ4ck5xcm5Wd1BoOVFxb2VXa2NRTHZCOWNv?= =?utf-8?B?d0VRQlYyM3R1dXYyNG5nand4RjVFRFFMa0NCblFVT2JpRzVqbndhY1MyZWxt?= =?utf-8?B?NFNxd29lWWpKdmJJRHJvazZuTXo5L3dKYUliUWlHZ0Zhd2V6cGM1MkNIN2F5?= =?utf-8?B?WGtIZTAyTDhSZnpOQjNlbkMwRmRoVjZ1aUY5NzN4SnZOdk1GSEF1aTBtVktF?= =?utf-8?B?VG81NnJiWERIU2JwdGNLYlpDVlRGM1l2a0o2SW5nNEw5VHFVbFZ0QzhsT1A2?= =?utf-8?B?WjRXY1JqLzZnbkxQaEZrYjNOM0JPaEJTS1lsMi9qV1BqZ3BIWUg1RHQyMmhI?= =?utf-8?B?MEdmNzhid0E2cFU2QlMyY3VXKzdOWGNYYXFqRldBOFRIOUNNay9Na2ZFMmlj?= =?utf-8?B?d01ubStiZjNvM3kzRFZhbGpYdUdDdkVPMHRhaDIvOWhFS0lDcDQrNnB4a3FC?= =?utf-8?B?MG9UV0QvclVtU294TWQ0UVpCSnczNkt6YUdMWW1wUzR4UEkzRFJ1VDBjZnd2?= =?utf-8?B?RnBYZkl3bWhyTDBwcFdncW0yNlVHTzJxVUFxQW9IQk5nM1d2YmlRSWlsNHh5?= =?utf-8?B?Q1BHZWJVY1I3NE9ocEhFaEhIc2d2TVdtY0hyQUJZRXQzVGpENFJMYllaMzNp?= =?utf-8?B?cGJ1bG9USXhzWUhUc1hVanZUOFIxWUk1Z2NsKzdXTUFtVVpITzBCTU93ZE5B?= =?utf-8?B?V0MyTjcyVFhKbG9ERlgyajhmWjhXdDg0Z3VzbkxJS0pGVHB4KzR3VUFuZEMw?= =?utf-8?B?ampoZkJLRERPSWNCSWdNZG5ZbGZkNzhMa1MyVkttOUxFYUo4dyt4Y0tRRnFy?= =?utf-8?B?Vytod1VhRGFHaUllTFhjbFJqaXJFNnB1MWNKM1oyU2t5eER3Sm9xQXhrV2xi?= =?utf-8?B?RVZWbWx4ZGpocG1BUjQvOFFlRlpZNExxb1hoMmwxcW9ERUxudmJ0elhjaENE?= =?utf-8?B?MjhNMjk5U0tJK2lxdDNTdGU4bEIwN0N0a1RlMEd6WjhlVWpxMUhpUEl0M3BI?= =?utf-8?B?ZW4rVkNTeVkvV3Y1VWJEZnRDYlU0UkJvaGFFU0d0dGNjQmc9PQ==?= X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: uAygwNZRa8FUSWR7zA7RwHkN9mFPum6QkHrP29r6khSJByPHam7D/nVroTmkKQP6kdrAIedOUTTmVtRg+etDJNOQXhlCS5IgwFK2l+pzdv6whrgnO1P35Qtj1pzkS9sY8f8Wg1CrwZv9Fl8AgpTQAD1lg5lO4DwsglI2Sv7wxYkw9/Fe3tsHiQkO0SWMdOp1J+8Ej8lE1TAnSd8km4Iuuas3ag7vtbjGsGNnGYg38SJy22JDyfSJlCj9jICmWy84CS9Z3j/d+Mr2baybJ/v4sWOMoewrxVu60nKH4Qwx66iwLcwBIRcUnuWLOIbc9pSksucqMkitysh+yNPybKjgE7567UM3lnk5Wi1Rb9sH4Qt3/LEaPWqj3gjefEYW8ppd6HUJ1ZQdl9SOCkGDgocPQaObGdNHopGTzcUzAPLe42I= X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2019 00:38:18.6332 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 61f4288e-9ed7-4313-18c7-08d69d1508fa X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR02MB2258 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Hi Daniel, On Wed, 2019-02-27 at 06:13:45 -0800, Daniel Vetter wrote: > On Tue, Feb 26, 2019 at 11:20 PM Hyun Kwon wrote: > > > > Hi Daniel, > > > > Thanks for the comment. > > > > On Tue, 2019-02-26 at 04:06:13 -0800, Daniel Vetter wrote: > > > On Tue, Feb 26, 2019 at 12:53 PM Greg Kroah-Hartman > > > wrote: > > > > > > > > On Sat, Feb 23, 2019 at 12:28:17PM -0800, Hyun Kwon wrote: > > > > > Add the dmabuf map / unmap interfaces. This allows the user driver > > > > > to be able to import the external dmabuf and use it from user space. > > > > > > > > > > Signed-off-by: Hyun Kwon > > > > > --- > > > > > drivers/uio/Makefile | 2 +- > > > > > drivers/uio/uio.c | 43 +++++++++ > > > > > drivers/uio/uio_dmabuf.c | 210 +++++++++++++++++++++++++++++++++++++++++++ > > > > > drivers/uio/uio_dmabuf.h | 26 ++++++ > > > > > include/uapi/linux/uio/uio.h | 33 +++++++ > > > > > 5 files changed, 313 insertions(+), 1 deletion(-) > > > > > create mode 100644 drivers/uio/uio_dmabuf.c > > > > > create mode 100644 drivers/uio/uio_dmabuf.h > > > > > create mode 100644 include/uapi/linux/uio/uio.h > > > > > > > > > > diff --git a/drivers/uio/Makefile b/drivers/uio/Makefile > > > > > index c285dd2..5da16c7 100644 > > > > > --- a/drivers/uio/Makefile > > > > > +++ b/drivers/uio/Makefile > > > > > @@ -1,5 +1,5 @@ > > > > > # SPDX-License-Identifier: GPL-2.0 > > > > > -obj-$(CONFIG_UIO) += uio.o > > > > > +obj-$(CONFIG_UIO) += uio.o uio_dmabuf.o > > > > > obj-$(CONFIG_UIO_CIF) += uio_cif.o > > > > > obj-$(CONFIG_UIO_PDRV_GENIRQ) += uio_pdrv_genirq.o > > > > > obj-$(CONFIG_UIO_DMEM_GENIRQ) += uio_dmem_genirq.o > > > > > diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c > > > > > index 1313422..6841f98 100644 > > > > > --- a/drivers/uio/uio.c > > > > > +++ b/drivers/uio/uio.c > > > > > @@ -24,6 +24,12 @@ > > > > > #include > > > > > #include > > > > > #include > > > > > +#include > > > > > +#include > > > > > + > > > > > +#include > > > > > + > > > > > +#include "uio_dmabuf.h" > > > > > > > > > > #define UIO_MAX_DEVICES (1U << MINORBITS) > > > > > > > > > > @@ -454,6 +460,8 @@ static irqreturn_t uio_interrupt(int irq, void *dev_id) > > > > > struct uio_listener { > > > > > struct uio_device *dev; > > > > > s32 event_count; > > > > > + struct list_head dbufs; > > > > > + struct mutex dbufs_lock; /* protect @dbufs */ > > > > > }; > > > > > > > > > > static int uio_open(struct inode *inode, struct file *filep) > > > > > @@ -500,6 +508,9 @@ static int uio_open(struct inode *inode, struct file *filep) > > > > > if (ret) > > > > > goto err_infoopen; > > > > > > > > > > + INIT_LIST_HEAD(&listener->dbufs); > > > > > + mutex_init(&listener->dbufs_lock); > > > > > + > > > > > return 0; > > > > > > > > > > err_infoopen: > > > > > @@ -529,6 +540,10 @@ static int uio_release(struct inode *inode, struct file *filep) > > > > > struct uio_listener *listener = filep->private_data; > > > > > struct uio_device *idev = listener->dev; > > > > > > > > > > + ret = uio_dmabuf_cleanup(idev, &listener->dbufs, &listener->dbufs_lock); > > > > > + if (ret) > > > > > + dev_err(&idev->dev, "failed to clean up the dma bufs\n"); > > > > > + > > > > > mutex_lock(&idev->info_lock); > > > > > if (idev->info && idev->info->release) > > > > > ret = idev->info->release(idev->info, inode); > > > > > @@ -652,6 +667,33 @@ static ssize_t uio_write(struct file *filep, const char __user *buf, > > > > > return retval ? retval : sizeof(s32); > > > > > } > > > > > > > > > > +static long uio_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) > > > > > > > > We have resisted adding a uio ioctl for a long time, can't you do this > > > > through sysfs somehow? > > > > > > > > A meta-comment about your ioctl structure: > > > > > > > > > +#define UIO_DMABUF_DIR_BIDIR 1 > > > > > +#define UIO_DMABUF_DIR_TO_DEV 2 > > > > > +#define UIO_DMABUF_DIR_FROM_DEV 3 > > > > > +#define UIO_DMABUF_DIR_NONE 4 > > > > > > > > enumerated type? > > > > > > > > > + > > > > > +struct uio_dmabuf_args { > > > > > + __s32 dbuf_fd; > > > > > + __u64 dma_addr; > > > > > + __u64 size; > > > > > + __u32 dir; > > > > > > > > Why the odd alignment? Are you sure this is the best packing for such a > > > > structure? > > > > > > > > Why is dbuf_fd __s32? dir can be __u8, right? > > > > > > > > I don't know that dma layer very well, it would be good to get some > > > > review from others to see if this really is even a viable thing to do. > > > > The fd handling seems a bit "odd" here, but maybe I just do not > > > > understand it. > > > > > > Frankly looks like a ploy to sidestep review by graphics folks. We'd > > > ask for the userspace first :-) > > > > Please refer to pull request [1]. > > > > For any interest in more details, the libmetal is the abstraction layer > > which provides platform independent APIs. The backend implementation > > can be selected per different platforms: ex, rtos, linux, > > standalone (xilinx),,,. For Linux, it supports UIO / vfio as of now. > > The actual user space drivers sit on top of libmetal. Such drivers can be > > found in [2]. This is why I try to avoid any device specific code in > > Linux kernel. > > > > > > > > Also, exporting dma_addr to userspace is considered a very bad idea. > > > > I agree, hence the RFC to pick some brains. :-) Would it make sense > > if this call doesn't export the physicall address, but instead takes > > only the dmabuf fd and register offsets to be programmed? > > > > > If you want to do this properly, you need a minimal in-kernel memory > > > manager, and those tend to be based on top of drm_gem.c and merged > > > through the gpu tree. The last place where we accidentally leaked a > > > dma addr for gpu buffers was in the fbdev code, and we plugged that > > > one with > > > > Could you please help me understand how having a in-kernel memory manager > > helps? Isn't it just moving same dmabuf import / paddr export functionality > > in different modules: kernel memory manager vs uio. In fact, Xilinx does have > > such memory manager based on drm gem in downstream. But for this time we took > > the approach of implementing this through generic dmabuf allocator, ION, and > > enabling the import capability in the UIO infrastructure instead. > > There's a group of people working on upstreaming a xilinx drm driver > already. Which driver are we talking about? Can you pls provide a link > to that xilinx drm driver? > The one I was pushing [1] is implemented purely for display, and not intended for anything other than that as of now. What I'm refering to above is part of Xilinx FPGA (acceleration) runtime [2]. As far as I know, it's planned to be upstreamed, but not yet started. The Xilinx runtime software has its own in-kernel memory manager based on drm_cma_gem with its own ioctls [3]. Thanks, -hyun [1] https://patchwork.kernel.org/patch/10513001/ [2] https://github.com/Xilinx/XRT [3] https://github.com/Xilinx/XRT/tree/master/src/runtime_src/driver/zynq/drm > Thanks, Daniel > > > Thanks, > > -hyun > > > > [1] https://github.com/OpenAMP/libmetal/pull/82/commits/951e2762bd487c98919ad12f2aa81773d8fe7859 > > [2] https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers > > > > > > > > commit 4be9bd10e22dfc7fc101c5cf5969ef2d3a042d8a (tag: > > > drm-misc-next-fixes-2018-10-03) > > > Author: Neil Armstrong > > > Date: Fri Sep 28 14:05:55 2018 +0200 > > > > > > drm/fb_helper: Allow leaking fbdev smem_start > > > > > > Together with cuse the above patch should be enough to implement a drm > > > driver entirely in userspace at least. > > > > > > Cheers, Daniel > > > -- > > > Daniel Vetter > > > Software Engineer, Intel Corporation > > > +41 (0) 79 365 57 48 - http://blog.ffwll.ch > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > +41 (0) 79 365 57 48 - http://blog.ffwll.ch