Is the box running a real-time Linux? If not (and it almost certainly isn't), there is no control over when a current process will suspend to allow even a higher priority process to get in (Real-time OSes are specifically written to guarantee service response times for processes injecting a high-priority interrupt). It strikes me this may be the problem rather than priorities themselves - the Humax process doesn't expect to be competing for resources, so they had no need to use an expensive RT OS.
-
However, no harm in trying it. Bumping up the Humax process priority is a great idea (instead of fiddling with all the CF processes).
The idea here is about IO priorities which apply within the Linux IO subsystem, separately from process scheduling priorities, even if the default IO priority is set from the process priority. Clearly the Humax Linux isn't a hard real-time version (I suppose building a CF with a hard real-time kernel falls into the category of term project), but it does have the O(1) scheduler with soft real-time scheduling (see section 5.8 here). There may well be a view, as with Br***t, that soft real-time scheduling is RINO (Real-time In Name Only). A simple
ps -Al
* will show the "nice" values of processes and in particular will show the less nice (higher priority, NI=0) character of the humaxtv process compared with CF processes (typically NI=10)The Linux kernel with the CFQ IO scheduler can manage (synchronous) IO operations based on IO priorities internally regardless of the process scheduler.
Cool, so something like this asIt's easier than that, put a script in/mod/boot/bootstrap.d/
and it will be called with the process ID of the humaxtv process just after it is started.
/mod/boot/bootstrap.d/ioboost
:
Code:
#!/bin/sh
type ionice || exit 0
pid=$1
[ -z "$pid" ] && pid=`pgrep humaxtv`
[ -n "$pid"] && ionice -p $pid -c1
* You need the
procps
package loaded, as apparently Busybox can't be bothered with scheduling, but cut -f19 -d' ' /proc/${pid_of_process}/stat
will display the "nice" value from the missing ps
NI column for the process whose PID is ${pid_of_process}
.
Last edited: