mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-04 03:58:27 +00:00 
			
		
		
		
	lib: Allow caller to use uint64_t sizes with intel_require_memory()
Allow the caller to ask how many extra large objects can be created and still fit into memory. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
		
							parent
							
								
									5c07135b7b
								
							
						
					
					
						commit
						8af62be2ad
					
				@ -86,11 +86,10 @@ uint64_t intel_get_avail_ram_mb(void);
 | 
			
		||||
uint64_t intel_get_total_ram_mb(void);
 | 
			
		||||
uint64_t intel_get_total_swap_mb(void);
 | 
			
		||||
 | 
			
		||||
void intel_require_memory(uint32_t count, uint32_t size, unsigned mode);
 | 
			
		||||
void intel_require_memory(uint32_t count, uint64_t size, unsigned mode);
 | 
			
		||||
#define CHECK_RAM 0x1
 | 
			
		||||
#define CHECK_SWAP 0x2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define min(a, b) ({			\
 | 
			
		||||
	typeof(a) _a = (a);		\
 | 
			
		||||
	typeof(b) _b = (b);		\
 | 
			
		||||
 | 
			
		||||
@ -215,7 +215,7 @@ intel_get_total_swap_mb(void)
 | 
			
		||||
 * assumption that any test that needs to check for memory requirements is a
 | 
			
		||||
 * thrashing test unsuitable for slow simulated systems.
 | 
			
		||||
 */
 | 
			
		||||
void intel_require_memory(uint32_t count, uint32_t size, unsigned mode)
 | 
			
		||||
void intel_require_memory(uint32_t count, uint64_t size, unsigned mode)
 | 
			
		||||
{
 | 
			
		||||
/* rough estimate of how many bytes the kernel requires to track each object */
 | 
			
		||||
#define KERNEL_BO_OVERHEAD 512
 | 
			
		||||
@ -225,8 +225,8 @@ void intel_require_memory(uint32_t count, uint32_t size, unsigned mode)
 | 
			
		||||
	required *= size + KERNEL_BO_OVERHEAD;
 | 
			
		||||
	required = ALIGN(required, 4096);
 | 
			
		||||
 | 
			
		||||
	igt_debug("Checking %u surfaces of size %u bytes (total %llu) against %s%s\n",
 | 
			
		||||
		  count, size, (long long)required,
 | 
			
		||||
	igt_debug("Checking %'u surfaces of size %'llu bytes (total %'llu) against %s%s\n",
 | 
			
		||||
		  count, (long long)size, (long long)required,
 | 
			
		||||
		  mode & (CHECK_RAM | CHECK_SWAP) ? "RAM" : "",
 | 
			
		||||
		  mode & CHECK_SWAP ? " + swap": "");
 | 
			
		||||
 | 
			
		||||
@ -238,7 +238,7 @@ void intel_require_memory(uint32_t count, uint32_t size, unsigned mode)
 | 
			
		||||
	total *= 1024 * 1024;
 | 
			
		||||
 | 
			
		||||
	igt_skip_on_f(total <= required,
 | 
			
		||||
		      "Estimated that we need %llu bytes for the test, but only have %llu bytes available (%s%s)\n",
 | 
			
		||||
		      "Estimated that we need %'llu bytes for the test, but only have %'llu bytes available (%s%s)\n",
 | 
			
		||||
		      (long long)required, (long long)total,
 | 
			
		||||
		      mode & (CHECK_RAM | CHECK_SWAP) ? "RAM" : "",
 | 
			
		||||
		      mode & CHECK_SWAP ? " + swap": "");
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user