forked from Minki/linux
drm/amdkfd: Fix sibling_map[] size
Change kfd_cache_properties.sibling_map[256] to kfd_cache_properties.sibling_map[32]. Since, CRAT uses bitmap for sibling_map, it is more efficient to use bitmap in the kfd structure also. Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com> Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
This commit is contained in:
parent
175b926335
commit
bc0c75a367
@ -263,7 +263,7 @@ static ssize_t kfd_cache_show(struct kobject *kobj, struct attribute *attr,
|
||||
char *buffer)
|
||||
{
|
||||
ssize_t ret;
|
||||
uint32_t i;
|
||||
uint32_t i, j;
|
||||
struct kfd_cache_properties *cache;
|
||||
|
||||
/* Making sure that the buffer is an empty string */
|
||||
@ -281,12 +281,18 @@ static ssize_t kfd_cache_show(struct kobject *kobj, struct attribute *attr,
|
||||
sysfs_show_32bit_prop(buffer, "latency", cache->cache_latency);
|
||||
sysfs_show_32bit_prop(buffer, "type", cache->cache_type);
|
||||
snprintf(buffer, PAGE_SIZE, "%ssibling_map ", buffer);
|
||||
for (i = 0; i < KFD_TOPOLOGY_CPU_SIBLINGS; i++)
|
||||
ret = snprintf(buffer, PAGE_SIZE, "%s%d%s",
|
||||
buffer, cache->sibling_map[i],
|
||||
(i == KFD_TOPOLOGY_CPU_SIBLINGS-1) ?
|
||||
"\n" : ",");
|
||||
|
||||
for (i = 0; i < CRAT_SIBLINGMAP_SIZE; i++)
|
||||
for (j = 0; j < sizeof(cache->sibling_map[0])*8; j++) {
|
||||
/* Check each bit */
|
||||
if (cache->sibling_map[i] & (1 << j))
|
||||
ret = snprintf(buffer, PAGE_SIZE,
|
||||
"%s%d%s", buffer, 1, ",");
|
||||
else
|
||||
ret = snprintf(buffer, PAGE_SIZE,
|
||||
"%s%d%s", buffer, 0, ",");
|
||||
}
|
||||
/* Replace the last "," with end of line */
|
||||
*(buffer + strlen(buffer) - 1) = 0xA;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -91,8 +91,6 @@ struct kfd_mem_properties {
|
||||
struct attribute attr;
|
||||
};
|
||||
|
||||
#define KFD_TOPOLOGY_CPU_SIBLINGS 256
|
||||
|
||||
#define HSA_CACHE_TYPE_DATA 0x00000001
|
||||
#define HSA_CACHE_TYPE_INSTRUCTION 0x00000002
|
||||
#define HSA_CACHE_TYPE_CPU 0x00000004
|
||||
@ -109,7 +107,7 @@ struct kfd_cache_properties {
|
||||
uint32_t cache_assoc;
|
||||
uint32_t cache_latency;
|
||||
uint32_t cache_type;
|
||||
uint8_t sibling_map[KFD_TOPOLOGY_CPU_SIBLINGS];
|
||||
uint8_t sibling_map[CRAT_SIBLINGMAP_SIZE];
|
||||
struct kobject *kobj;
|
||||
struct attribute attr;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user