mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 00:39:46 +00:00
sreadahead: Add a patch to set the app to io-idle running status.
This patch sets the sreadahead to io-idle stauts when it is running, so that sreadahead will not preempt IO with other apps.
This commit is contained in:
@@ -0,0 +1,39 @@
|
|||||||
|
diff -Naurp sreadahead-0.02/readahead.c sreadahead-0.02-nice/readahead.c
|
||||||
|
--- sreadahead-0.02/readahead.c 2008-11-06 00:57:17.000000000 -0500
|
||||||
|
+++ sreadahead-0.02-nice/readahead.c 2008-11-06 02:28:29.000000000 -0500
|
||||||
|
@@ -26,7 +26,18 @@
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include "readahead.h"
|
||||||
|
+#include <sys/syscall.h>
|
||||||
|
|
||||||
|
+# if defined(__i386__)
|
||||||
|
+# define __NR_ioprio_set 289
|
||||||
|
+# elif defined(__x86_64__)
|
||||||
|
+# define __NR_ioprio_set 251
|
||||||
|
+# else
|
||||||
|
+# error "Unsupported arch"
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
+#define IOPRIO_WHO_PROCESS 1
|
||||||
|
+#define IOPRIO_CLASS_SHIFT 13
|
||||||
|
#define MAXR 1024
|
||||||
|
static struct readahead files[MAXR];
|
||||||
|
static unsigned int total_files = 0;
|
||||||
|
@@ -68,7 +79,15 @@ void *one_thread(void *ptr)
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
- FILE *file = fopen("/etc/readahead.packed", "r");
|
||||||
|
+ int iopriority = 7; /* hard code for idle */
|
||||||
|
+ int iopriority_class = 3; /* 3 stands for idle */
|
||||||
|
+ int pid = 0;
|
||||||
|
+ FILE *file;
|
||||||
|
+
|
||||||
|
+ if (syscall(__NR_ioprio_set, IOPRIO_WHO_PROCESS, pid, iopriority | iopriority_class << IOPRIO_CLASS_SHIFT) == -1)
|
||||||
|
+ perror("Can not set priority to idle class");
|
||||||
|
+
|
||||||
|
+ file = fopen("/etc/readahead.packed", "r");
|
||||||
|
if (!file) {
|
||||||
|
perror("Couldnt open /etc/readahead.packed");
|
||||||
|
return -errno;
|
||||||
@@ -9,6 +9,7 @@ inherit update-rc.d
|
|||||||
SRC_URI = "http://www.moblin.org/sites/all/files/sreadahead-${PV}.tar.gz \
|
SRC_URI = "http://www.moblin.org/sites/all/files/sreadahead-${PV}.tar.gz \
|
||||||
file://sreadahead-0.02-make.patch;patch=1 \
|
file://sreadahead-0.02-make.patch;patch=1 \
|
||||||
file://readahead_c.patch;patch=1 \
|
file://readahead_c.patch;patch=1 \
|
||||||
|
file://set_to_idle.patch;patch=1 \
|
||||||
file://sreadahead-generate.sh \
|
file://sreadahead-generate.sh \
|
||||||
file://sreadahead.sh"
|
file://sreadahead.sh"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user