Files
linux-nvgpu/drivers/gpu/nvgpu/os/linux/driver_common.h
shaochunk 7a65a3e636 gpu: nvgpu: support module parameters for devfreq
For POR like safety GPU, we may specify devfreq
timer and governor to keep GPU running with high
performance.

This change supports module parameters for
specifying devfreq governor and devfreq timer.

safety nvgpu module parameter example:
devfreq_timer="delayed" devfreq_gov="performance"

Regarding devfreq timers, a delayed timer can
ensure that the devfreq monitor polls on time.
However, a deferrable timer might potentially
cause a delay in polling time.

Regarding devfreq governors, the default governor
of nvgpu is nvhost_podgov, which scales the gpu
frequency based on GPU load reported by PMU.
Using the performance governor will keep the GPU
operating at a higher GPU frequency,
providing better performance.

Bug 4084478

Change-Id: I9dfef11648203c6af281e980d3a5790b36742414
Signed-off-by: shaochunk <shaochunk@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2978810
Reviewed-by: Divya Singhatwaria <dsinghatwari@nvidia.com>
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-10-23 05:09:38 -07:00

34 lines
1.0 KiB
C

/*
* Copyright (c) 2016-2023, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef NVGPU_LINUX_DRIVER_COMMON
#define NVGPU_LINUX_DRIVER_COMMON
extern int nvgpu_lpwr_enable;
extern char *nvgpu_devfreq_timer;
extern char *nvgpu_devfreq_gov;
struct gk20a;
int nvgpu_probe(struct gk20a *g,
const char *debugfs_symlink);
void nvgpu_init_gk20a(struct gk20a *g);
void nvgpu_read_support_gpu_tools(struct gk20a *g);
void nvgpu_devfreq_init(struct gk20a *g);
#endif