Re: Linux netmap memory allocation

2018-01-03 Thread Vincenzo Maffione
Hi Charlie, 2018-01-03 0:07 GMT+01:00 Charlie Smurthwaite : > Hi Vincenzo, > > >> I am using poll(), and I am not specifying NETMAP_NO_TX_POLL, and have >> found that sometimes frames and sent only when the TX buffer is full, and >> sometimes they are not sent at all. They are never sent as expec

Re: Linux netmap memory allocation

2018-01-02 Thread Charlie Smurthwaite
Hi Vincenzo, I am using poll(), and I am not specifying NETMAP_NO_TX_POLL, and have found that sometimes frames and sent only when the TX buffer is full, and sometimes they are not sent at all. They are never sent as expected on every invocation of poll(). If I run ioctl(NIOCTXSYNC) manually,

Re: Linux netmap memory allocation

2018-01-02 Thread Vincenzo Maffione
2018-01-01 23:05 GMT+01:00 Charlie Smurthwaite : > > On 01/01/18 21:05, Vincenzo Maffione wrote: > > > > 2018-01-01 17:14 GMT+01:00 Charlie Smurthwaite : > >> Hi, >> >> Thank you for your reply. I was able to resolve this. >> >> 1) I do indeed open one FD per NIC >> 2) I no longer specify nr_arg1,

Re: Linux netmap memory allocation

2018-01-01 Thread Charlie Smurthwaite
On 01/01/18 21:05, Vincenzo Maffione wrote: 2018-01-01 17:14 GMT+01:00 Charlie Smurthwaite mailto:charlie@atech.media>>: Hi, Thank you for your reply. I was able to resolve this. 1) I do indeed open one FD per NIC 2) I no longer specify nr_arg1, nr_arg2 nor nr_arg3. Instead I just verify th

Re: Linux netmap memory allocation

2018-01-01 Thread Vincenzo Maffione
2018-01-01 17:14 GMT+01:00 Charlie Smurthwaite : > Hi, > > Thank you for your reply. I was able to resolve this. > > 1) I do indeed open one FD per NIC > 2) I no longer specify nr_arg1, nr_arg2 nor nr_arg3. Instead I just verify > that all NICs return with identical nr_arg2 so that the memory is s

Re: Linux netmap memory allocation

2018-01-01 Thread Charlie Smurthwaite
Hi, Thank you for your reply. I was able to resolve this. 1) I do indeed open one FD per NIC 2) I no longer specify nr_arg1, nr_arg2 nor nr_arg3. Instead I just verify that all NICs return with identical nr_arg2 so that the memory is shared between them. 3) I properly initialized my memory, my

Re: Linux netmap memory allocation

2018-01-01 Thread Vincenzo Maffione
Hi, If you have 32 NICs you should open 32 netmap file descriptors, (and you should not specify 64 in nr_arg1 or 256 in nr_arg3, this is for different usecases). Also, since you want to do zercopy you must not specify a separate memory area (nr_arg2), but use the same one. You may want to use the

Re: Linux netmap memory allocation

2017-12-28 Thread Charlie Smurthwaite
Hi, To answer my own question, I have resolved this, there were seemingly 3 errors in my use of the API: 1) I did not initialize the req struct. Some uninitialized data were being passed to the ioctl. I feel silly. 2) Values greater then 1 do not seem to be accepted by nr_arg2, setting this to 1

Linux netmap memory allocation

2017-12-28 Thread Charlie Smurthwaite
Hi, I'm just starting to use netmap and it is my intention to do zero-copy forwarding of frames between a large number of NICs. I am using Intel i350 (igb) on Linux. I therefore require a large memory area for rings and buffers. My calculation: 32 NICs * 2 rings (TX+RX) * 256 frames * 2048 bytes