Revert "Revert SVM and XNACK support."

This reverts commit 5bd153974d.

Conflicts:
	opensrc/hsa-runtime/core/util/flag.h

Change-Id: I16daf41588e6139126d66af54b0693de2e7e39f3
This commit is contained in:
Sean Keely
2021-04-21 14:49:43 -05:00
parent 3127d1ffdc
commit 77046a1aaa
14 changed files with 852 additions and 10 deletions
+15
View File
@@ -56,6 +56,11 @@ class Flag {
public:
enum SDMA_OVERRIDE { SDMA_DISABLE, SDMA_ENABLE, SDMA_DEFAULT };
// The values are meaningful and chosen to satisfy the thunk API.
enum XNACK_REQUEST { XNACK_DISABLE = 0, XNACK_ENABLE = 1, XNACK_UNCHANGED = 2 };
static_assert(XNACK_DISABLE == 0, "XNACK_REQUEST enum values improperly changed.");
static_assert(XNACK_ENABLE == 1, "XNACK_REQUEST enum values improperly changed.");
explicit Flag() { Refresh(); }
virtual ~Flag() {}
@@ -136,6 +141,11 @@ class Flag {
var = os::GetEnvVar("HSA_IGNORE_SRAMECC_MISREPORT");
check_sramecc_validity_ = (var == "1") ? false : true;
// Legal values are zero "0" or one "1". Any other value will
// be interpreted as not defining the env variable.
var = os::GetEnvVar("HSA_XNACK");
xnack_ = (var == "0") ? XNACK_DISABLE : ((var == "1") ? XNACK_ENABLE : XNACK_UNCHANGED);
}
bool check_flat_scratch() const { return check_flat_scratch_; }
@@ -189,6 +199,8 @@ class Flag {
bool check_sramecc_validity() const { return check_sramecc_validity_; }
XNACK_REQUEST xnack() const { return xnack_; }
private:
bool check_flat_scratch_;
bool enable_vm_fault_message_;
@@ -222,6 +234,9 @@ class Flag {
size_t force_sdma_size_;
// Indicates user preference for Xnack state.
XNACK_REQUEST xnack_;
DISALLOW_COPY_AND_ASSIGN(Flag);
};