Linux Code for “Device Memory TCP” – Network to/from Accelerator RAM
phoronix.com
phoronix.com
At least with mellanox stuff the last time I touched it, there were I think four levels of reliability, one of which matched TCP.
Had to read through the lklm message, at it wasn't clear from the article.
Specifically to avoid bogging down the host.
I suppose it means that you can bust out of the local network, and take in "foreign" data. But if you're doing that, you've got bigger problems with data affinity.
[0] https://lore.kernel.org/dri-devel/8719bf65-6906-0426-1ce4-b0...
I would suspect it's not going to be dead unless the maintainers think the fundamental premise, not the architecture, is broken - if it's been brought up on a real piece of hardware, it's almost certainly because it was solving a real problem being experienced, and even if it involves reworking it completely, getting it upstreamed is much better than maintaining an enormous local delta.
> I strongly suggest that you read up on the basic of this before proposing any solution.
Ouch.
That’s just what code review is there to spot, not something that can’t be fixed.
Your comment reads like a textbook example of an appeal to authority.
Google engineers don't walk over water, and what Google accepts in their internal networks considering on Google's tightly locked internal security infrastructure might not map to real world security environments.
It also boggles the mind how you somehow presume a Linux kernel maintainer who repeatedly pointed out the failures of the proposed patch does not know what he is talking about. Unbelievable.
> The thing that is “dead on arrival” here is probably the ability of the general public to enjoy something that google already uses.
I'd wager that what the general public enjoys is working code with an excellent security track record thanks to the outstanding work by Linux kernel maintainers, who repeatedly stop broken submissions from being accepted.
It seems we are talking about different projects.
Please point out a operating system that you feel has a better security track record than Linux.
https://www.cvedetails.com/cvss-score-charts.php?product_id=...
What exactly is your definition of security track record? Do you have any, or are you parroting cliches?
The first Linux CVE I clicked at random has CVSS 0.0: https://www.cvedetails.com/cve/CVE-2022-4095/
The same CVE on the official NVD has CVSS 7.8: https://nvd.nist.gov/vuln/detail/CVE-2022-4095
I’m shocked someone would talk like this publicly from their company email. AMD doesn’t seem like a company I would want to work for.
Not implying that this mail must be an example of this.
Man, my former company could have chipped this device-memory mapped TCP stack for Linux kernel 2.14 to 2.24.
I created that. And it likely going to disappear forever although the product may still being in use today.
What a waste.
Was coded primarily to recapture the CPU burn on lower-end Pentium platform.
Good stuff, (sigh)
It had a project name but still unclear as to my contractual obligation with regard to reveal anything else about it (other than resume stuffing).
Security is/was pretty good once an LSM permits the connection creation.
Wouldn't such a system make more sense for sending raw memory directly over the wire in some form of custom protocol? Even UDP would probably be able to approximate that.
- is supported everywhere
- allows massive reads and writes (whereas UDP often has quite small limits before packets are dropped)
- is reliable (you wont lose data, your data won't corrupt, etc)
So you could use this inside an existing datacenter, with existing hardware, and existing software to debug and monitor it.
If you send GB of memory, the TCP overhead is minimal.
Beating TCP reliability and performance is an extremely ambitious endeavor in practice. Add wide interop to that list and it becomes next to impossible.
How many companies do you know who operate nearly as many servers as Google?
Would it be feasible to horizontal scale those nodes instead?
Additionally, I don't know why you would choose not to use the capacity of the system you have, just because you can easily scale horizontally. If a bit of engineering time can significantly reduce the number of systems to manage and the hardware budget, seems like a good plan. Especially when these projects are fun to work on and large tech companies want to retain employees.
The work and investment to turn that 4U deployment into two 2U deployments sounds like a far more realistic and effective way to go about the problem.
> Additionally, I don't know why you would choose not to use the capacity of the system you have, just because you can easily scale horizontally.
The point is that the capacity does not exist, hence these patches being shot down by kernel maintainers for being fundamentally broken.
Also, what are the real-world performance improvements of these memory hacks? Adding another COTS box next to the one already deployed should double capacity straight away.