mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-02-27 10:23:59 +00:00
545.23.06
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user