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:
Chris Wilson 2015-08-14 14:04:54 +01:00
parent 5c07135b7b
commit 8af62be2ad
2 changed files with 5 additions and 6 deletions

View File

@ -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); \

View File

@ -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": "");