Refactor structure and add field to pass USM memory type.
To maintain backwards compatibility with current applications,
pass 0 as type for device allocations, and 1 for host
allocations.
Related-To: LOCI-3771
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
- Added support for mapping any portion of a virtual allocation to a
physical mapping with a lookup function for reserved virtual addresses.
- Added support for multiple mappings linked to the same virtual
reservation.
- Fixed bug with 64 bit addresses on windows with invalid addresses
passed to the user.
Related-To: LOCI-3904, LOCI-3914, LOCI-3931
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
1. Reposition event pool code
- Implementation of event pool methods should be placed in event pool file
2. Change event pool and event classes
- move all class variables to base classes as protected
- add needed setters and getters for runtime
- add extended mocks and whiteboxes for unit tests
- tests using base or mock class when needed
3. Correct event creation in unit tests
- use HW specific timestamp type
- HW unit tests are using template timestamp type for event creation
- other tests are using helper to create event
Related-To: NEO-7636
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
- remove double and triple free in open ipc event pool cleanup section
- correctly initialize device vector
Related-To: NEO-7636
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
Remote event pool is created with device list that configure max event packet
IPC context can have different device list and configure different
max event packet.
When these two numbers are different driver should not allow creation of
IPC event pool.
Related-To: NEO-7636
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
- using predefined structure adds security to enforce data limit
- code is simplified and easier to maintain or add new data fields
Related-To: NEO-7636
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
If the shared allocation hasn't been removed up to this point,
then remove it when freeing the pointer.
No need to check if ptr is still in the map, as erase would
automatically return 0 if not found.
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
- Given Device Allocated IPC Event Pool, the open IPC event pool process
must allocate the event pool as a device buffer or usage of the memory
will fail.
- Pass deviceAlloc flag thru the IPC Event Pool Handle to enable the
child processes to allocate the correct memory type.
- Pass isHostVisible flag thru IPCEvent Pool Handle to indicate if the
event pool must be allocated as host visible regardless of the
allocation type.
Related-To: LOCI-3764
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
- Given Device Allocated IPC Event Pool, the open IPC event pool process
must allocate the event pool as a device buffer or usage of the memory
will fail.
- Pass deviceAlloc flag thru the IPC Event Pool Handle to enable the
child processes to allocate the correct memory type.
- Pass isHostVisible flag thru IPCEvent Pool Handle to indicate if the
event pool must be allocated as host visible regardless of the
allocation type.
Related-To: LOCI-3764
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
Confirm the allocations used in an appendMemoryCopy operation
belong to the same context as the list.
Related-To: LOCI-1996
Resolves: NEO-6162
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
This to allow flexibilty on choosing the allocation type from the
callers in layers above on the driver.
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
Confirm the allocations used in an appendMemoryCopy operation
belong to the same context as the list.
Related-To: LOCI-1996
Resolves: NEO-6162
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
- Given Device Allocated IPC Event Pool, the open IPC event pool process
must allocate the event pool as a device buffer or usage of the memory
will fail.
- Pass deviceAlloc flag thru the IPC Event Pool Handle to enable the
child processes to allocate the correct memory type.
Related-To: LOCI-3764
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
This to follow specification, which says:
zeMemOpenIpcHandle:
- Multiple calls to this function with the same IPC handle will return
unique pointers.
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
- Enable support for L0 Virtual Memory reservation on Linux and Windows.
- Excludes support for Linux to allow pStart option
Related-To: LOCI-3397, LOCI-1543
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
If a handle cannot be obtained, like PRIME_HANDLE_TO_FD, then
properly check for the error and propagate it upwards.
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
If a handle cannot be obtained, like PRIME_HANDLE_TO_FD, then
properly check for the error and propagate it upwards.
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
This change replaces unneeded copying of std::vectors
with usage of const references. Furthermore, it adds
reserve() call before filling the container via push_back().
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
The size of this type is at least 64 bytes due to
ZE_MAX_IPC_HANDLE_SIZE. This change introduces usage
of const reference instead of copying.
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>