From ba1d95a1d460e0241d21561194c4cd06e518f329 Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Tue, 4 Dec 2018 15:41:55 +1100 Subject: npu2: Add XTS_BDF_MAP wildcard refcount Currently PID wildcard is programmed into the NPU once and never cleared up. This works for the bare metal as MSR does not change while the host OS is running. However with the device virtualization, we need to keep track of wildcard entries use and clear them up before switching a GPU from a host to a guest or vice versa. This adds refcount to a NPU2, one counter per wildcard entry. The index is a short lparid (4 bits long) which is allocated in opal_npu_map_lpar() and should be smaller than NPU2_XTS_BDF_MAP_SIZE (defined as 16). Signed-off-by: Alexey Kardashevskiy Acked-by: Reza Arbab Signed-off-by: Stewart Smith --- include/npu2.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/npu2.h') diff --git a/include/npu2.h b/include/npu2.h index 0e79e0e..cfa3b1f 100644 --- a/include/npu2.h +++ b/include/npu2.h @@ -19,6 +19,7 @@ #include #include +#include /* Debugging options */ #define NPU2DBG(p, fmt, a...) prlog(PR_DEBUG, "NPU%d: " fmt, \ @@ -158,6 +159,7 @@ struct npu2 { uint32_t total_devices; struct npu2_dev *devices; enum phys_map_type gpu_map_type; + int ctx_ref[NPU2_XTS_BDF_MAP_SIZE]; /* IODA cache */ uint64_t tve_cache[16]; -- cgit v1.1