if(($ACT == 'edit' || $ACT == 'preview') && $INFO['editable']){ ?> } else { ?> } ?>
This shows you the differences between two versions of the page.
oss:jackfreqd:start [13.12.2010 12:44] rgareus |
oss:jackfreqd:start [28.02.2020 13:56] (current) rgareus |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== jackfreqd ====== | ====== jackfreqd ====== | ||
- | Inspired by discussion with Fernando Lopez-Lezcano on [[http://lists.linuxaudio.org/pipermail/linux-audio-user/2010-December/074539.html|LAU]] and [[http://permalink.gmane.org/gmane.comp.audio.jackit/22839|jack-dev]]. I became motivated to create a tool that changes CPU frequency according to DSP load to address the issue on multi-core systems where system-load may still be too low for a default CPU governor to react while DSP load is already at the limit, causing x-runs. | + | Inspired by discussion with Fernando Lopez-Lezcano on [[http://lists.linuxaudio.org/pipermail/linux-audio-user/2010-December/074539.html|LAU]] and [[http://permalink.gmane.org/gmane.comp.audio.jackit/22839|jack-dev]]. I became motivated to create a tool that changes the CPU frequency according to DSP-load in order to address an issue on multi-core systems where system-load may still be too low for a default CPU governor to react while DSP load is already at the limit, causing x-runs. |
- | ''jackfreqd'' is heavily based on [[http://www.deater.net/john/powernowd.html|powernowd]]. Instead of taking CPU load as parameter for deciding on the CPU frequency ''jackfreqd'' uses [[http://jackaudio.org|JACK]] DSP load and it only supports the powernowd's //aggressive// mode ((Aggressive mode changes frequency by a sawtooth function. The system immediately jumps to the highest frequency whenever usage exceeds a given threshold (//high-water-mark//), and decreases by "step" Hz as usage drops below a //low-water-mark//)). Optionally ''jackfreqd'' can also take CPU load into account, which comes in handy when the JACK-daemon is temporarily unavailable or if frequency-scaling should also be done for on non-audio processes. | + | ''jackfreqd'' is heavily based on [[http://www.deater.net/john/powernowd.html|powernowd]]. Instead of taking CPU load as parameter for deciding on the CPU frequency ''jackfreqd'' uses [[http://jackaudio.org|JACK]] DSP-load and ''jackfreqd'' only supports the powernowd's //aggressive// mode ((Aggressive mode changes frequency by a sawtooth function. The system immediately jumps to the highest frequency whenever usage exceeds a given threshold (//high-water-mark//), and decreases by "step" Hz as usage drops below a //low-water-mark//)). Optionally ''jackfreqd'' can also take CPU load into account which comes in handy when the JACK-daemon is temporarily unavailable or if frequency-scaling should also be done for on non-audio processes. |
In order to gain access to modify CPU-speed and do so quickly, ''jackfreqd'' needs to be run as //root//. ''jackfreqd'' includes support to assume a given user-id which runs the JACK-daemon, and also to auto-detect a running JACK instances and (re) connect to it. | In order to gain access to modify CPU-speed and do so quickly, ''jackfreqd'' needs to be run as //root//. ''jackfreqd'' includes support to assume a given user-id which runs the JACK-daemon, and also to auto-detect a running JACK instances and (re) connect to it. | ||
Line 9: | Line 9: | ||
===== Source ===== | ===== Source ===== | ||
- | * [[http://rg42.org/gitweb/?p=jackfreqd.git|Repository, Changelog]] | + | In Feb 2020 Oleg Samarin has taken over maintenance. The repo was moved to github, please update your URL: |
- | * %%git://rg42.org/jackfreqd%% | + | |
- | * [[http://rg42.org/gitweb/?p=jackfreqd.git;a=snapshot;sf=tgz|snapshot]], [[http://rg42.org/gitweb/?p=jackfreqd.git;a=snapshot;h=debian;sf=tgz|debianized source]] | + | * <del>[[http://rg42.org/gitweb/?p=jackfreqd.git|Repository, Changelog]]</del> |
+ | * https://github.com/oleg68/jackfreqd | ||
''jackfreqd'' can be distributed in terms of the [[http://www.gnu.org/licenses/gpl2.html|GNU General Public License]]. | ''jackfreqd'' can be distributed in terms of the [[http://www.gnu.org/licenses/gpl2.html|GNU General Public License]]. | ||
- | |||
- | ===== Installation ===== | ||
- | |||
- | Stop or remove existing CPU frequency scaling daemons from the system. | ||
- | |||
- | git clone git://rg42.org/jackfreqd | ||
- | cd jackfreqd | ||
- | make | ||
- | sudo make install | ||
- | sudo /etc/init.d/jackfreqd start | ||
- | |||
- | To launch it on bootup you need to create symlinks in ''/etc/rc?.d/''. e.g by running ''update-rc.d jackfreqd defaults''. | ||
- | |||
- | On debian you can automate that: | ||
- | git clone git://rg42.org/jackfreqd | ||
- | cd jackfreqd | ||
- | git checkout -b debian origin/debian | ||
- | git-buildpackage --git-upstream-branch=master --git-debian-branch=debian -rfakeroot | ||
- | sudo dpkg -i ../jackfreqd_*.deb | ||
===== Usage ===== | ===== Usage ===== |