Re: [PATCH v5 17/19] drm/i915: Wa32bitGeneralStateOffset & Wa32bitInstructionBaseOffset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/28/2015 3:43 PM, Chris Wilson wrote:
On Tue, Jul 28, 2015 at 12:12:11PM +0100, Michel Thierry wrote:
On 7/27/2015 10:11 PM, Chris Wilson wrote:
On Thu, Jul 16, 2015 at 10:33:29AM +0100, Michel Thierry wrote:
+	if (!(entry->flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS) &&
+	    (vma->node.start + vma->node.size) >= (1ULL << 32))
+		return true;

gcc completely screwed this up here and used 0 for 1ULL<<32.

Note that we can allow state + size == 4G (since the end is exclusive),
so I went with

   if ((entry->flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS) == 0 &&
       (vma->node.start + vma->node.size - 1) >> 32)
          return true;

instead.
-Chris


Thanks, I'll include this change in the next patch version.

I've also got a couple of other stylistic changes, plus an earlier
request:
...
I updated my patch with these changes, thanks.

diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 209e8e2b07be..78fc8810d6e0 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -680,8 +680,8 @@ eb_vma_misplaced(struct i915_vma *vma)
         if (entry->flags & __EXEC_OBJECT_NEEDS_MAP && !obj->map_and_fenceable)
                 return !only_mappable_for_reloc(entry->flags);

-       if (!(entry->flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS) &&
-           (vma->node.start + vma->node.size) >= (1ULL << 32))
+       if ((entry->flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS) == 0 &&
+           (vma->node.start + vma->node.size - 1) >> 32)
                 return true;

         return false;

Also updated this part to follow your suggestion.

I also spent a bit more time trying to figure what gcc was doing here. But I can't reproduce it locally, I get sizeof(1ULL<<32) = 8 and 1ULL<<32 doesn't seem to be zero (in 32 and 64 bit kernels).

Could it be related to the gcc version? I'm using 4.8.4.

-Michel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux