Skip to content
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

Add support for Neuron and HabanaLabs devices #155

Merged
merged 4 commits into from
Apr 18, 2023

Conversation

mrgolin
Copy link
Contributor

@mrgolin mrgolin commented Jul 7, 2022

This PR adds abstraction layer for supporting various AI HW accelerators.

Add support for Neuron accelerator device memory usage.
To support Neuron, configure using --enable-neuron --with-neuron=<path/to/neuron/base>.
Run bandwidth tests with Neuron direct by specifying --use_neuron option.

Add support for Habana Labs accelerators device memory usage.
To support Habana Labs, configure using --enable-hl --with-hl=<habanalabs/installation/prefix>
Run bandwidth tests with Habana Labs direct by specifying --use_hl <pci_bus_id>.

@HassanKhadour
Copy link
Contributor

Hi @mrgolin , thanks for the pull request!
can you please add informative commit message ?

@mrgolin
Copy link
Contributor Author

mrgolin commented Jul 12, 2022

@HassanKhadour Thanks for taking a look!
I've updated the commit message to better explain the change and its use case.

configure.ac Outdated Show resolved Hide resolved
@gal-pressman
Copy link
Contributor

Copy-pasting the same concepts every time a new accelerator is introduced isn't very scalable, I would argue it's time to abstract these and have specific "hardware providers" implementations.

@rajachan
Copy link

rajachan commented Aug 2, 2022

Copy-pasting the same concepts every time a new accelerator is introduced isn't very scalable, I would argue it's time to abstract these and have specific "hardware providers" implementations.

+1, abstracting out the accelerator alloc/copy routines would make things maintainable for the individual benchmarks going forward.

@mrgolin
Copy link
Contributor Author

mrgolin commented Aug 10, 2022

@galpress @rajachan Agree it's about time for refactoring HW accelerators memory usage code. I'll take this on.

@mrgolin mrgolin changed the title Add support for Neuron devices Add support for Neuron and HabanaLabs devices Sep 18, 2022
@mrgolin
Copy link
Contributor Author

mrgolin commented Sep 18, 2022

I've added abstraction for various memory types as well as support for Habana Labs AI accelerators.
@galpress @rajachan @HassanKhadour I would appreciate your review.

@mrgolin
Copy link
Contributor Author

mrgolin commented Sep 18, 2022

@HassanKhadour Can you please share failing check results?

@HassanKhadour
Copy link
Contributor

Thanks Michael for your commit, Will try to review ASAP.
following the cppcheck failures:

Perftest_memory

@HassanKhadour
Copy link
Contributor

Hi Michael,
following the failure:

src/host_memory.c:68:26: style: Unused variable: host_ctx [unusedVariable]
12:14:56 struct host_memory_ctx *host_ctx;

@HassanKhadour
Copy link
Contributor

The check has been passed, reported wrong status, fixed it

@mrgolin
Copy link
Contributor Author

mrgolin commented Sep 19, 2022

Thanks!

@mrgolin
Copy link
Contributor Author

mrgolin commented Oct 23, 2022

@galpress @rajachan @HassanKhadour any comments will be appreciated.

@mrgolin
Copy link
Contributor Author

mrgolin commented Nov 24, 2022

How is that this PR is still waiting for review after we've been asked to refactor perftest accelerators memory support and at the same time commits are pushed directly to master adding a new memory type (Cuda dma-buf) in an old way, blowing the code, making it unmaintainable (exactly as @gal-pressman and @rajachan mentioned) and making this PR unmergeable?

8b66647
e589f4c
b0823b7
3115915

@HassanKhadour
Copy link
Contributor

Hi mrgolin,

We are sorry we weren't in the loop of the review from the beginning, we apologize about the inconvenience that is caused.
I want to ask @gal-pressman @rajachan who were in the loop if it would be okay if they rereview, I don't have any problem with merging this feature more than running few basic test in order to test its performance although I don't see any code that can possibly cause performance difference.
once having the needed review we can merge it and the dma_buf will be handled by me and @sshaulnv

@gal-pressman
Copy link
Contributor

I merely suggested it doesn't make sense that the same code is copy-pasted again and again.
Since you're already pushing other code that does it, might as well merge this one as well..

@mrgolin
Copy link
Contributor Author

mrgolin commented Nov 24, 2022

I merely suggested it doesn't make sense that the same code is copy-pasted again and again. Since you're already pushing other code that does it, might as well merge this one as well..

Gal, I actually did what you suggested (See 457fc46) and will appreciate if you can review this again.

Copy link

@rajachan rajachan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think I can review the Habana/Neuron bits. I do like the intent of the memory type abstraction commit, so I'd be fine merging it if you get sign offs on the other two commits.

src/cuda_memory.c Show resolved Hide resolved
src/cuda_memory.c Show resolved Hide resolved
configure.ac Outdated Show resolved Hide resolved
src/memory.h Show resolved Hide resolved
src/memory.h Outdated Show resolved Hide resolved
Copy link
Contributor

@HassanKhadour HassanKhadour left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your contribution.
The rdma_cm is damaged, getting segmentation fault after running with it.
Can you please fix it and address the comments ?

src/perftest_resources.c Show resolved Hide resolved
src/perftest_resources.c Show resolved Hide resolved
src/rocm_memory.h Show resolved Hide resolved
src/perftest_resources.c Show resolved Hide resolved
src/perftest_parameters.c Show resolved Hide resolved
}
pp_free_gpu(ctx);
for (i = 0; i < dereg_counter; i++) {
ctx->memory->free_buffer(ctx->memory, 0, ctx->buf[i], ctx->buff_size);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are u sure thats its making the exact behaviour for mmap?, before it did munmap for only the first qp, now for all

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that current mmap implementation can handle only num_of_qps=1 or mr_per_qp=false cases, see line 190:

	ctx->buf[0] = mmap(NULL, size, PROT_WRITE | PROT_READ, MAP_SHARED, fd,
			offset);

So dereg_counter should be equal to 1 in that case:

	dereg_counter = (user_param->mr_per_qp) ? user_param->num_of_qps : 1;

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that we must make it as the current implementation and refactor that after if needed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked this again and we are keeping same behavior as before for mmap.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How? I don't see perftest limit the number of qp's in case of mmap

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually it doesn't. It can be used with >1 qps and it doesn't explicitly limit number of allocated buffers.
But please see create_mr code (wasn't changed):

	if (create_single_mr(ctx, user_param, 0)) {
		fprintf(stderr, "failed to create mr\n");
		return 1;
	}

	/* create the rest if needed, or copy the first one */
	for (i = 1; i < user_param->num_of_qps; i++) {
		mr_index++;
		if (user_param->mr_per_qp) {
			if (create_single_mr(ctx, user_param, i)) {
				fprintf(stderr, "failed to create mr\n");
				goto destroy_mr;
			}
		} else {
			ALLOCATE(ctx->mr[i], struct ibv_mr, 1);
			memset(ctx->mr[i], 0, sizeof(struct ibv_mr));
			ctx->mr[i] = ctx->mr[0];
			// cppcheck-suppress arithOperationsOnVoidPointer
			ctx->buf[i] = ctx->buf[0] + (i*BUFF_SIZE(ctx->size, ctx->cycle_buffer));
		}
	}

If perftest ran w/o --mr_per_qp flag, only a single mr (and one buffer) will be created.

Otherwise for mmap case, both the original and the new code will create several mrs using mapping to same memory. Probably not a desired behavior.

src/memory.h Show resolved Hide resolved
src/host_memory.h Show resolved Hide resolved
@mrgolin
Copy link
Contributor Author

mrgolin commented Dec 21, 2022

Thanks for your contribution. The rdma_cm is damaged, getting segmentation fault after running with it. Can you please fix it and address the comments ?

Thanks for your review. We are currently not using rdma_cm, can you please share dmesg and any additional info that might help find the issue.

@HassanKhadour
Copy link
Contributor

Thanks for your contribution. The rdma_cm is damaged, getting segmentation fault after running with it. Can you please fix it and address the comments ?

Thanks for your review. We are currently not using rdma_cm, can you please share dmesg and any additional info that might help find the issue.

The segfault occurs in Client side.
I'll explain the flow that causes the segfault - e.g. for ib_write_bw:
establish_connection (line 120) --> rdma_client_connect --> ctx_init --> ctx->memory->init(ctx->memory)

But the ctx->memory still isn't initiated in this stage.

@mrgolin
Copy link
Contributor Author

mrgolin commented Jan 9, 2023

Thanks for your contribution. The rdma_cm is damaged, getting segmentation fault after running with it. Can you please fix it and address the comments ?

Thanks for your review. We are currently not using rdma_cm, can you please share dmesg and any additional info that might help find the issue.

The segfault occurs in Client side. I'll explain the flow that causes the segfault - e.g. for ib_write_bw: establish_connection (line 120) --> rdma_client_connect --> ctx_init --> ctx->memory->init(ctx->memory)

But the ctx->memory still isn't initiated in this stage.

Thanks for specifying the error flow. Fixed.

@mrgolin
Copy link
Contributor Author

mrgolin commented Jan 29, 2023

the use_cuda with rdma_cm is damaged, getting segmentation fault.

Thanks! I fixed a bug in perftest_communication, please report if there are other related issues.

@mrgolin
Copy link
Contributor Author

mrgolin commented Feb 6, 2023

@HassanKhadour If there are no additional comments can you please merge this PR?

@HassanKhadour
Copy link
Contributor

Hi @mrgolin , I had some additional comments on the code.
Sure we are working on merging the change and we have set a plan for it, but as you know its a huge change that touch all perftest code and we are trying to test everything in it.
Thanks

@mrgolin
Copy link
Contributor Author

mrgolin commented Feb 6, 2023

Hi @mrgolin , I had some additional comments on the code. Sure we are working on merging the change and we have set a plan for it, but as you know its a huge change that touch all perftest code and we are trying to test everything in it. Thanks

Thanks! Please keep me looped and let me know if I can help anyhow.

@HassanKhadour
Copy link
Contributor

Hi @mrgolin, Appreciate your help in testing the ROCm changes on devices that support ROCm & other vendor devices that supports RDMA, from our side I'm testing on Nvidia devices.
Also can u please answer the comments above?

Thanks

@sshaulnv
Copy link
Contributor

sshaulnv commented Feb 8, 2023

the use_cuda with rdma_cm, UD connection and bidirectional is damaged.
cmd for example: ./ib_send_bw --rdma_cm -c UD --bidirectional --use_cuda 0

@mrgolin
Copy link
Contributor Author

mrgolin commented Feb 26, 2023

the use_cuda with rdma_cm, UD connection and bidirectional is damaged.
cmd for example: ./ib_send_bw --rdma_cm -c UD --bidirectional --use_cuda 0

@sshaulnv Can you please share more details? If possible a backtrace or a coredump.

@mrgolin
Copy link
Contributor Author

mrgolin commented Feb 26, 2023

Hi @mrgolin, Appreciate your help in testing the ROCm changes on devices that support ROCm & other vendor devices that supports RDMA, from our side I'm testing on Nvidia devices.

Sorry for a delayed reply, we've tested with host memory, Habalabs, Neuron, Cuda w/ and w/o dmabuf.
Unfortunately I couldn't get access to AMD accelerators to fully test ROCm, but I did partial testing by replacing lib hip calls.

Also can u please answer the comments above?

Seems like I've already answered all comments.

@sshaulnv
Copy link
Contributor

the use_cuda with rdma_cm, UD connection and bidirectional is damaged.
cmd for example: ./ib_send_bw --rdma_cm -c UD --bidirectional --use_cuda 0

@sshaulnv Can you please share more details? If possible a backtrace or a coredump.

sure.
i just used the following commands:
server: ./ib_send_bw --rdma_cm -c UD --bidirectional --use_cuda 0
client: ./ib_send_bw --rdma_cm -c UD --bidirectional 11.237.149.43

backtrace:
Thread 1 "ib_send_bw" received signal SIGSEGV, Segmentation fault.
ibv_init_ah_from_wc (context=0x7ffff5303150, port_num=1 '\001', wc=wc@entry=0x7fffffffdba0, grh=0x7fffcb200000, ah_attr=ah_attr@entry=0x7fffffffdb50)
at /usr/src/debug/rdma-core-59mlnx44-1.fc32.59056.x86_64/libibverbs/verbs.c:934
934 set_ah_attr_generic_fields(ah_attr, wc, grh, port_num);
(gdb) bt
0 ibv_init_ah_from_wc (context=0x7ffff5303150, port_num=1 '\001', wc=wc@entry=0x7fffffffdba0, grh=0x7fffcb200000, ah_attr=ah_attr@entry=0x7fffffffdb50)
at /usr/src/debug/rdma-core-59mlnx44-1.fc32.59056.x86_64/libibverbs/verbs.c:934
1 0x00007ffff7dc31b8 in ibv_create_ah_from_wc (pd=0x447e80, wc=wc@entry=0x7fffffffdba0, grh=, port_num=)
at /usr/src/debug/rdma-core-59mlnx44-1.fc32.59056.x86_64/libibverbs/verbs.c:960
2 0x000000000040a459 in rdma_cm_initialize_ud_connection_parameters (ctx=ctx@entry=0x7fffffffe150, user_param=user_param@entry=0x7fffffffe300)
at src/perftest_communication.c:2115
3 0x000000000040aa4b in rdma_cm_connection_request_handler (ctx=0x7fffffffe150, user_param=0x7fffffffe300, cma_id=)
at src/perftest_communication.c:2397
4 0x000000000040ad07 in rdma_cm_connect_events (ctx=0x7fffffffe150, ctx@entry=0x7fffffffde90, user_param=user_param@entry=0x7fffffffe300)
at src/perftest_communication.c:2526
5 0x000000000040af2e in rdma_cm_server_connection (ctx=0x7fffffffde90, ctx@entry=0x7fffffffe150, user_param=user_param@entry=0x7fffffffe300,
hints=hints@entry=0x7fffffffdf40) at src/perftest_communication.c:2636
6 0x000000000040b353 in create_rdma_cm_connection (ctx=ctx@entry=0x7fffffffe150, user_param=user_param@entry=0x7fffffffe300,
comm=comm@entry=0x7fffffffe020, my_dest=my_dest@entry=0x4475e0, rem_dest=rem_dest@entry=0x447620) at src/perftest_communication.c:2761
7 0x00000000004053eb in main (argc=, argv=) at src/send_bw.c:268

@mrgolin
Copy link
Contributor Author

mrgolin commented Mar 9, 2023

the use_cuda with rdma_cm, UD connection and bidirectional is damaged.
cmd for example: ./ib_send_bw --rdma_cm -c UD --bidirectional --use_cuda 0

@sshaulnv Can you please share more details? If possible a backtrace or a coredump.

sure. i just used the following commands: server: ./ib_send_bw --rdma_cm -c UD --bidirectional --use_cuda 0 client: ./ib_send_bw --rdma_cm -c UD --bidirectional 11.237.149.43

backtrace: Thread 1 "ib_send_bw" received signal SIGSEGV, Segmentation fault. ibv_init_ah_from_wc (context=0x7ffff5303150, port_num=1 '\001', wc=wc@entry=0x7fffffffdba0, grh=0x7fffcb200000, ah_attr=ah_attr@entry=0x7fffffffdb50) at /usr/src/debug/rdma-core-59mlnx44-1.fc32.59056.x86_64/libibverbs/verbs.c:934 934 set_ah_attr_generic_fields(ah_attr, wc, grh, port_num); (gdb) bt 0 ibv_init_ah_from_wc (context=0x7ffff5303150, port_num=1 '\001', wc=wc@entry=0x7fffffffdba0, grh=0x7fffcb200000, ah_attr=ah_attr@entry=0x7fffffffdb50) at /usr/src/debug/rdma-core-59mlnx44-1.fc32.59056.x86_64/libibverbs/verbs.c:934 1 0x00007ffff7dc31b8 in ibv_create_ah_from_wc (pd=0x447e80, wc=wc@entry=0x7fffffffdba0, grh=, port_num=) at /usr/src/debug/rdma-core-59mlnx44-1.fc32.59056.x86_64/libibverbs/verbs.c:960 2 0x000000000040a459 in rdma_cm_initialize_ud_connection_parameters (ctx=ctx@entry=0x7fffffffe150, user_param=user_param@entry=0x7fffffffe300) at src/perftest_communication.c:2115 3 0x000000000040aa4b in rdma_cm_connection_request_handler (ctx=0x7fffffffe150, user_param=0x7fffffffe300, cma_id=) at src/perftest_communication.c:2397 4 0x000000000040ad07 in rdma_cm_connect_events (ctx=0x7fffffffe150, ctx@entry=0x7fffffffde90, user_param=user_param@entry=0x7fffffffe300) at src/perftest_communication.c:2526 5 0x000000000040af2e in rdma_cm_server_connection (ctx=0x7fffffffde90, ctx@entry=0x7fffffffe150, user_param=user_param@entry=0x7fffffffe300, hints=hints@entry=0x7fffffffdf40) at src/perftest_communication.c:2636 6 0x000000000040b353 in create_rdma_cm_connection (ctx=ctx@entry=0x7fffffffe150, user_param=user_param@entry=0x7fffffffe300, comm=comm@entry=0x7fffffffe020, my_dest=my_dest@entry=0x4475e0, rem_dest=rem_dest@entry=0x447620) at src/perftest_communication.c:2761 7 0x00000000004053eb in main (argc=, argv=) at src/send_bw.c:268

@sshaulnv you could simply mention that you have pushed a fix for this long existing issue (and this PR is not rebased on..) instead of letting me debug this and wonder how my unrelated changes could cause a segfault in this code.
(aeb15b1)

@mrgolin
Copy link
Contributor Author

mrgolin commented Mar 9, 2023

I'll rebase my code ones this commit is approved.

@sshaulnv
Copy link
Contributor

sshaulnv commented Mar 9, 2023

the use_cuda with rdma_cm, UD connection and bidirectional is damaged.
cmd for example: ./ib_send_bw --rdma_cm -c UD --bidirectional --use_cuda 0

@sshaulnv Can you please share more details? If possible a backtrace or a coredump.

sure. i just used the following commands: server: ./ib_send_bw --rdma_cm -c UD --bidirectional --use_cuda 0 client: ./ib_send_bw --rdma_cm -c UD --bidirectional 11.237.149.43
backtrace: Thread 1 "ib_send_bw" received signal SIGSEGV, Segmentation fault. ibv_init_ah_from_wc (context=0x7ffff5303150, port_num=1 '\001', wc=wc@entry=0x7fffffffdba0, grh=0x7fffcb200000, ah_attr=ah_attr@entry=0x7fffffffdb50) at /usr/src/debug/rdma-core-59mlnx44-1.fc32.59056.x86_64/libibverbs/verbs.c:934 934 set_ah_attr_generic_fields(ah_attr, wc, grh, port_num); (gdb) bt 0 ibv_init_ah_from_wc (context=0x7ffff5303150, port_num=1 '\001', wc=wc@entry=0x7fffffffdba0, grh=0x7fffcb200000, ah_attr=ah_attr@entry=0x7fffffffdb50) at /usr/src/debug/rdma-core-59mlnx44-1.fc32.59056.x86_64/libibverbs/verbs.c:934 1 0x00007ffff7dc31b8 in ibv_create_ah_from_wc (pd=0x447e80, wc=wc@entry=0x7fffffffdba0, grh=, port_num=) at /usr/src/debug/rdma-core-59mlnx44-1.fc32.59056.x86_64/libibverbs/verbs.c:960 2 0x000000000040a459 in rdma_cm_initialize_ud_connection_parameters (ctx=ctx@entry=0x7fffffffe150, user_param=user_param@entry=0x7fffffffe300) at src/perftest_communication.c:2115 3 0x000000000040aa4b in rdma_cm_connection_request_handler (ctx=0x7fffffffe150, user_param=0x7fffffffe300, cma_id=) at src/perftest_communication.c:2397 4 0x000000000040ad07 in rdma_cm_connect_events (ctx=0x7fffffffe150, ctx@entry=0x7fffffffde90, user_param=user_param@entry=0x7fffffffe300) at src/perftest_communication.c:2526 5 0x000000000040af2e in rdma_cm_server_connection (ctx=0x7fffffffde90, ctx@entry=0x7fffffffe150, user_param=user_param@entry=0x7fffffffe300, hints=hints@entry=0x7fffffffdf40) at src/perftest_communication.c:2636 6 0x000000000040b353 in create_rdma_cm_connection (ctx=ctx@entry=0x7fffffffe150, user_param=user_param@entry=0x7fffffffe300, comm=comm@entry=0x7fffffffe020, my_dest=my_dest@entry=0x4475e0, rem_dest=rem_dest@entry=0x447620) at src/perftest_communication.c:2761 7 0x00000000004053eb in main (argc=, argv=) at src/send_bw.c:268

@sshaulnv you could simply mention that you have pushed a fix for this long existing issue (and this PR is not rebased on..) instead of letting me debug this and wonder how my unrelated changes could cause a segfault in this code. (aeb15b1)

@alex--m sorry about that, I didn't remember making a fix for it.

@mrgolin
Copy link
Contributor Author

mrgolin commented Mar 15, 2023

Is there any additional blocker from merging this PR?

@HassanKhadour
Copy link
Contributor

Hi @mrgolin

Please rebase the code for the last time, we will give it the last testing cycle and merge it very soon.

Thanks

mrgolin and others added 3 commits March 22, 2023 09:50
Refactor perftest to allow easy extension for different memory types
(mainly for AI accelerators direct memory support).
Move existing implementations for DRAM (host memory), mmap, Cuda and ROCm
according to the new design.

Signed-off-by: Michael Margolin <[email protected]>
Add support for AWS Trainium devices via the AWS Neuron SDK.
AWS Neuron is a software stack for running ML applications using AWS's AI
hardware accelerators. Perftest support for Neuron allows testing of AI
accelerator direct memory usage by IB devices (in similar to CUDA).

To support Neuron, configure using --enable-neuron
--with-neuron=<path/to/neuron/base>.
Run bandwidth tests with Neuron direct by specifying
--use_neuron=<core_id> option.

Signed-off-by: Daniel Kranzdorf <[email protected]>
Signed-off-by: Michael Margolin <[email protected]>
To support Habana Labs, configure using --enable-hl
--with-hl=<habanalabs/installation/prefix>
Run bandwidth tests with Habana Labs direct by specifying
--use_hl <pci_bus_id>.

Signed-off-by: Michael Margolin <[email protected]>
@mrgolin
Copy link
Contributor Author

mrgolin commented Mar 22, 2023

Hi @mrgolin

Please rebase the code for the last time, we will give it the last testing cycle and merge it very soon.

Thanks

Rebased. Thanks.

#ifdef HAVE_CUDA_DMABUF
if (user_param->use_cuda_dmabuf) {
free(ctx->cuda_buf_dmabuf_fd);
free(ctx->cuda_buf_dmabuf_offset);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I missed it, but I can't find the memory release of 'dmabuf_offset'

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is now a local variable set by allocate_buffer() and passed into ibv_reg_dmabuf_mr().

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sshaulnv Is this more clear now?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, thanks

@mrgolin
Copy link
Contributor Author

mrgolin commented Apr 3, 2023

Please rebase the code for the last time, we will give it the last testing cycle and merge it very soon.

@HassanKhadour
Hi, any progress with this?

@HassanKhadour
Copy link
Contributor

Hi @mrgolin, Please check @sshaulnv comment

@mrgolin
Copy link
Contributor Author

mrgolin commented Apr 17, 2023

Hi @mrgolin, Please check @sshaulnv comment

AFAIU all comments were addressed.
Can we merge this?

@HassanKhadour
Copy link
Contributor

There is this comment from @sshaulnv "Maybe I missed it, but I can't find the memory release of 'dmabuf_offset'"
image

@mrgolin
Copy link
Contributor Author

mrgolin commented Apr 17, 2023

There is this comment from @sshaulnv "Maybe I missed it, but I can't find the memory release of 'dmabuf_offset'" image

Ohh.. sorry forgot to submit.

@HassanKhadour HassanKhadour merged commit 2ddba27 into linux-rdma:master Apr 18, 2023
@HassanKhadour
Copy link
Contributor

@mrgolin Thanks for your contribution!

@mrgolin
Copy link
Contributor Author

mrgolin commented Apr 20, 2023

Thanks for the review!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants