On Tue, Mar 06, 2018 at 07:42:53AM +0100, Daniel Vetter wrote:
> On Tue, Mar 6, 2018 at 12:20 AM, Sean Paul <seanp...@chromium.org> wrote:
> > On Mon, Mar 5, 2018 at 12:10 AM, Daniel Vetter <dan...@ffwll.ch> wrote:
> >> On Fri, Mar 02, 2018 at 04:22:15PM -0500, Sean Paul wrote:
> >>> On Wed, Feb 28, 2018 at 3:34 PM, Sean Paul <seanp...@chromium.org> wrote:
> >>> >
> >>> > Hi Dave,
> >>> > Here's this weeks pull, relatively small when you pull out the trivial 
> >>> > fixes.
> >>> >
> >>> > drm-misc-next-2018-02-28:
> >>> > drm-misc-next for 4.17:
> >>> >
> >>> > UAPI Changes:
> >>> >  Fix drm_color_ctm matrix docs to match usage and change the type to
> >>> >  __u64 make it obvious (Ville)
> >>>
> >>> Hi Dave,
> >>> Could you please hold off on pulling this? I'd like to sort out this
> >>> change a bit more. We're already using the __s64 in chrome, and not
> >>> explicitly sign-magnitude. I think it would be prudent to hash this
> >>> out a little more.
> >>>
> >>> https://cs.chromium.org/chromium/src/ui/ozone/platform/drm/gpu/drm_device.cc?l=161
> >>
> >> That code seems to be doing the exact same fun s.u63 math. This all looks
> >> consistent to me.
> >
> > Hmm, yeah, I skimmed too quickly last week.
> >
> >>
> >> Now in hindsight ofc we've screwed up the uapi, but well can't fix that
> >> now again ...
> >
> > Yeah, I'm not convinced we should be changing the type. It's great to
> > clarify the documentation to let userspace know it's sign-magnitude,
> > but changing the type in-flight with users seems wrong.
> 
> But everyone must do unsigned bit ops to get this right, the s64 is
> completely meaningless at best, and very likely will confuse someone.

It's definitely a good change to clarify the usage of the field, I'm not arguing
against that.

> What do we benefit by not changing it? 

In the kernel, nothing. However changing uapi structs out from under userspace
requires userspace updates. In order for that to happen, they need to be
aware of the change and coordinate its rollout kernel/libdrm/compositor. At
least in CrOS, Chrome people don't follow kernel changes, so they'll discover
this with a compiler warning (hopefully) and have to backtrack what happened.

Given that everybody seems to be using this struct correctly, what do we benefit
from changing it? Wouldn't a comment be sufficient? Perhaps a union of
__s64/__u64 would be less disruptive.

Sean


> We know all the users and have
> the source, so we know that we won't hit another undefined corner of
> C, which is about the only real issue I can even imagine. UAPI isn't
> cast in stone, we simply have to make sure nothing breaks when we
> clarify/update/remove/whatever it.
> -Daniel
> 
> >
> > Sean
> >
> >> -Daniel
> >>
> >>>
> >>> Sean
> >>>
> >>> >
> >>> > Core Changes:
> >>> >  Check modifier with format when checking if a plane state is supported 
> >>> > (Ville)
> >>> >
> >>> > Driver Changes:
> >>> >  sun4i: Improve hw plane utilization (Maxime)
> >>> >  simple: Add per-pipe enable/disable vblank functions (Oleksandr)
> >>> >  virtio: Whitespace + checkpatch changes (Rodrigo)
> >>> >
> >>> > Cc: Maxime Ripard <maxime.rip...@bootlin.com>
> >>> > Cc: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com>
> >>> > Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
> >>> > Cc: Rodrigo Siqueira <rodrigosiqueiram...@gmail.com>
> >>> >
> >>> > Cheers, Sean
> >>> >
> >>> >
> >>> > The following changes since commit 
> >>> > 2b91e3c43b4f3d3cd4d84a31cfbe6b165d89b70e:
> >>> >
> >>> >   drm/omapdrm: Use of_find_backlight helper (2018-02-20 11:07:22 -0500)
> >>> >
> >>> > are available in the Git repository at:
> >>> >
> >>> >   git://anongit.freedesktop.org/drm/drm-misc 
> >>> > tags/drm-misc-next-2018-02-28
> >>> >
> >>> > for you to fetch changes up to 7628166d5e2883e4cdd142b99863d29d411a81b2:
> >>> >
> >>> >   tinydrm: add backlight dependency (2018-02-28 15:08:56 -0500)
> >>> >
> >>> > ----------------------------------------------------------------
> >>> > drm-misc-next for 4.17:
> >>> >
> >>> > UAPI Changes:
> >>> >  Fix drm_color_ctm matrix docs to match usage and change the type to
> >>> >  __u64 make it obvious (Ville)
> >>> >
> >>> > Core Changes:
> >>> >  Check modifier with format when checking if a plane state is supported 
> >>> > (Ville)
> >>> >
> >>> > Driver Changes:
> >>> >  sun4i: Improve hw plane utilization (Maxime)
> >>> >  simple: Add per-pipe enable/disable vblank functions (Oleksandr)
> >>> >  virtio: Whitespace + checkpatch changes (Rodrigo)
> >>> >
> >>> > Cc: Maxime Ripard <maxime.rip...@bootlin.com>
> >>> > Cc: Oleksandr Andrushchenko <oleksandr_andrushche...@epam.com>
> >>> > Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
> >>> > Cc: Rodrigo Siqueira <rodrigosiqueiram...@gmail.com>
> >>> >
> >>> > ----------------------------------------------------------------
> >>> > Arnd Bergmann (2):
> >>> >       drm: fix drm_get_max_iomem type mismatch
> >>> >       tinydrm: add backlight dependency
> >>> >
> >>> > Benjamin Gaignard (1):
> >>> >       drm/stm: check pitch and size calculations even if !CONFIG_MMU
> >>> >
> >>> > Chris Wilson (1):
> >>> >       drm/mm: Fix caching of leftmost node in the interval tree
> >>> >
> >>> > Linus Walleij (1):
> >>> >       drm/panel: Fix ARM Versatile panel clocks
> >>> >
> >>> > Maxime Ripard (4):
> >>> >       drm/sun4i: backend: Assign the pipes automatically
> >>> >       drm/sun4i: Remove the plane description structure
> >>> >       drm/sun4i: backend: Make zpos configurable
> >>> >       drm/sun4i: backend: Remove ARGB spoofing
> >>> >
> >>> > Oleksandr Andrushchenko (5):
> >>> >       drm/simple_kms_helper: Fix NULL pointer dereference with no 
> >>> > active CRTC
> >>> >       drm/simple_kms_helper: Add {enable|disable}_vblank callback 
> >>> > support
> >>> >       drm/mxsfb: Do not use deprecated 
> >>> > drm_driver.{enable|disable)_vblank
> >>> >       drm/tve200: Do not use deprecated 
> >>> > drm_driver.{enable|disable)_vblank
> >>> >       drm/pl111: Do not use deprecated 
> >>> > drm_driver.{enable|disable)_vblank
> >>> >
> >>> > Rodrigo Siqueira (7):
> >>> >       drm/virtio: Add tabs at the start of a line
> >>> >       drm/virtio: Add blank line after variable declarations
> >>> >       drm/virtio: Add */ in block comments to separate line
> >>> >       drm/virtio: Remove return from void function
> >>> >       drm/virtio: Replace 'unsigned' for 'unsigned int'
> >>> >       drm/virtio: Remove multiple blank lines
> >>> >       drm/virtio: Add spaces around operators
> >>> >
> >>> > Thierry Reding (1):
> >>> >       drm/pl111: Remove reverse dependency on DRM_DUMB_VGA_DAC
> >>> >
> >>> > Ville Syrjälä (4):
> >>> >       drm: Check that the plane supports the request format+modifier 
> >>> > combo
> >>> >       drm/i915: Remove the pipe/plane ID checks from 
> >>> > skl_check_ccs_aux_surface()
> >>> >       drm: Include the header with the prototype for 
> >>> > drm_get_panel_orientation_quirk()
> >>> >       drm/uapi: The ctm matrix uses sign-magnitude representation
> >>> >
> >>> >  drivers/gpu/drm/drm_atomic.c                   | 10 +++--
> >>> >  drivers/gpu/drm/drm_crtc.c                     | 10 +++--
> >>> >  drivers/gpu/drm/drm_crtc_internal.h            |  4 +-
> >>> >  drivers/gpu/drm/drm_memory.c                   |  2 +-
> >>> >  drivers/gpu/drm/drm_mm.c                       |  9 +++--
> >>> >  drivers/gpu/drm/drm_panel_orientation_quirks.c |  1 +
> >>> >  drivers/gpu/drm/drm_plane.c                    | 33 ++++++++++++----
> >>> >  drivers/gpu/drm/drm_simple_kms_helper.c        | 34 ++++++++++++----
> >>> >  drivers/gpu/drm/i915/intel_display.c           |  8 ----
> >>> >  drivers/gpu/drm/mxsfb/mxsfb_drv.c              | 54 
> >>> > +++++++++++++------------
> >>> >  drivers/gpu/drm/panel/panel-arm-versatile.c    |  8 ++--
> >>> >  drivers/gpu/drm/pl111/Kconfig                  |  1 -
> >>> >  drivers/gpu/drm/pl111/pl111_display.c          | 15 +++++--
> >>> >  drivers/gpu/drm/pl111/pl111_drm.h              |  2 -
> >>> >  drivers/gpu/drm/pl111/pl111_drv.c              |  5 ---
> >>> >  drivers/gpu/drm/stm/drv.c                      |  2 -
> >>> >  drivers/gpu/drm/sun4i/sun4i_backend.c          | 52 
> >>> > ++++++++++++++++++------
> >>> >  drivers/gpu/drm/sun4i/sun4i_layer.c            | 55 
> >>> > ++++++--------------------
> >>> >  drivers/gpu/drm/sun4i/sun4i_layer.h            |  1 +
> >>> >  drivers/gpu/drm/tinydrm/Kconfig                |  2 +
> >>> >  drivers/gpu/drm/tve200/tve200_display.c        | 10 ++++-
> >>> >  drivers/gpu/drm/tve200/tve200_drm.h            |  2 -
> >>> >  drivers/gpu/drm/tve200/tve200_drv.c            |  3 --
> >>> >  drivers/gpu/drm/virtio/virtgpu_display.c       |  7 ++--
> >>> >  drivers/gpu/drm/virtio/virtgpu_drv.c           |  2 +-
> >>> >  drivers/gpu/drm/virtio/virtgpu_drv.h           |  8 ++--
> >>> >  drivers/gpu/drm/virtio/virtgpu_fb.c            |  6 ++-
> >>> >  drivers/gpu/drm/virtio/virtgpu_gem.c           |  1 +
> >>> >  drivers/gpu/drm/virtio/virtgpu_ioctl.c         | 23 ++++++-----
> >>> >  drivers/gpu/drm/virtio/virtgpu_prime.c         |  4 +-
> >>> >  drivers/gpu/drm/virtio/virtgpu_ttm.c           |  4 +-
> >>> >  drivers/gpu/drm/virtio/virtgpu_vq.c            | 13 +++---
> >>> >  include/drm/drm_simple_kms_helper.h            | 18 +++++++++
> >>> >  include/uapi/drm/drm_mode.h                    |  7 +++-
> >>> >  34 files changed, 243 insertions(+), 173 deletions(-)
> >>> >
> >>> > --
> >>> > Sean Paul, Software Engineer, Google / Chromium OS
> >>
> >> --
> >> Daniel Vetter
> >> Software Engineer, Intel Corporation
> >> http://blog.ffwll.ch
> 
> 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch

-- 
Sean Paul, Software Engineer, Google / Chromium OS
_______________________________________________
dim-tools mailing list
dim-tools@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dim-tools

Reply via email to