Live data from Hacker News

CPU Usage Differences After Applying Meltdown Patch at Epic Games

epicgames.com

91–100 of 296 posts

Re: CPU Usage Differences After Applying Meltdown Patch at Epic Games

#91
post #82
post #71

The Meltdown attack requires an attacker to have a piece of code executed on your server. Epic's servers are used for login, where people send you data, and for game logic, where people also just send you data like "player x moved his avatar here, player y shoots etc". If all the server does is execute the code which Epic wrote themselves and already trust, why would it need to apply the Meltdown patch?

It makes sense if you don't want a remote code execution in one of your app to provide a full root shell.

This is the correct, non-snarky answer. It's a known privilege escalation attack, turns a bad day (someone got a non-root account on my server) into a worse one (root account).

Re: CPU Usage Differences After Applying Meltdown Patch at Epic Games

#92
post #47

Earlier quoted context omitted.

There's potential for a little rearchitecting to help, at least in the case of UDP: NAME sendmmsg - send multiple messages on a socket SYNOPSIS #define _GNU_SOURCE /* See feature_test_macros(7) */ #include int sendmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen, unsigned int flags);

Or use userspace networking stack (with cards which allow this) to reduce number of syscalls.

And solve the C10M problem at the same time. Two birds with one stone.

Re: CPU Usage Differences After Applying Meltdown Patch at Epic Games

#93
post #74

Earlier quoted context omitted.

If, as you say, AMD is not affected by Meltdown unlike Intel, will this significantly change the server market? Excuse the pun, but would this make e.g. AMD EPYC a lot more attractive for such data centers?

Aren't they still vulnerable to Spectre?

Pretty much every fast CPU is vulnerable to some subset of Spectre.

Re: CPU Usage Differences After Applying Meltdown Patch at Epic Games

#94
post #82
post #71

The Meltdown attack requires an attacker to have a piece of code executed on your server. Epic's servers are used for login, where people send you data, and for game logic, where people also just send you data like "player x moved his avatar here, player y shoots etc". If all the server does is execute the code which Epic wrote themselves and already trust, why would it need to apply the Meltdown patch?

It makes sense if you don't want a remote code execution in one of your app to provide a full root shell.

Thank you for the explanation, and especially for being non-snarky, which unfortunately seems to be getting rarer and rarer on this forum.

Re: CPU Usage Differences After Applying Meltdown Patch at Epic Games

#95
post #47

Earlier quoted context omitted.

There's potential for a little rearchitecting to help, at least in the case of UDP: NAME sendmmsg - send multiple messages on a socket SYNOPSIS #define _GNU_SOURCE /* See feature_test_macros(7) */ #include int sendmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen, unsigned int flags);

That only works if messages are independent of answers received and are all known at the same point in time. In most games this typically would not be the case, you'd use a message to cram as much state change into it as is known to keep the game moving fluidly. Packing more than one such message together would serve no purpose.

I'd have presumed otherwise, but I'm not sure if you're understanding the API correctly.. it's not about sending multiple messages to the same destination, but to multiple destinations in a single call. The msg_hdr struct has room for specifying the target address.

From userspace' perspective, even if the same data isn't being broadcast at every client, just building up a big array (perhaps while looping over the input from recvmmsg()!) and spitting it out once would have the same semantics as just calling sendmsg() immediately on each, etc

Re: CPU Usage Differences After Applying Meltdown Patch at Epic Games

#96
post #3

Surprise, surprise, Intel’s Meltdown patch has significant and serious performance impacts for specific kinds of workloads. All because Intel decided to “optimise” by checking for permissions after speculative retirement, instead of before like AMD.

If, as you say, AMD is not affected by Meltdown unlike Intel, will this significantly change the server market? Excuse the pun, but would this make e.g. AMD EPYC a lot more attractive for such data centers?

What pun?

Re: CPU Usage Differences After Applying Meltdown Patch at Epic Games

#97
post #96

Earlier quoted context omitted.

If, as you say, AMD is not affected by Meltdown unlike Intel, will this significantly change the server market? Excuse the pun, but would this make e.g. AMD EPYC a lot more attractive for such data centers?

What pun?

Epic Games - AMD EPYC

Re: CPU Usage Differences After Applying Meltdown Patch at Epic Games

#98
post #95

Earlier quoted context omitted.

That only works if messages are independent of answers received and are all known at the same point in time. In most games this typically would not be the case, you'd use a message to cram as much state change into it as is known to keep the game moving fluidly. Packing more than one such message together would serve no purpose.

I'd have presumed otherwise, but I'm not sure if you're understanding the API correctly.. it's not about sending multiple messages to the same destination, but to multiple destinations in a single call. The msg_hdr struct has room for specifying the target address. From userspace' perspective, even if the same data isn't being broadcast at every client, just building up a big array (perhaps while looping over the inp…

Yes, I understand the API correctly. Having implemented it once I think I have the basics down ;) But that said I was assuming that this would be in the context of multiple UDP messages sent from a game client to a game server.

Re: CPU Usage Differences After Applying Meltdown Patch at Epic Games

#100
post #47

Earlier quoted context omitted.

There's potential for a little rearchitecting to help, at least in the case of UDP: NAME sendmmsg - send multiple messages on a socket SYNOPSIS #define _GNU_SOURCE /* See feature_test_macros(7) */ #include int sendmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen, unsigned int flags);

Yep, I was actually debating whether I'd mention sendmmsg/recvmmsg in my original post but I left it out. Definitely an option for UDP, but you're out of luck if your game server uses TCP (surprisingly many do) because you have to recv from each socket separately.

The majority of online games use TCP these days with good prediction it’s more reliable than UDP.
Post reply on HN