<div id="geary-body" dir="auto"><div><br></div></div><div id="geary-quote" dir="auto"><br>On Thu, May 25 2023 at 08:13:43 AM -07:00:00, Lucas De Marchi <lucas.demarchi@intel.com> wrote:<br><blockquote type="cite"><div class="plaintext" style="white-space: break-spaces;">On Thu, May 25, 2023 at 01:24:55PM +0000, Jose Souza wrote:
<blockquote>Hi

Planning to push this today,
Christopher already have sent the Mesa MR and IGT patch series.
</blockquote>
the whole point of this series is being able to fix it without having to
synchronize with the mesa / media / igt / intel-compute updates. There
are some reordering in the structs that would better be done before
applying upstream and when that is done, then we need to sync all the
UMDs. But not for this.</div></blockquote><span style="white-space: break-spaces;"><div><span style="white-space: break-spaces;"><br></span></div><div><span style="white-space: break-spaces;">Unfortunately, all userspace software which is also built for multilib must synchronize with this change, or else their 32-bit userspace will simply fail. In my experience, apps consuming Mesa 32-bit without this change will fail spectacularly, often crashing on startup.</span></div><div><span style="white-space: break-spaces;"><br></span></div><div><span style="white-space: break-spaces;">I suppose only Mesa really matters, since most users won't be installing proprietary software that consumes 32-bit OpenCL or VA-API, but there may yet be cases for that. This is usually proprietary software, often involving use of Wine, such as Steam's Proton distribution.</span></div><br></span><blockquote type="cite"><div class="plaintext" style="white-space: break-spaces;">
Lucas De Marchi

<blockquote>It should not break 64 bits ABI but would be good to update intel-compute and media as well.

On Wed, 2023-05-24 at 18:56 -0700, Christopher Snowhill wrote:
<blockquote>This series takes off from mlankhorst's attempt to do the same, except
instead, it tries to be as minimally invasive to the original uAPI as
possible, by only inserting padding where appropriate to ensure all
32-bit members are 32-bit aligned, and all 64-bit members are 64-bit
aligned. This should have zero effect on 64-bit hosts versus 64-bit
userspace, so existing native software will operate the same with or
without the update. The only real change is 32-bit compat support for
multilib userspace, which was previously broken.

Also introduces field validation against all of the padding and
reserved fields, which must be zero, in a separate commit.

v2:
  Removed extensions checks where there were none originally. (José)
  Moved extraneous parentheses to the correct places. (Lucas)

Signed-off-by: Maarten Lankhorst <<a href="mailto:maarten.lankhorst@linux.intel.com">maarten.lankhorst@linux.intel.com</a>>
Signed-off-by: Christopher Snowhill <<a href="mailto:kode54@gmail.com">kode54@gmail.com</a>>

Christopher Snowhill (2):
  drm/xe: Add explicit padding to uAPI definition
  drm/xe: Validate uAPI padding and reserved fields

 drivers/gpu/drm/xe/xe_bo.c              |  6 +++--
 drivers/gpu/drm/xe/xe_engine.c          | 18 ++++++++++---
 drivers/gpu/drm/xe/xe_exec.c            |  4 ++-
 drivers/gpu/drm/xe/xe_mmio.c            |  3 ++-
 drivers/gpu/drm/xe/xe_query.c           |  3 ++-
 drivers/gpu/drm/xe/xe_sync.c            |  4 ++-
 drivers/gpu/drm/xe/xe_vm.c              | 22 +++++++++++++---
 drivers/gpu/drm/xe/xe_vm_madvise.c      |  4 ++-
 drivers/gpu/drm/xe/xe_wait_user_fence.c |  3 ++-
 include/uapi/drm/xe_drm.h               | 34 ++++++++++++++++++++++++-
 10 files changed, 85 insertions(+), 16 deletions(-)

</blockquote>
</blockquote></div></blockquote></div>