Pixel 2018: Move XR-related init.rc entries to a dedicated file
Origin CLs that introduced these init.rc entries:
ag/2066998: wahoo: Create PDX socket dirs and cpusets for VR services
ag/2485419: Fix DVR cpusets for wahoo
Note that the original crosshatch configurations were copied from were
copied from wahoo device through the following CL:
ag/2466319: crosshatch: Reset to wahoo on master
Bug: 129787612
Test: Build blueline-eng, blueline_xr-eng, crosshatch-eng, crosshatch_xr-eng
Change-Id: I9ca7229d2c19b5a8e8fe5c8823abd1984d494ea5
diff --git a/device.mk b/device.mk
index 9b06400..1d0539c 100644
--- a/device.mk
+++ b/device.mk
@@ -81,7 +81,6 @@
PRODUCT_COPY_FILES += \
$(LOCAL_KERNEL):kernel \
$(LOCAL_PATH)/init.recovery.hardware.rc:recovery/root/init.recovery.$(PRODUCT_PLATFORM).rc \
- $(LOCAL_PATH)/init.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).rc \
$(LOCAL_PATH)/init.hardware.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).usb.rc \
$(LOCAL_PATH)/ueventd.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \
$(LOCAL_PATH)/init.power.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).power.rc \
@@ -104,6 +103,18 @@
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.edge_sense.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.edge_sense.sh
+ifeq (,$(filter %_xr,$(TARGET_PRODUCT)))
+ PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/init.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).rc
+else
+ # XR variants for Pixel devices (e.g. blueline_xr and crosshatch_xr). Note
+ # that this is a nonintrusive way to add XR-specific init.rc entries, as the
+ # init.hardware.xr.rc file imports the original init.hardware.rc file.
+ PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/init.hardware.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).common.rc \
+ $(LOCAL_PATH)/init.hardware.xr.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).rc
+endif
+
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.diag.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).diag.rc
diff --git a/init.hardware.rc b/init.hardware.rc
index f5aa638..6349fdc 100644
--- a/init.hardware.rc
+++ b/init.hardware.rc
@@ -140,15 +140,6 @@
write /dev/stune/top-app/schedtune.boost 10
write /dev/stune/top-app/schedtune.prefer_idle 1
- # Setup cpusets used by the VR services.
- mkdir /dev/cpuset/kernel 0750 root system
- write /dev/cpuset/kernel/cpus 0
- write /dev/cpuset/kernel/mems 0
- chown system system /dev/cpuset/kernel/tasks
- chown system system /dev/cpuset/kernel/cpus
- chmod 0660 /dev/cpuset/kernel/tasks
- chmod 0660 /dev/cpuset/kernel/cpus
-
mkdir /dev/cpuset/camera-daemon
write /dev/cpuset/camera-daemon/cpus 0-7
write /dev/cpuset/camera-daemon/mems 0
@@ -156,52 +147,6 @@
chown system system /dev/cpuset/camera-daemon/tasks
chmod 0664 /dev/cpuset/camera-daemon/tasks
- mkdir /dev/cpuset/system 0750 root system
- write /dev/cpuset/system/cpus 0
- write /dev/cpuset/system/mems 0
- chown system system /dev/cpuset/system/tasks
- chmod 0660 /dev/cpuset/system/tasks
-
- mkdir /dev/cpuset/system/performance 0750 root system
- write /dev/cpuset/system/performance/cpus 0
- write /dev/cpuset/system/performance/mems 0
- chown system system /dev/cpuset/system/performance/tasks
- chmod 0660 /dev/cpuset/system/performance/tasks
-
- mkdir /dev/cpuset/system/background 0750 root system
- write /dev/cpuset/system/background/cpus 0
- write /dev/cpuset/system/background/mems 0
- chown system system /dev/cpuset/system/background/tasks
- chmod 0660 /dev/cpuset/system/background/tasks
-
- mkdir /dev/cpuset/application 0750 root system
- write /dev/cpuset/application/cpus 0
- write /dev/cpuset/application/mems 0
- chown system system /dev/cpuset/application/tasks
- chmod 0660 /dev/cpuset/application/tasks
-
- mkdir /dev/cpuset/application/performance 0750 root system
- write /dev/cpuset/application/performance/cpus 0
- write /dev/cpuset/application/performance/mems 0
- chown system system /dev/cpuset/application/performance/tasks
- chmod 0660 /dev/cpuset/application/performance/tasks
-
- mkdir /dev/cpuset/application/background 0750 root system
- write /dev/cpuset/application/background/cpus 0
- write /dev/cpuset/application/background/mems 0
- chown system system /dev/cpuset/application/background/tasks
- chmod 0660 /dev/cpuset/application/background/tasks
-
- # Create UDS structure for base VR services.
- mkdir /dev/socket/pdx 0775 system system
- mkdir /dev/socket/pdx/system 0775 system system
- mkdir /dev/socket/pdx/system/buffer_hub 0775 system system
- mkdir /dev/socket/pdx/system/performance 0775 system system
- mkdir /dev/socket/pdx/system/vr 0775 system system
- mkdir /dev/socket/pdx/system/vr/display 0775 system system
- mkdir /dev/socket/pdx/system/vr/pose 0775 system system
- mkdir /dev/socket/pdx/system/vr/sensors 0775 system system
-
# b/37682684 Enable suspend clock reporting
write /sys/kernel/debug/clk/debug_suspend 1
@@ -519,17 +464,6 @@
write /proc/sys/net/core/rmem_max 8388608
write /proc/sys/net/core/wmem_max 8388608
- # Update DVR cpusets to boot-time values.
- write /dev/cpuset/kernel/cpus 0-7
- write /dev/cpuset/system/cpus 0-7
- write /dev/cpuset/system/performance/cpus 0-7
- write /dev/cpuset/system/background/cpus 0-7
- write /dev/cpuset/system/cpus 0-7
- write /dev/cpuset/application/cpus 0-7
- write /dev/cpuset/application/performance/cpus 0-7
- write /dev/cpuset/application/background/cpus 0-7
- write /dev/cpuset/application/cpus 0-7
-
# Bluetooth
chown bluetooth net_bt /sys/class/rfkill/rfkill0/type
chown bluetooth net_bt /sys/class/rfkill/rfkill0/state
@@ -605,15 +539,6 @@
write /dev/cpuset/system-background/cpus 0-3
write /dev/cpuset/restricted/cpus 0-3
- # Update DVR cpusets to runtime values.
- # Kernel cpuset will be apply on PowerHAL
- write /dev/cpuset/system/performance/cpus 6-7
- write /dev/cpuset/system/background/cpus 0-1
- write /dev/cpuset/system/cpus 0-1,6-7
- write /dev/cpuset/application/performance/cpus 4-5
- write /dev/cpuset/application/background/cpus 0-1
- write /dev/cpuset/application/cpus 0-1,4-5
-
# Runtime fs tuning: as we have init boottime setting and kernel patch setting
# default readahead to 2048KB. We should adjust the setting upon boot_complete
# for runtime performance
diff --git a/init.hardware.xr.rc b/init.hardware.xr.rc
new file mode 100644
index 0000000..cbbd776
--- /dev/null
+++ b/init.hardware.xr.rc
@@ -0,0 +1,99 @@
+#
+# Copyright (C) 2019 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
+# This file inherits from init.${ro.boot.hardware.platform}.rc plus additional
+# configs only used by XR targets.
+#
+import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.common.rc
+
+on init
+ # Setup cpusets used by the VR services.
+ mkdir /dev/cpuset/kernel 0750 root system
+ write /dev/cpuset/kernel/cpus 0
+ write /dev/cpuset/kernel/mems 0
+ chown system system /dev/cpuset/kernel/tasks
+ chown system system /dev/cpuset/kernel/cpus
+ chmod 0660 /dev/cpuset/kernel/tasks
+ chmod 0660 /dev/cpuset/kernel/cpus
+
+ mkdir /dev/cpuset/system 0750 root system
+ write /dev/cpuset/system/cpus 0
+ write /dev/cpuset/system/mems 0
+ chown system system /dev/cpuset/system/tasks
+ chmod 0660 /dev/cpuset/system/tasks
+
+ mkdir /dev/cpuset/system/performance 0750 root system
+ write /dev/cpuset/system/performance/cpus 0
+ write /dev/cpuset/system/performance/mems 0
+ chown system system /dev/cpuset/system/performance/tasks
+ chmod 0660 /dev/cpuset/system/performance/tasks
+
+ mkdir /dev/cpuset/system/background 0750 root system
+ write /dev/cpuset/system/background/cpus 0
+ write /dev/cpuset/system/background/mems 0
+ chown system system /dev/cpuset/system/background/tasks
+ chmod 0660 /dev/cpuset/system/background/tasks
+
+ mkdir /dev/cpuset/application 0750 root system
+ write /dev/cpuset/application/cpus 0
+ write /dev/cpuset/application/mems 0
+ chown system system /dev/cpuset/application/tasks
+ chmod 0660 /dev/cpuset/application/tasks
+
+ mkdir /dev/cpuset/application/performance 0750 root system
+ write /dev/cpuset/application/performance/cpus 0
+ write /dev/cpuset/application/performance/mems 0
+ chown system system /dev/cpuset/application/performance/tasks
+ chmod 0660 /dev/cpuset/application/performance/tasks
+
+ mkdir /dev/cpuset/application/background 0750 root system
+ write /dev/cpuset/application/background/cpus 0
+ write /dev/cpuset/application/background/mems 0
+ chown system system /dev/cpuset/application/background/tasks
+ chmod 0660 /dev/cpuset/application/background/tasks
+
+ # Create UDS structure for base VR services.
+ mkdir /dev/socket/pdx 0775 system system
+ mkdir /dev/socket/pdx/system 0775 system system
+ mkdir /dev/socket/pdx/system/buffer_hub 0775 system system
+ mkdir /dev/socket/pdx/system/performance 0775 system system
+ mkdir /dev/socket/pdx/system/vr 0775 system system
+ mkdir /dev/socket/pdx/system/vr/display 0775 system system
+ mkdir /dev/socket/pdx/system/vr/pose 0775 system system
+ mkdir /dev/socket/pdx/system/vr/sensors 0775 system system
+
+on boot
+ # Update DVR cpusets to boot-time values.
+ write /dev/cpuset/kernel/cpus 0-7
+ write /dev/cpuset/system/cpus 0-7
+ write /dev/cpuset/system/performance/cpus 0-7
+ write /dev/cpuset/system/background/cpus 0-7
+ write /dev/cpuset/system/cpus 0-7
+ write /dev/cpuset/application/cpus 0-7
+ write /dev/cpuset/application/performance/cpus 0-7
+ write /dev/cpuset/application/background/cpus 0-7
+ write /dev/cpuset/application/cpus 0-7
+
+on property:sys.boot_completed=1
+ # Update DVR cpusets to runtime values.
+ # Kernel cpuset will be apply on PowerHAL
+ write /dev/cpuset/system/performance/cpus 6-7
+ write /dev/cpuset/system/background/cpus 0-1
+ write /dev/cpuset/system/cpus 0-1,6-7
+ write /dev/cpuset/application/performance/cpus 4-5
+ write /dev/cpuset/application/background/cpus 0-1
+ write /dev/cpuset/application/cpus 0-1,4-5