Comments (6)
Hi,
xio_mempool_alloc and xio_mempool_free are thread safe. xio_mempool_add_slab is not thread safe.
Katya
from accelio.
However, I test mempool to alloc very tiny message in a very small slab grow number will cause segment fault.
The whole code like this.
#include <libxio.h>
#include <pthread.h>
#include <stdlib.h>
#include <time.h>
#include <assert.h>
const size_t thread_cnt = 10;
const size_t alloc_size_limit=256;
const size_t iteration_cnt = 100000;
void * test_mempool(void* pool_) {
struct xio_mempool* mempool = (struct xio_mempool*)(pool_);
size_t i;
size_t alloc_size;
int retv;
struct xio_reg_mem obj;
for(i=0; i<iteration_cnt; ++i) {
alloc_size = rand() % alloc_size_limit +1;
retv = xio_mempool_alloc(mempool, alloc_size, &obj);
assert(retv == 0);
*(char *)(obj.addr) = '1';
xio_mempool_free(&obj);
}
return NULL;
}
int main(){
size_t i;
struct xio_mempool* mempool;
pthread_t threads[thread_cnt];
void* status;
srand(time(0));
xio_init();
mempool = xio_mempool_create(-1,
XIO_MEMPOOL_FLAG_REG_MR|XIO_MEMPOOL_FLAG_USE_SMALLEST_SLAB);
xio_mempool_add_slab(mempool, alloc_size_limit*1.2d, 1, 1<<30, 1, 0);
for (i=0; i<thread_cnt; ++i) {
pthread_create(&threads[i], NULL, test_mempool, mempool);
}
for (i=0; i<thread_cnt; ++i) {
pthread_join(threads[i], &status);
}
xio_shutdown();
return 0;
}
The xio_mempool_alloc will get NULL address but return 0, like gdb shows
I compile accelio only for tcp mode, static link, use gcc 4.6.
from accelio.
Hi,
I was able to reproduce the bug. I will investigate and let you know once I have a fix.
Thanks,
Katya
from accelio.
Please reopen this issue so I can track this easily.
from accelio.
Hi,
The fix is in the for_next branch. Bug was not related to the multithread but to the alloc_nr=1.
Thanks a lot for reporting it.
Katya
from accelio.
Thank you fro quick response.
from accelio.
Related Issues (20)
- Question about accelio RPC HOT 3
- Flush error in trace log HOT 1
- memory leak without mr HOT 2
- Slow RDMA req/rsp performance even than TCP HOT 1
- Benchmark failure over RDMA
- Thread stuck in busy loop when RDMA is being used
- compile accelio error in centos6.5 HOT 5
- can accelio be used with a framework like wangle HOT 1
- testing hello_test and not respond
- Keepalive isn't always triggered HOT 8
- hello word Concurrent test error
- (sheepdog) mempool is empty for 12587576 bytes HOT 2
- Peer Direct Support HOT 1
- Huge latency noticed of RDMA session_established for multi-process HOT 4
- SIGSEGV on hello_test HOT 1
- failed to build kmod with MLNX_OFED 4.0-2.0.0.1 driver HOT 1
- Is accelio abandoned? HOT 15
- xio_context_stop_loop sometimes failed to stop loop HOT 11
- kernel built failed as conflict with ofed-3.4
- Is accelio.org website still alive? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from accelio.