Merge commit '4352ee87fd74b931d4b58192fb8974e91aa899d0' into HEAD
This commit is contained in:
commit
4409f1446c
|
@ -63,10 +63,10 @@ static bool get_build_id(
|
|||
if (nhdr.n_type == NT_GNU_BUILD_ID) {
|
||||
// Skip the name (which is the owner and should be "GNU").
|
||||
addr += NOTE_ALIGN(nhdr.n_namesz);
|
||||
uint8_t build_id_data[128];
|
||||
if (nhdr.n_namesz > sizeof(build_id_data)) {
|
||||
ALOGE("Possible corrupted note, name size value is too large: %u",
|
||||
nhdr.n_namesz);
|
||||
uint8_t build_id_data[160];
|
||||
if (nhdr.n_descsz > sizeof(build_id_data)) {
|
||||
ALOGE("Possible corrupted note, desc size value is too large: %u",
|
||||
nhdr.n_descsz);
|
||||
return false;
|
||||
}
|
||||
if (backtrace->Read(addr, build_id_data, nhdr.n_descsz) != nhdr.n_descsz) {
|
||||
|
|
|
@ -121,6 +121,9 @@ LOCAL_STATIC_LIBRARIES := liblog
|
|||
ifneq ($(ENABLE_CPUSETS),)
|
||||
LOCAL_CFLAGS += -DUSE_CPUSETS
|
||||
endif
|
||||
ifneq ($(ENABLE_SCHEDBOOST),)
|
||||
LOCAL_CFLAGS += -DUSE_SCHEDBOOST
|
||||
endif
|
||||
LOCAL_CFLAGS += -Werror -Wall -Wextra -std=gnu90
|
||||
LOCAL_CLANG := true
|
||||
LOCAL_SANITIZE := integer
|
||||
|
@ -135,6 +138,9 @@ LOCAL_SHARED_LIBRARIES := liblog
|
|||
ifneq ($(ENABLE_CPUSETS),)
|
||||
LOCAL_CFLAGS += -DUSE_CPUSETS
|
||||
endif
|
||||
ifneq ($(ENABLE_SCHEDBOOST),)
|
||||
LOCAL_CFLAGS += -DUSE_SCHEDBOOST
|
||||
endif
|
||||
LOCAL_CFLAGS += -Werror -Wall -Wextra
|
||||
LOCAL_C_INCLUDES := $(libcutils_c_includes)
|
||||
LOCAL_CLANG := true
|
||||
|
|
|
@ -64,6 +64,8 @@ static int fg_cgroup_fd = -1;
|
|||
// File descriptors open to /dev/cpuset/../tasks, setup by initialize, or -1 on error
|
||||
static int bg_cpuset_fd = -1;
|
||||
static int fg_cpuset_fd = -1;
|
||||
static int bg_schedboost_fd = -1;
|
||||
static int fg_schedboost_fd = -1;
|
||||
#endif
|
||||
|
||||
/* Add tid to the scheduling group defined by the policy */
|
||||
|
@ -128,6 +130,12 @@ static void __initialize(void) {
|
|||
fg_cpuset_fd = open(filename, O_WRONLY | O_CLOEXEC);
|
||||
filename = "/dev/cpuset/background/tasks";
|
||||
bg_cpuset_fd = open(filename, O_WRONLY | O_CLOEXEC);
|
||||
#ifdef USE_SCHEDBOOST
|
||||
filename = "/sys/fs/cgroup/stune/foreground/tasks";
|
||||
fg_schedboost_fd = open(filename, O_WRONLY | O_CLOEXEC);
|
||||
filename = "/sys/fs/cgroup/stune/tasks";
|
||||
bg_schedboost_fd = open(filename, O_WRONLY | O_CLOEXEC);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -253,17 +261,20 @@ int set_cpuset_policy(int tid, SchedPolicy policy)
|
|||
pthread_once(&the_once, __initialize);
|
||||
|
||||
int fd;
|
||||
int boost_fd;
|
||||
switch (policy) {
|
||||
case SP_BACKGROUND:
|
||||
fd = bg_cpuset_fd;
|
||||
boost_fd = bg_schedboost_fd;
|
||||
break;
|
||||
case SP_FOREGROUND:
|
||||
case SP_AUDIO_APP:
|
||||
case SP_AUDIO_SYS:
|
||||
fd = fg_cpuset_fd;
|
||||
boost_fd = fg_schedboost_fd;
|
||||
break;
|
||||
default:
|
||||
fd = -1;
|
||||
boost_fd = fd = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -272,6 +283,11 @@ int set_cpuset_policy(int tid, SchedPolicy policy)
|
|||
return -errno;
|
||||
}
|
||||
|
||||
if (boost_fd > 0 && add_tid_to_cgroup(tid, boost_fd) != 0) {
|
||||
if (errno != ESRCH && errno != ENOENT)
|
||||
return -errno;
|
||||
}
|
||||
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -56,6 +56,17 @@ on init
|
|||
chown root system /sys/fs/cgroup/memory/sw/tasks
|
||||
chmod 0660 /sys/fs/cgroup/memory/sw/tasks
|
||||
|
||||
# Create energy-aware scheduler tuning nodes
|
||||
mkdir /sys/fs/cgroup/stune
|
||||
mount cgroup none /sys/fs/cgroup/stune schedtune
|
||||
mkdir /sys/fs/cgroup/stune/foreground
|
||||
chown system system /sys/fs/cgroup/stune
|
||||
chown system system /sys/fs/cgroup/stune/foreground
|
||||
chown system system /sys/fs/cgroup/stune/tasks
|
||||
chown system system /sys/fs/cgroup/stune/foreground/tasks
|
||||
chmod 0664 /sys/fs/cgroup/stune/tasks
|
||||
chmod 0664 /sys/fs/cgroup/stune/foreground/tasks
|
||||
|
||||
# Mount staging areas for devices managed by vold
|
||||
# See storage config details at http://source.android.com/tech/storage/
|
||||
mount tmpfs tmpfs /mnt mode=0755,uid=0,gid=1000
|
||||
|
@ -71,7 +82,6 @@ on init
|
|||
mkdir /mnt/expand 0771 system system
|
||||
|
||||
# Storage views to support runtime permissions
|
||||
mkdir /storage 0755 root root
|
||||
mkdir /mnt/runtime 0700 root root
|
||||
mkdir /mnt/runtime/default 0755 root root
|
||||
mkdir /mnt/runtime/default/self 0755 root root
|
||||
|
@ -167,13 +177,16 @@ on init
|
|||
chown system system /dev/cpuset/foreground
|
||||
chown system system /dev/cpuset/foreground/boost
|
||||
chown system system /dev/cpuset/background
|
||||
chown system system /dev/cpuset/system-background
|
||||
chown system system /dev/cpuset/tasks
|
||||
chown system system /dev/cpuset/foreground/tasks
|
||||
chown system system /dev/cpuset/foreground/boost/tasks
|
||||
chown system system /dev/cpuset/background/tasks
|
||||
chown system system /dev/cpuset/system-background/tasks
|
||||
chmod 0664 /dev/cpuset/foreground/tasks
|
||||
chmod 0664 /dev/cpuset/foreground/boost/tasks
|
||||
chmod 0664 /dev/cpuset/background/tasks
|
||||
chmod 0664 /dev/cpuset/system-background/tasks
|
||||
chmod 0664 /dev/cpuset/tasks
|
||||
|
||||
|
||||
|
|
|
@ -5,4 +5,4 @@ service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-sys
|
|||
onrestart write /sys/power/state on
|
||||
onrestart restart media
|
||||
onrestart restart netd
|
||||
writepid /dev/cpuset/foreground/tasks
|
||||
writepid /dev/cpuset/foreground/tasks /sys/fs/cgroup/stune/foreground/tasks
|
||||
|
|
|
@ -5,10 +5,10 @@ service zygote /system/bin/app_process32 -Xzygote /system/bin --zygote --start-s
|
|||
onrestart write /sys/power/state on
|
||||
onrestart restart media
|
||||
onrestart restart netd
|
||||
writepid /dev/cpuset/foreground/tasks
|
||||
writepid /dev/cpuset/foreground/tasks /sys/fs/cgroup/stune/foreground/tasks
|
||||
|
||||
service zygote_secondary /system/bin/app_process64 -Xzygote /system/bin --zygote --socket-name=zygote_secondary
|
||||
class main
|
||||
socket zygote_secondary stream 660 root system
|
||||
onrestart restart zygote
|
||||
writepid /dev/cpuset/foreground/tasks
|
||||
writepid /dev/cpuset/foreground/tasks /sys/fs/cgroup/stune/foreground/tasks
|
||||
|
|
|
@ -5,4 +5,4 @@ service zygote /system/bin/app_process64 -Xzygote /system/bin --zygote --start-s
|
|||
onrestart write /sys/power/state on
|
||||
onrestart restart media
|
||||
onrestart restart netd
|
||||
writepid /dev/cpuset/foreground/tasks
|
||||
writepid /dev/cpuset/foreground/tasks /sys/fs/cgroup/stune/foreground/tasks
|
||||
|
|
|
@ -5,10 +5,10 @@ service zygote /system/bin/app_process64 -Xzygote /system/bin --zygote --start-s
|
|||
onrestart write /sys/power/state on
|
||||
onrestart restart media
|
||||
onrestart restart netd
|
||||
writepid /dev/cpuset/foreground/tasks
|
||||
writepid /dev/cpuset/foreground/tasks /sys/fs/cgroup/stune/foreground/tasks
|
||||
|
||||
service zygote_secondary /system/bin/app_process32 -Xzygote /system/bin --zygote --socket-name=zygote_secondary
|
||||
class main
|
||||
socket zygote_secondary stream 660 root system
|
||||
onrestart restart zygote
|
||||
writepid /dev/cpuset/foreground/tasks
|
||||
writepid /dev/cpuset/foreground/tasks /sys/fs/cgroup/stune/foreground/tasks
|
||||
|
|
|
@ -1214,7 +1214,13 @@ static int handle_open(struct fuse* fuse, struct fuse_handler* handler,
|
|||
}
|
||||
out.fh = ptr_to_id(h);
|
||||
out.open_flags = 0;
|
||||
|
||||
#ifdef FUSE_STACKED_IO
|
||||
out.lower_fd = h->fd;
|
||||
#else
|
||||
out.padding = 0;
|
||||
#endif
|
||||
|
||||
fuse_reply(fuse, hdr->unique, &out, sizeof(out));
|
||||
return NO_STATUS;
|
||||
}
|
||||
|
@ -1378,7 +1384,13 @@ static int handle_opendir(struct fuse* fuse, struct fuse_handler* handler,
|
|||
}
|
||||
out.fh = ptr_to_id(h);
|
||||
out.open_flags = 0;
|
||||
|
||||
#ifdef FUSE_STACKED_IO
|
||||
out.lower_fd = -1;
|
||||
#else
|
||||
out.padding = 0;
|
||||
#endif
|
||||
|
||||
fuse_reply(fuse, hdr->unique, &out, sizeof(out));
|
||||
return NO_STATUS;
|
||||
}
|
||||
|
@ -1460,6 +1472,11 @@ static int handle_init(struct fuse* fuse, struct fuse_handler* handler,
|
|||
out.major = FUSE_KERNEL_VERSION;
|
||||
out.max_readahead = req->max_readahead;
|
||||
out.flags = FUSE_ATOMIC_O_TRUNC | FUSE_BIG_WRITES;
|
||||
|
||||
#ifdef FUSE_STACKED_IO
|
||||
out.flags |= FUSE_STACKED_IO;
|
||||
#endif
|
||||
|
||||
out.max_background = 32;
|
||||
out.congestion_threshold = 32;
|
||||
out.max_write = MAX_WRITE;
|
||||
|
|
Loading…
Reference in New Issue