Giter Club home page Giter Club logo

Comments (7)

tbarbette avatar tbarbette commented on July 22, 2024

Oh actually I see things changed since the last time I built mOS ;) I see dpdk-iface is failing to build, I guess that may be part of the problem :
"CHRDEV "dpdk-iface" major requested (1110) is greater than the maximum (512)". Is that a known problem?
EDIT: I solved that temporarily by setting the major number to 500. I have a very "usual" Ubuntu server, maybe you should change the default? Nevertheless I still can't make it work (I could like one year ago with i40e though).

from mos-networking-stack.

tbarbette avatar tbarbette commented on July 22, 2024

Ok, I could make it work for 1 core, because mlx5 does not support 52 bytes RSS key (max is 40 bytes), so I disabled the configuration of the RSS key. It will break multi-core for sure... But it works with one.

from mos-networking-stack.

tbarbette avatar tbarbette commented on July 22, 2024

Well, simply resizing the hash key to 40 bytes worked.
Also, I had the same problem of endianess for the key, so I tried to change this in config.c :

  •           if (!strcmp(*argp, "net_i40e"))
    
  •           if (!strcmp(*argp, "net_i40e") || !strcmp(*argp, "net_mlx5") ) 
    

But the performance with 3 cores is still somehow heratic. Exactly as with the problem this solved for net_i40e.

I'll leave you close the post. If you want to support mlx5 you may just do that, and latest ubuntu by changing the major number.

from mos-networking-stack.

ygmoon avatar ygmoon commented on July 22, 2024

Hi Tom,

First of all, thanks for the detailed reports and comments.

Regarding the RSS issue, I suspect that this is closely related to #17 . mOS precalculates the expected Rx queue number for receiving the returning packets for the given 4-tuple (GetRSSCPUCore() in core/src/util.c).

  • As you might notice in d88f3b1, our current code only cares ixgbe and i40e.
  • Although i40e NICs and mlx5 NICs use the same RSS key (and the same endianess), the way to translate the hash value to the Rx queue number can be different.
  • However, as opposed to Intel NICs, the datasheet of Mellanox NICs does not explain those details. I will take a look on this issue, but it might take some time to resolve.

If you have any chance, can you please check whether mOS works fine with mlx5 for 2 and/or 4 cores?

Thanks,
YoungGyoun

from mos-networking-stack.

ajamshed avatar ajamshed commented on July 22, 2024

@tbarbette,

Apologies for the delayed response. The dpdk-iface module is reporting a run-time issue for newer kernels as they are unable to assign a major device number (above a certain threshold, 511) to newly registered character devices. I patched the code for mTCP a few weeks ago (mtcp-stack/mtcp@2d308b5) but forgot to apply it to mOS. Please give me a a few days to apply similar changes to mOS core stack.

Also, you are right. mlx4/mlx5 devices don't really need neither igb_uio.ko nor dpdk_iface.ko drivers. They are only used for Intel-based Ethernet NICs. The setup.sh script is written for Intel-specific setups which seems to be one of the few problems that you have faced in your setup. We need a revision for setup.sh as well. We plan to update it in the coming days.

from mos-networking-stack.

tbarbette avatar tbarbette commented on July 22, 2024

@ygmoon Yes, as a researcher, Mellanox NICs are a pain when it comes to documentation
It works great for 1, 2 and 4 cores. So yes, it looks like the old problem...

@ajamshed even a better fix!

Thanks, both of you for the help. I can live with 1/2/4 for now, no rush ;)

from mos-networking-stack.

ajamshed avatar ajamshed commented on July 22, 2024

Oh actually I see things changed since the last time I built mOS ;) I see dpdk-iface is failing to build, I guess that may be part of the problem :
"CHRDEV "dpdk-iface" major requested (1110) is greater than the maximum (512)". Is that a known problem?
EDIT: I solved that temporarily by setting the major number to 500. I have a very "usual" Ubuntu server, maybe you should change the default? Nevertheless I still can't make it work (I could like one year ago with i40e though).

This part is fixed. Please see the devel branch.

from mos-networking-stack.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.