mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-25 13:33:02 +08:00
feature: Pass cookie in vmBindExt
Provide cookie in vmBindExt, so that information about deviceBitField could be provided to vmBind. This information could be used in debugUMD code to to create grouping of ISA segments on different tiles. Related-To: NEO-11104 Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
86ecbf3507
commit
322089fa5f
@@ -1427,7 +1427,7 @@ int changeBufferObjectBinding(Drm *drm, OsContext *osContext, uint32_t vmHandleI
|
||||
if (bind) {
|
||||
bool allowUUIDsForDebug = !osContext->isInternalEngine() && !EngineHelpers::isBcs(osContext->getEngineType());
|
||||
if (bo->getBindExtHandles().size() > 0 && allowUUIDsForDebug) {
|
||||
extensions = ioctlHelper->prepareVmBindExt(bo->getBindExtHandles());
|
||||
extensions = ioctlHelper->prepareVmBindExt(bo->getBindExtHandles(), vmHandleId);
|
||||
}
|
||||
bool bindCapture = bo->isMarkedForCapture();
|
||||
bool bindImmediate = bo->isImmediateBindingRequired();
|
||||
|
||||
@@ -132,7 +132,7 @@ class IoctlHelper {
|
||||
virtual bool setGemTiling(void *setTiling) = 0;
|
||||
virtual bool getGemTiling(void *setTiling) = 0;
|
||||
virtual uint32_t getDirectSubmissionFlag() = 0;
|
||||
virtual std::unique_ptr<uint8_t[]> prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles) = 0;
|
||||
virtual std::unique_ptr<uint8_t[]> prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles, uint32_t vmHandleId) = 0;
|
||||
virtual uint64_t getFlagsForVmBind(bool bindCapture, bool bindImmediate, bool bindMakeResident, bool bindLockedMemory, bool readOnlyResource) = 0;
|
||||
virtual int queryDistances(std::vector<QueryItem> &queryItems, std::vector<DistanceInfo> &distanceInfos) = 0;
|
||||
virtual uint16_t getWaitUserFenceSoftFlag() = 0;
|
||||
@@ -300,7 +300,7 @@ class IoctlHelperUpstream : public IoctlHelperI915 {
|
||||
bool setVmBoAdviseForChunking(int32_t handle, uint64_t start, uint64_t length, uint32_t attribute, void *region) override;
|
||||
bool setVmPrefetch(uint64_t start, uint64_t length, uint32_t region, uint32_t vmId) override;
|
||||
uint32_t getDirectSubmissionFlag() override;
|
||||
std::unique_ptr<uint8_t[]> prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles) override;
|
||||
std::unique_ptr<uint8_t[]> prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles, uint32_t vmHandleId) override;
|
||||
uint64_t getFlagsForVmBind(bool bindCapture, bool bindImmediate, bool bindMakeResident, bool bindLockedMemory, bool readOnlyResource) override;
|
||||
int queryDistances(std::vector<QueryItem> &queryItems, std::vector<DistanceInfo> &distanceInfos) override;
|
||||
uint16_t getWaitUserFenceSoftFlag() override;
|
||||
@@ -377,7 +377,7 @@ class IoctlHelperPrelim20 : public IoctlHelperI915 {
|
||||
bool setVmBoAdviseForChunking(int32_t handle, uint64_t start, uint64_t length, uint32_t attribute, void *region) override;
|
||||
bool setVmPrefetch(uint64_t start, uint64_t length, uint32_t region, uint32_t vmId) override;
|
||||
uint32_t getDirectSubmissionFlag() override;
|
||||
std::unique_ptr<uint8_t[]> prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles) override;
|
||||
std::unique_ptr<uint8_t[]> prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles, uint32_t vmHandleId) override;
|
||||
uint64_t getFlagsForVmBind(bool bindCapture, bool bindImmediate, bool bindMakeResident, bool bindLockedMemory, bool readOnlyResource) override;
|
||||
int queryDistances(std::vector<QueryItem> &queryItems, std::vector<DistanceInfo> &distanceInfos) override;
|
||||
uint16_t getWaitUserFenceSoftFlag() override;
|
||||
|
||||
@@ -495,7 +495,7 @@ bool IoctlHelperPrelim20::completionFenceExtensionSupported(const bool isVmBindA
|
||||
return isVmBindAvailable;
|
||||
}
|
||||
|
||||
std::unique_ptr<uint8_t[]> IoctlHelperPrelim20::prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles) {
|
||||
std::unique_ptr<uint8_t[]> IoctlHelperPrelim20::prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles, uint32_t vmHandleId) {
|
||||
static_assert(std::is_trivially_destructible_v<prelim_drm_i915_vm_bind_ext_uuid>,
|
||||
"Storage must be allowed to be reused without calling the destructor!");
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@ uint32_t IoctlHelperUpstream::getDirectSubmissionFlag() {
|
||||
return 0u;
|
||||
}
|
||||
|
||||
std::unique_ptr<uint8_t[]> IoctlHelperUpstream::prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles) {
|
||||
std::unique_ptr<uint8_t[]> IoctlHelperUpstream::prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles, uint32_t vmHandleId) {
|
||||
return {};
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ class IoctlHelperXe : public IoctlHelper {
|
||||
bool setGemTiling(void *setTiling) override;
|
||||
bool getGemTiling(void *setTiling) override;
|
||||
uint32_t getDirectSubmissionFlag() override;
|
||||
std::unique_ptr<uint8_t[]> prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles) override;
|
||||
std::unique_ptr<uint8_t[]> prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles, uint32_t vmHandleId) override;
|
||||
uint64_t getFlagsForVmBind(bool bindCapture, bool bindImmediate, bool bindMakeResident, bool bindLock, bool readOnlyResource) override;
|
||||
virtual std::string xeGetBindFlagNames(int bindFlags);
|
||||
int queryDistances(std::vector<QueryItem> &queryItems, std::vector<DistanceInfo> &distanceInfos) override;
|
||||
|
||||
@@ -104,7 +104,7 @@ void IoctlHelperXe::unregisterResource(uint32_t handle) {
|
||||
PRINT_DEBUGGER_INFO_LOG("DRM_XE_DEBUG_METADATA_DESTROY: id=%llu\n", metadata.metadataId);
|
||||
}
|
||||
|
||||
std::unique_ptr<uint8_t[]> IoctlHelperXe::prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles) {
|
||||
std::unique_ptr<uint8_t[]> IoctlHelperXe::prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles, uint32_t vmHandleId) {
|
||||
|
||||
static_assert(std::is_trivially_destructible_v<VmBindOpExtAttachDebug>,
|
||||
"Storage must be allowed to be reused without calling the destructor!");
|
||||
@@ -121,12 +121,13 @@ std::unique_ptr<uint8_t[]> IoctlHelperXe::prepareVmBindExt(const StackVec<uint32
|
||||
|
||||
extensions[0].metadataId = bindExtHandles[0];
|
||||
extensions[0].base.name = euDebugInterface->getParamValue(EuDebugParam::vmBindOpExtensionsAttachDebug);
|
||||
extensions[0].cookie = vmHandleId;
|
||||
|
||||
for (size_t i = 1; i < bindExtHandles.size(); i++) {
|
||||
extensions[i - 1].base.nextExtension = reinterpret_cast<uint64_t>(&extensions[i]);
|
||||
extensions[i].metadataId = bindExtHandles[i];
|
||||
extensions[i].base.name = euDebugInterface->getParamValue(EuDebugParam::vmBindOpExtensionsAttachDebug);
|
||||
;
|
||||
extensions[i].cookie = vmHandleId;
|
||||
}
|
||||
return extensionsBuffer;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ void IoctlHelperXe::unregisterResource(uint32_t handle) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
}
|
||||
|
||||
std::unique_ptr<uint8_t[]> IoctlHelperXe::prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles) {
|
||||
std::unique_ptr<uint8_t[]> IoctlHelperXe::prepareVmBindExt(const StackVec<uint32_t, 2> &bindExtHandles, uint32_t vmHandleId) {
|
||||
return {};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user