mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: update device management framework to remove unusable engines
On certain platforms, not all copy engine instances are usable. The user shouldn't submit any work to these engines. To enforce this, remove these engines from active/host_engine list, this should ensure that these engines do not get advertised to userspace. In order to accomplish this introduce the following functions: - nvgpu_engine_remove_one_dev: This function removes the specified device entry from following device lists: fifo->host_engines, fifo->active_engines, runlist->rl_dev_list, runlist->eng_bitmask. Replace iteration over LCE device type entries using nvgpu_device_for_each(g, dev, NVGPU_DEVTYPE_LCE), along with this introduce macro nvgpu_device_for_each_safe. Introduce gpu_dbg_ce flag for CE debugging. Bug 3370462 Change-Id: I2e21f18363c6e53630d129da241c8fece106cd33 Signed-off-by: Antony Clince Alex <aalex@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2616711 Reviewed-by: Seema Khowala <seemaj@nvidia.com> Reviewed-by: Vaibhav Kachore <vkachore@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
mobile promotions
parent
79ee724b04
commit
cce1d7ad84
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
|
||||
* Copyright (c) 2020-2021, NVIDIA CORPORATION. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -277,10 +277,7 @@ static u32 nvgpu_device_do_get_copies(struct gk20a *g,
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < nvgpu_device_count(g, NVGPU_DEVTYPE_LCE); i++) {
|
||||
dev = nvgpu_device_get(g, NVGPU_DEVTYPE_LCE, i);
|
||||
nvgpu_assert(dev != NULL);
|
||||
|
||||
nvgpu_device_for_each(g, dev, NVGPU_DEVTYPE_LCE) {
|
||||
if (async_only &&
|
||||
dev->runlist_id == gr_dev->runlist_id) {
|
||||
/* It's a GRCE, skip it per async_only. */
|
||||
|
||||
Reference in New Issue
Block a user