Skip to content

IPC API of the devdax provider does not work (IPC tests segfault) #846

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ldorau opened this issue Oct 29, 2024 · 4 comments · Fixed by #838
Closed

IPC API of the devdax provider does not work (IPC tests segfault) #846

ldorau opened this issue Oct 29, 2024 · 4 comments · Fixed by #838
Assignees
Labels
bug Something isn't working

Comments

@ldorau
Copy link
Contributor

ldorau commented Oct 29, 2024

IPC API of the devdax provider does not work (IPC tests segfault).

Ref: #845

Environment Information

  • UMF version (hash commit or a tag): b3bbdd4
  • OS(es) version(s): Linux

Please provide a reproduction of the bug:

See: #845
See: https://github.com/oneapi-src/unified-memory-framework/actions/runs/11570564552/job/32206622019

How often bug is revealed:

always

@ldorau ldorau added the bug Something isn't working label Oct 29, 2024
@ldorau
Copy link
Contributor Author

ldorau commented Oct 29, 2024

@vinser52

@ldorau ldorau self-assigned this Oct 29, 2024
@ldorau
Copy link
Contributor Author

ldorau commented Oct 29, 2024

The fix is in progress (WIP): #838

@ldorau
Copy link
Contributor Author

ldorau commented Oct 30, 2024

@bratpiorka @lplewa

ldorau added a commit to ldorau/unified-memory-framework that referenced this issue Oct 30, 2024
devdax_open_ipc_handle() has to use the path of the remote
/dev/dax got from the IPC handle, not the local one.

devdax_open_ipc_handle() has to use also the memory protection
got from the IPC handle, so let's add the memory protection
to the IPC handle.

devdax_open_ipc_handle() should mmap only the required range of memory,
not the whole /dev/dax device, so let's add the length of the allocation
to the IPC handle.

devdax_close_ipc_handle() should unmap only the required range of memory,
not the whole /dev/dax device.

Fixes: oneapi-src#846

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
ldorau added a commit to ldorau/unified-memory-framework that referenced this issue Oct 30, 2024
devdax_open_ipc_handle() has to use the path of the remote
/dev/dax got from the IPC handle, not the local one.

devdax_open_ipc_handle() has to use also the memory protection
got from the IPC handle, so let's add the memory protection
to the IPC handle.

devdax_open_ipc_handle() should mmap only the required range of memory,
not the whole /dev/dax device, so let's add the length of the allocation
to the IPC handle.

devdax_close_ipc_handle() should unmap only the required range of memory,
not the whole /dev/dax device.

Fixes: oneapi-src#846

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
@ldorau
Copy link
Contributor Author

ldorau commented Oct 30, 2024

The fix is ready: #838

ldorau added a commit to ldorau/unified-memory-framework that referenced this issue Oct 31, 2024
devdax_open_ipc_handle() has to use the path of the remote
/dev/dax got from the IPC handle, not the local one.

devdax_open_ipc_handle() has to use also the memory protection
got from the IPC handle, so let's add the memory protection
to the IPC handle.

devdax_open_ipc_handle() should mmap only the required range of memory,
not the whole /dev/dax device, so let's add the length of the allocation
to the IPC handle.

devdax_close_ipc_handle() should unmap only the required range of memory,
not the whole /dev/dax device.

Fixes: oneapi-src#846

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
ldorau added a commit to ldorau/unified-memory-framework that referenced this issue Oct 31, 2024
devdax_open_ipc_handle() has to use the path of the remote
/dev/dax got from the IPC handle, not the local one.

devdax_open_ipc_handle() has to use also the memory protection
got from the IPC handle, so let's add the memory protection
to the IPC handle.

devdax_open_ipc_handle() should mmap only the required range of memory,
not the whole /dev/dax device, so let's add the length of the allocation
to the IPC handle.

devdax_close_ipc_handle() should unmap only the required range of memory,
not the whole /dev/dax device.

Fixes: oneapi-src#846

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
ldorau added a commit to ldorau/unified-memory-framework that referenced this issue Oct 31, 2024
devdax_open_ipc_handle() has to use the path of the remote
/dev/dax got from the IPC handle, not the local one.

devdax_open_ipc_handle() has to use also the memory protection
got from the IPC handle, so let's add the memory protection
to the IPC handle.

devdax_open_ipc_handle() should mmap only the required range of memory,
not the whole /dev/dax device, so let's add the length of the allocation
to the IPC handle.

devdax_close_ipc_handle() should unmap only the required range of memory,
not the whole /dev/dax device.

Fixes: oneapi-src#846

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant