545.23.06

This commit is contained in:
Andy Ritger
2023-10-17 09:25:29 -07:00
parent f59818b751
commit b5bf85a8e3
917 changed files with 132480 additions and 110015 deletions

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: Copyright (c) 1999-2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-FileCopyrightText: Copyright (c) 1999-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -977,13 +977,9 @@ numa_is_change_allowed(nv_numa_status_t current_state, nv_numa_status_t requeste
static NV_STATUS
numa_status_read(
nv_state_t *nv,
nv_stack_t *sp,
NvS32 *nid,
NvS32 *status,
NvU64 *numa_mem_addr,
NvU64 *numa_mem_size,
nv_offline_addresses_t *list
nv_state_t *nv,
nv_stack_t *sp,
nv_ioctl_numa_info_t *numa_info
)
{
NV_STATUS rm_status;
@@ -1000,24 +996,17 @@ numa_status_read(
{
if (nv_platform_supports_numa(nvl))
{
*nid = nvl->numa_info.node_id;
*status = nv_get_numa_status(nvl);
*numa_mem_addr = 0;
*numa_mem_size = 0;
memset(list, 0x0, sizeof(*list));
memset(numa_info, 0x0, sizeof(*numa_info));
numa_info->nid = nvl->numa_info.node_id;
numa_info->status = nv_get_numa_status(nvl);
}
rm_status = NV_ERR_NOT_READY;
goto done;
}
list->numEntries = ARRAY_SIZE(list->addresses);
rm_status = rm_get_gpu_numa_info(sp, nv,
nid, numa_mem_addr, numa_mem_size,
list->addresses, &list->numEntries);
if (rm_status == NV_OK && *nid == NUMA_NO_NODE)
rm_status = rm_get_gpu_numa_info(sp, nv, numa_info);
if (rm_status == NV_OK && numa_info->nid == NUMA_NO_NODE)
{
//
// RM returns NUMA_NO_NODE when running MIG instances because
@@ -1033,7 +1022,7 @@ numa_status_read(
//
rm_status = NV_ERR_NOT_SUPPORTED;
}
*status = nv_get_numa_status(nvl);
numa_info->status = nv_get_numa_status(nvl);
done:
up(&nvl->ldata_lock);
@@ -1049,18 +1038,15 @@ nv_procfs_read_offline_pages(
NvU32 i;
int retval = 0;
NV_STATUS rm_status;
nv_ioctl_numa_info_t numa_info;
nv_ioctl_numa_info_t numa_info = { 0 };
nv_procfs_private_t *nvpp = s->private;
nv_stack_t *sp = nvpp->sp;
nv_state_t *nv = nvpp->nv;
rm_status = numa_status_read(nv, sp,
&numa_info.nid,
&numa_info.status,
&numa_info.numa_mem_addr,
&numa_info.numa_mem_size,
&numa_info.offline_addresses);
numa_info.offline_addresses.numEntries =
ARRAY_SIZE(numa_info.offline_addresses.addresses);
rm_status = numa_status_read(nv, sp, &numa_info);
if (rm_status != NV_OK)
return -EIO;
@@ -1131,18 +1117,17 @@ nv_procfs_read_numa_status(
{
int retval = 0;
NV_STATUS rm_status;
nv_ioctl_numa_info_t numa_info;
nv_ioctl_numa_info_t numa_info = { 0 };
nv_procfs_private_t *nvpp = s->private;
nv_stack_t *sp = nvpp->sp;
nv_state_t *nv = nvpp->nv;
rm_status = numa_status_read(nv, sp,
&numa_info.nid,
&numa_info.status,
&numa_info.numa_mem_addr,
&numa_info.numa_mem_size,
&numa_info.offline_addresses);
/*
* Note: we leave numa_info.offline_addresses.numEntries as 0, so that
* the numa_status_read() callchain doesn't perform expensive page
* querying that we don't need here.
*/
rm_status = numa_status_read(nv, sp, &numa_info);
if ((rm_status != NV_OK) && (rm_status != NV_ERR_NOT_READY))
return -EIO;