Received: by 2002:a05:6a10:eb17:0:0:0:0 with SMTP id hx23csp727183pxb; Wed, 8 Sep 2021 10:51:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxo0YIgz8eFIo3ekCVEI8Rvx5N4kOW9HbSk3noztmJIPFK0oy5xsJqbTv1aHNnIh3pNx5XL X-Received: by 2002:a6b:f908:: with SMTP id j8mr978198iog.22.1631123498270; Wed, 08 Sep 2021 10:51:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631123498; cv=none; d=google.com; s=arc-20160816; b=pNRizajCgRlSBEvlVXdndlHSFRylctCCToAOPhOTD15gV1/gscOU3ZjppHqaP/ZLwT ZJY+yEtfP+eQs0FY0P/G7qnHre0uqwr/BL5pU11PgoOgukiR4bLV14y8F1F78dliHPXV G4/OgEZOUuv4U6grGMJW4wzMsEgm15YZz9igHgWMjXY4/32sGUgYm95ipGOH44GKfPnN sMEU9jUniTr6ejSdb1kQo74yk6aUl44H5gnc/vM9VG9G12URNmkxXYs4zuM8py2KwT95 QgqGIvuQiAfzOV8iSUhpgy/p57D7nRyKiYu1OANe4voTOBFZuYByVGaYt6Cg7GNh/Pl0 n+3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:mail-followup-to:message-id:subject:cc:to:from:date :dkim-signature; bh=vuSk6k+wa7pbmbqWvCvDdZqbC/SZgYreAXUEe3eNDTI=; b=R11K8K6RnjTMbuTDch+wbMISKkVE2r1mtgTZBbE38GejM7PSa8P+4Qber98GoHfgtv 8HeEcOmzArMUphVeVFf3HO5la2oZV+mEpB0JwhCXatX9rAoQZ6n6pffHAryycIT6gZUq MQ96qux8nEunyXajG0vgJs3ItIxs0w2jKyhBn9pjqHemjO+Fqmz+8BpoH9BEuu+jQS+p oc/3HcCkAv5AhHMADjGJw03fmzsFg5DBHIYDquPTyeoT3uWB3c+tM8Sqen8nihUNEbpm PJU+r1TetbXGVshDDRkyySieGFAEXjyvMt6flEH7ZgSpPQiP+H1imlFSRB9RGDuSbZ92 hCJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=CrZPXrbR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t44si2761971jal.14.2021.09.08.10.51.26; Wed, 08 Sep 2021 10:51:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@ffwll.ch header.s=google header.b=CrZPXrbR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236496AbhIHRvq (ORCPT + 99 others); Wed, 8 Sep 2021 13:51:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232430AbhIHRvo (ORCPT ); Wed, 8 Sep 2021 13:51:44 -0400 Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C396BC061757 for ; Wed, 8 Sep 2021 10:50:35 -0700 (PDT) Received: by mail-ej1-x631.google.com with SMTP id lc21so5823686ejc.7 for ; Wed, 08 Sep 2021 10:50:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:mail-followup-to:references :mime-version:content-disposition:in-reply-to; bh=vuSk6k+wa7pbmbqWvCvDdZqbC/SZgYreAXUEe3eNDTI=; b=CrZPXrbRVBTI1Aeeq3S3hJAKJib2O3JHOIozuY4W+uOWFio621qYyJ7hq1RO+8crgh wRDjLG+SqzqtDTHBtVhkPIB/T34XJ4owMRBT6j3Id9cEMkVbnt+iBJ9W3MQ+v4amOHmz gkeffzcDQEBIZk+ujoZFNjxsDJ1MuSZpSvfqA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to; bh=vuSk6k+wa7pbmbqWvCvDdZqbC/SZgYreAXUEe3eNDTI=; b=g+cJTgw65PUgOl6TLqT4SaipP5PxrThhiBbVauWFXjrFD7+Py/Foj2X2x74TvzpTq+ GjjgLlmxJiZ1B/Gh5yBnrYBY+GXQmTZmMOe7XJlDj+c8Z/lpdDYuI0vX+7A83ZromRN3 ylYVpNlhKyzYO+sOrBuv6/wjdoMa2RYxqt0pkbM/7xWrcRUsJLdNsrQvRSZ76GeMRCHY BKAGiqLfJeGNu6HgaYM1g0uro9qgMMKEms8BnUDBqEFFzn5M+HfyEFIbxuQFOOumUvGq ReBJesdjfRK2fWXeQy417a1AHtkC7F88ad2UQnYwBhognTakeeJjA3PFGbGFaooqs0I6 +WyA== X-Gm-Message-State: AOAM533j+bPDyIbxzPQkjZ9PJLtxtmYwvU49hQ/7RxpeBrlNnxbG1u1G 7hdOD65AtFzZuy5v7oqKZXeIJA== X-Received: by 2002:a17:906:c1d0:: with SMTP id bw16mr1160810ejb.146.1631123434349; Wed, 08 Sep 2021 10:50:34 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id w3sm1475271edc.42.2021.09.08.10.50.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Sep 2021 10:50:33 -0700 (PDT) Date: Wed, 8 Sep 2021 19:50:32 +0200 From: Daniel Vetter To: Rob Clark Cc: dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, Daniel Vetter , Christian =?iso-8859-1?Q?K=F6nig?= , Michel =?iso-8859-1?Q?D=E4nzer?= , Pekka Paalanen , Rob Clark , Sumit Semwal , Gustavo Padovan , Christian =?iso-8859-1?Q?K=F6nig?= , "open list:SYNC FILE FRAMEWORK" , open list Subject: Re: [PATCH v3 8/9] dma-buf/sync_file: Add SET_DEADLINE ioctl Message-ID: Mail-Followup-To: Rob Clark , dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, Christian =?iso-8859-1?Q?K=F6nig?= , Michel =?iso-8859-1?Q?D=E4nzer?= , Pekka Paalanen , Rob Clark , Sumit Semwal , Gustavo Padovan , Christian =?iso-8859-1?Q?K=F6nig?= , "open list:SYNC FILE FRAMEWORK" , open list References: <20210903184806.1680887-1-robdclark@gmail.com> <20210903184806.1680887-9-robdclark@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210903184806.1680887-9-robdclark@gmail.com> X-Operating-System: Linux phenom 5.10.0-8-amd64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 03, 2021 at 11:47:59AM -0700, Rob Clark wrote: > From: Rob Clark > > The initial purpose is for igt tests, but this would also be useful for > compositors that wait until close to vblank deadline to make decisions > about which frame to show. > > Signed-off-by: Rob Clark Needs userspace and I think ideally also some igts to make sure it works and doesn't go boom. -Daniel > --- > drivers/dma-buf/sync_file.c | 19 +++++++++++++++++++ > include/uapi/linux/sync_file.h | 20 ++++++++++++++++++++ > 2 files changed, 39 insertions(+) > > diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c > index 394e6e1e9686..f295772d5169 100644 > --- a/drivers/dma-buf/sync_file.c > +++ b/drivers/dma-buf/sync_file.c > @@ -459,6 +459,22 @@ static long sync_file_ioctl_fence_info(struct sync_file *sync_file, > return ret; > } > > +static int sync_file_ioctl_set_deadline(struct sync_file *sync_file, > + unsigned long arg) > +{ > + struct sync_set_deadline ts; > + > + if (copy_from_user(&ts, (void __user *)arg, sizeof(ts))) > + return -EFAULT; > + > + if (ts.pad) > + return -EINVAL; > + > + dma_fence_set_deadline(sync_file->fence, ktime_set(ts.tv_sec, ts.tv_nsec)); > + > + return 0; > +} > + > static long sync_file_ioctl(struct file *file, unsigned int cmd, > unsigned long arg) > { > @@ -471,6 +487,9 @@ static long sync_file_ioctl(struct file *file, unsigned int cmd, > case SYNC_IOC_FILE_INFO: > return sync_file_ioctl_fence_info(sync_file, arg); > > + case SYNC_IOC_SET_DEADLINE: > + return sync_file_ioctl_set_deadline(sync_file, arg); > + > default: > return -ENOTTY; > } > diff --git a/include/uapi/linux/sync_file.h b/include/uapi/linux/sync_file.h > index ee2dcfb3d660..f67d4ffe7566 100644 > --- a/include/uapi/linux/sync_file.h > +++ b/include/uapi/linux/sync_file.h > @@ -67,6 +67,18 @@ struct sync_file_info { > __u64 sync_fence_info; > }; > > +/** > + * struct sync_set_deadline - set a deadline on a fence > + * @tv_sec: seconds elapsed since epoch > + * @tv_nsec: nanoseconds elapsed since the time given by the tv_sec > + * @pad: must be zero > + */ > +struct sync_set_deadline { > + __s64 tv_sec; > + __s32 tv_nsec; > + __u32 pad; > +}; > + > #define SYNC_IOC_MAGIC '>' > > /** > @@ -95,4 +107,12 @@ struct sync_file_info { > */ > #define SYNC_IOC_FILE_INFO _IOWR(SYNC_IOC_MAGIC, 4, struct sync_file_info) > > + > +/** > + * DOC: SYNC_IOC_SET_DEADLINE - set a deadline on a fence > + * > + * Allows userspace to set a deadline on a fence, see dma_fence_set_deadline() > + */ > +#define SYNC_IOC_SET_DEADLINE _IOW(SYNC_IOC_MAGIC, 5, struct sync_set_deadline) > + > #endif /* _UAPI_LINUX_SYNC_H */ > -- > 2.31.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch