Hi Jim, Ben, and Zahra. I am sorry I didn’t catch this during the code review, but it’s really hard to keep track of all of the changes that are going on. https://review.gerrithub.io/#/c/spdk/spdk/+/402334/ As you may recall, we wanted to use spdk_malloc and spdk_calloc to abstract the POSIX malloc and calloc calls. This is still an issue in multiple places as we want a non-blocking malloc and calloc call that returns a status rather than setting errno (e.g. to ENOMEM). Remember, not all execution environments support errno. Can we revert change a77cd3f7, and use the spdk_malloc/calloc/free api for that purpose? Also, I don’t see the point of introducing an additional API for dma-able memory. We went through this once before. * a77cd3f7 2018-04-24 env: add malloc variants with DMA/shareable flags [ Ben Walker / z.khatami88(a)gmail.com ] * 8a44220b 2017-05-31 env: Rename spdk_malloc/zmalloc/realloc/free to spdk_dma_(func) [ Jim Harris / johnm(a)netapp.com ] I fully support adding the SPDK_MALLOC_DMA and SPDK_MALLOC_SHARE flag and socket_id to spdk_dma_malloc/zmalloc(), and I prefer to do this rather than invent a new API for allocating dma-able memory. void *spdk_dma_malloc(size_t size, size_t align, uint64_t *phys_addr); void *spdk_malloc(size_t size, size_t align, uint64_t *phys_addr, int socket_id, uint32_t flags); I’m proposing: void *spdk_dma_malloc(size_t size, size_t align, uint64_t *phys_addr, int socket_id, uint32_t flags); /John P.S. What I really need is a filter that allows me to watch all of the headers in include/spdk/{api}.h. Looking at the GerritHub documentation, I see no way to do this. It appears all I can do is watch the master branch. https://review.gerrithub.io/Documentation/intro-user.html#watch