All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/todo: Better defio support in the generic fbdev emulation
@ 2019-01-07 10:22 Daniel Vetter
  2019-01-07 16:43 ` Noralf Trønnes
  0 siblings, 1 reply; 3+ messages in thread
From: Daniel Vetter @ 2019-01-07 10:22 UTC (permalink / raw)
  To: DRI Development; +Cc: Daniel Vetter, Daniel Vetter

The current one essentially means you need CMA or a vmalloc backed
object, which makes fbdev emulation a special case.

Since implementing this will be quite a bit of work, capture the idea
in a TODO.

Cc: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 Documentation/gpu/todo.rst | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
index 41da7b06195c..0a85dad876ae 100644
--- a/Documentation/gpu/todo.rst
+++ b/Documentation/gpu/todo.rst
@@ -209,6 +209,36 @@ Would be great to refactor this all into a set of small common helpers.
 
 Contact: Daniel Vetter
 
+Generic fbdev defio support
+---------------------------
+
+The defio support code in the fbdev core has some very specific requirements,
+which means drivers need to have a special framebuffer for fbdev. Which prevents
+us from using the generic fbdev emulation code everywhere. The main issue is
+that it uses some fields in struct page itself, which breaks shmem gem objects
+(and other things).
+
+Possible solution would be to write our own defio mmap code in the drm fbdev
+emulation. It would need to fully wrap the existing mmap ops, forwarding
+everything after it has done the write-protect/mkwrite trickery:
+
+- In the drm_fbdev_fb_mmap helper, if we need defio, change the
+  default page prots to write-protected with something like this::
+
+      vma->vm_page_prot = pgprot_wrprotect(vma->vm_page_prot);
+
+- Set the mkwrite and fsync callbacks with similar implementions to the core
+  fbdev defio stuff. These should all work on plain ptes, they don't actually
+  require a struct page.  uff. These should all work on plain ptes, they don't
+  actually require a struct page.
+
+- Track the dirty pages in a separate structure (bitfield with one bit per page
+  should work) to avoid clobbering struct page.
+
+Might be good to also have some igt testcases for this.
+
+Contact: Daniel Vetter, Noralf Tronnes
+
 Put a reservation_object into drm_gem_object
 --------------------------------------------
 
-- 
2.20.0.rc1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/todo: Better defio support in the generic fbdev emulation
  2019-01-07 10:22 [PATCH] drm/todo: Better defio support in the generic fbdev emulation Daniel Vetter
@ 2019-01-07 16:43 ` Noralf Trønnes
  2019-01-08  8:03   ` Daniel Vetter
  0 siblings, 1 reply; 3+ messages in thread
From: Noralf Trønnes @ 2019-01-07 16:43 UTC (permalink / raw)
  To: Daniel Vetter, DRI Development; +Cc: Daniel Vetter



Den 07.01.2019 11.22, skrev Daniel Vetter:
> The current one essentially means you need CMA or a vmalloc backed
> object, which makes fbdev emulation a special case.
> 
> Since implementing this will be quite a bit of work, capture the idea
> in a TODO.
> 
> Cc: Noralf Trønnes <noralf@tronnes.org>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---

Acked-by: Noralf Trønnes <noralf@tronnes.org>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] drm/todo: Better defio support in the generic fbdev emulation
  2019-01-07 16:43 ` Noralf Trønnes
@ 2019-01-08  8:03   ` Daniel Vetter
  0 siblings, 0 replies; 3+ messages in thread
From: Daniel Vetter @ 2019-01-08  8:03 UTC (permalink / raw)
  To: Noralf Trønnes; +Cc: Daniel Vetter, DRI Development, Daniel Vetter

On Mon, Jan 07, 2019 at 05:43:22PM +0100, Noralf Trønnes wrote:
> Den 07.01.2019 11.22, skrev Daniel Vetter:
> > The current one essentially means you need CMA or a vmalloc backed
> > object, which makes fbdev emulation a special case.
> > 
> > Since implementing this will be quite a bit of work, capture the idea
> > in a TODO.
> > 
> > Cc: Noralf Trønnes <noralf@tronnes.org>
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > ---
> 
> Acked-by: Noralf Trønnes <noralf@tronnes.org>

Thanks for taking a look, pushed to drm-misc-next.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-01-08  8:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-07 10:22 [PATCH] drm/todo: Better defio support in the generic fbdev emulation Daniel Vetter
2019-01-07 16:43 ` Noralf Trønnes
2019-01-08  8:03   ` Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.