-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
PSI support #4683
Comments
Then why does the Kconfig entry say:
? |
@pelwell This was my source: https://facebookmicrosites.github.io/psi/docs/overview#prerequisites
Yes, I know I can build my own version of the kernel to include it. My point is why it's not in the shipped in the "public" version. I'm not an expert of the feature (I want to learn about it in fact) but it doesn't seem like something that could be controversial or detrimental to the user in any way. In fact, in my opinion, this feature seems completely targeted towards low-end devices like the Pi, to help aid in the debug of memory pressure problems. If it's the case that the feature is detrimental for the user in some way, I guess I have no other option than build the kernel myself, but I would like to know first the reasoning behind not shipping the kernel with it (so I'm aware of its limitations and maybe run it off a testing sdcard instead to play with it, instead of my main image). Best regards. |
Raspberry Pis, especially the earlier ones, have limited resources compared to a general purpose computer. In particular they have limited RAM, and the relatively slow storage (SD cards) makes swapping unattractive. Every built-in feature that we add increases the kernel size and reduces the free memory for applications, and with millions of users in education who just want to run Python and Scratch we have to weigh up (advantages of the feature) * (number of users) against (costs of enabling the feature) * (number of non-users). |
@ferferga - Maybe you should build the current stable kernel with this enabled (as the only change For reference, building Arch ARM's 5.10.78-2 kernel with and without
|
Sorry for my lack of response for the past weeks, been really busy with studies and until now I didn't had enough time to dedicate to tinkering. @graysky2 Thank you very much for actually taking the time to build the kernel with the feature enabled. I ended up compiling the kernel myself, but forgot to measure the difference. This is great news, since 66 kilobytes is negligible with today's standards and how cheap storage is nowadays. @pelwell This is exactly why I think this is a really nice thing to have: As I explained in my original message, my idea was to use oomd to act in the userspace before the kernel had to to kill hungry processes. Having high memory usage in the Pi means the kernel starts to swap to the SD, which is known for everybody how bad that was. I ended up compiling the kernel with support for it enabled and, before having oomd, all sign of swapping rendered my Pi unrecoverable without an unplug and replug to the PSU. Now high memory usage scenearios also make stuff a bit sluggish, but oomd acts quickly, preventing my Pi to be dead. This is way off topic, but in my honest opinion, I think oomd should be one of the packages included by default in all Raspbian OS distros. OOMDs are less common as we have now devices with 2 - 8 GB, but even with those, some intensive tasks like video processing or forgetting to call My main use case for this is to be used alongside oomd to avoid those scenearios (as explained above) but, beyond giving more reliability to the boards, I don't think is useless for education either. Your example made me realize that PSI would've been really useful in some of my "complexity of algorithms" (not sure what's the correct name for that specific lesson in the Analysis and design of algorithms field in English, sorry) classes, since PSI provides info about IO and latency as well, which are really useful for benchmark binaries compiled using GCC's LTO or the NEON instruction set. In my opinion, the advantages PSI potentially has outweights a lot the disadvantages, specially at the cost of 66 kilobytes. Honestly I think there are other packages that comes preinstalled with Raspberry Pi OS that are less worthy than the (potential) mix of oomd + PSI + students learning low-level optimization with PSI. |
I just wanted to pop in to say that enabling PSI would allow to run low-memory killer of Android on the Pi's kernel, which means things like WayDroid or redroid (Android in docker, basically) can run. It is a small usecase suited mostly to the RPi 4 (maybe RPi 3, too), but it's a great helper in low-cost Android development. Being able to use |
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Added by fcfe018. Note that cmdline.txt requires |
See: raspberrypi/linux#4683 kernel: configs: Add MPTCP for 64-bit platforms See: raspberrypi/linux#5487
See: raspberrypi/linux#4683 kernel: configs: Add MPTCP for 64-bit platforms See: raspberrypi/linux#5487
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Add Pressure Stall Information support, disabled by default. Enable with "psi=1" in cmdline.txt. See: #4683 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Describe the bug
/cat/proc/pressure/*
is not available using the latest raspberrypi-kernel package for Raspbian bullseye. Tools like oomd can't be used.Expected behaviour
Linux kernel from 4.20 and up include PSI enabled, it's up to the maintainers of the distro to disable it. It should be built into the kernel (I tried setting
psi=1
in cmdline.txt, but it`s still not available).Actual behaviour
PSI can't be used without building the kernel.
System
Copy and paste the results of the raspinfo command in to this section. Alternatively, copy and paste a pastebin link, or add answers to the following questions:
cat /etc/rpi-issue
)?vcgencmd version
)?uname -a
)?The text was updated successfully, but these errors were encountered: