Merge change 4051 into donut
* changes: vold: Give logwrapper the ability to put jobs into the background sched group.
This commit is contained in:
commit
47c1d7344a
5 changed files with 26 additions and 7 deletions
|
@ -44,7 +44,7 @@ int format_partition(blkdev_t *part, char *type)
|
|||
args[3] = "-O android";
|
||||
args[4] = devpath;
|
||||
args[5] = NULL;
|
||||
rc = logwrap(5, args);
|
||||
rc = logwrap(5, args, 1);
|
||||
} else {
|
||||
char *args[7];
|
||||
args[0] = MKE2FS_PATH;
|
||||
|
@ -54,7 +54,7 @@ int format_partition(blkdev_t *part, char *type)
|
|||
args[4] = "-v";
|
||||
args[5] = devpath;
|
||||
args[6] = NULL;
|
||||
rc = logwrap(6, args);
|
||||
rc = logwrap(6, args, 1);
|
||||
}
|
||||
|
||||
free(devpath);
|
||||
|
|
|
@ -100,7 +100,7 @@ void child(int argc, char* argv[]) {
|
|||
}
|
||||
}
|
||||
|
||||
int logwrap(int argc, char* argv[], pid_t *childPid)
|
||||
int logwrap(int argc, char* argv[], pid_t *childPid, int background)
|
||||
{
|
||||
pid_t pid;
|
||||
|
||||
|
@ -138,6 +138,25 @@ int logwrap(int argc, char* argv[], pid_t *childPid)
|
|||
dup2(child_ptty, 2);
|
||||
close(child_ptty);
|
||||
|
||||
if (background) {
|
||||
int fd = open("/dev/cpuctl/bg_non_interactive/tasks", O_WRONLY);
|
||||
|
||||
if (fd >=0 ) {
|
||||
char text[64];
|
||||
|
||||
sprintf(text, "%d", getpid());
|
||||
if (write(fd, text, strlen(text)) < 0) {
|
||||
LOG(LOG_WARN, "logwrapper",
|
||||
"Unable to background process (%s)", strerror(errno));
|
||||
close(fd);
|
||||
}
|
||||
close(fd);
|
||||
} else {
|
||||
LOG(LOG_WARN, "logwrapper",
|
||||
"Unable to background process (%s)", strerror(errno));
|
||||
}
|
||||
}
|
||||
|
||||
child(argc, argv);
|
||||
} else {
|
||||
return parent(argv[0], parent_ptty);
|
||||
|
|
|
@ -19,5 +19,5 @@
|
|||
#define _LOGWRAPPER_H
|
||||
|
||||
#include <stdlib.h>
|
||||
int logwrap(int argc, char* argv[]);
|
||||
int logwrap(int argc, char* argv[], int background);
|
||||
#endif
|
||||
|
|
|
@ -107,7 +107,7 @@ int ext_check(blkdev_t *dev)
|
|||
args[3] = devpath;
|
||||
args[4] = NULL;
|
||||
|
||||
int rc = logwrap(4, args);
|
||||
int rc = logwrap(4, args, 1);
|
||||
|
||||
if (rc == 0) {
|
||||
LOG_VOL("filesystem '%s' had no errors", devpath);
|
||||
|
|
|
@ -62,13 +62,13 @@ int vfat_check(blkdev_t *dev)
|
|||
args[3] = "-p";
|
||||
args[4] = blkdev_get_devpath(dev);
|
||||
args[5] = NULL;
|
||||
rc = logwrap(5, args);
|
||||
rc = logwrap(5, args, 1);
|
||||
free(args[4]);
|
||||
} else {
|
||||
args[2] = "-n";
|
||||
args[3] = blkdev_get_devpath(dev);
|
||||
args[4] = NULL;
|
||||
rc = logwrap(4, args);
|
||||
rc = logwrap(4, args, 1);
|
||||
free(args[3]);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue