-
Notifications
You must be signed in to change notification settings - Fork 95
Added gaming tuner #190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Added gaming tuner #190
Conversation
shanefagan
commented
Oct 2, 2025
- Detects bursty UDP traffic from apps that are run from known gaming launchers
- Goal is to lower the network jitter and in testing has lowered it around 20%-30% in games like CS2
Rationale on this is just that bpftune is focused a lot on server tuning but a similar approach can be applied for gaming and there are settings that could improve perf, reduce stuttering and maybe give a competitive advantage over other systems. eBPF makes sense as it would be monitoring the system behaviour rather than being a command so it would do the work automatically. - Detects UDP bursty traffic and sets tuners to benefit competitive gaming workloads - 3 profiles basically a low, mid and high approach called casual, competitive and intense. Intense is a lot of UDP traffic and probably isn't nessessary for most games, competitive works for Dota2 and CS2 automatically for example. PoE2 and other less intense UDP workloads fall into casual - I cleaned up tuner definition a little bit - It has revert logic after the UDP traffic goes away to go back to what it had before the settings
Quick test after I added it and it seems to stop a bit of the false positives. The issue basically is QUIC (HTTP/3) uses UDP a bit and can trigger a small burst of traffic when going to a website that supports it.
If you only try detection based on network traffic you get spikes based on other apps like systemd-resolve, torrents, steam itself, browser, discord...etc. I added a blacklist and a whitelist, the blacklist is for common stuff I know isn't gaming related, like utp::*. For gaming workloads I assume that it is proton, or from a launcher or whatever. It has a corner case that if a game is natively running on the system you would need to use gamemoderun or game-performance to hint to the userspace side of the tool but it is a corner case and I'm sure someone smarter than me can do it better.
|
Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application. When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated. If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public. |
alan-maguire
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great, apologies it took a while to get to it! I would make the following suggestion; could you pull out the commits that relate to framework changes - which are fantastic - and submit them separately? I.e. the declaration of BPFTUNABLE_SCENARIO[_QUIET] and associated libbpftune and tuner changes to accommodate it? These could all be squashed into a single commit - e.g. support quiet scenarions. Then the gamer tuner changes could be submitted separately. Also from a bookkeeping side the OCA needs to be signed as part of the process. Thanks!
|
Hi Alan, Yeah, I can go and pull that out. It'll have to wait for a month as I'm currently working at Oracle but would need internal approval but I'm leaving so in about a month I can sign the OCA after that. At the moment I can't do much really. |