summaryrefslogtreecommitdiff
path: root/packages/google-compute-engine/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/google-compute-engine/src')
-rw-r--r--packages/google-compute-engine/src/etc/init/google-accounts-daemon.conf6
-rw-r--r--packages/google-compute-engine/src/etc/init/google-clock-skew-daemon.conf5
-rw-r--r--packages/google-compute-engine/src/etc/init/google-instance-setup.conf6
-rw-r--r--packages/google-compute-engine/src/etc/init/google-network-daemon.conf5
-rw-r--r--packages/google-compute-engine/src/etc/init/google-shutdown-scripts.conf5
-rw-r--r--packages/google-compute-engine/src/etc/init/google-startup-scripts.conf4
-rw-r--r--packages/google-compute-engine/src/lib/systemd/system-preset/90-google-compute-engine.preset6
-rw-r--r--packages/google-compute-engine/src/lib/systemd/system/google-accounts-daemon.service13
-rw-r--r--packages/google-compute-engine/src/lib/systemd/system/google-clock-skew-daemon.service11
-rw-r--r--packages/google-compute-engine/src/lib/systemd/system/google-instance-setup.service13
-rw-r--r--packages/google-compute-engine/src/lib/systemd/system/google-network-daemon.service13
-rw-r--r--packages/google-compute-engine/src/lib/systemd/system/google-shutdown-scripts.service15
-rw-r--r--packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service14
-rwxr-xr-xpackages/google-compute-engine/src/usr/bin/google_set_multiqueue25
14 files changed, 22 insertions, 119 deletions
diff --git a/packages/google-compute-engine/src/etc/init/google-accounts-daemon.conf b/packages/google-compute-engine/src/etc/init/google-accounts-daemon.conf
deleted file mode 100644
index 02a7d65..0000000
--- a/packages/google-compute-engine/src/etc/init/google-accounts-daemon.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-# Manages accounts from metadata SSH keys.
-start on started google-network-daemon
-oom -16
-
-respawn
-exec /usr/bin/google_accounts_daemon
diff --git a/packages/google-compute-engine/src/etc/init/google-clock-skew-daemon.conf b/packages/google-compute-engine/src/etc/init/google-clock-skew-daemon.conf
deleted file mode 100644
index 05c73ce..0000000
--- a/packages/google-compute-engine/src/etc/init/google-clock-skew-daemon.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-# Sync the system clock on migration.
-start on started google-network-daemon
-
-respawn
-exec /usr/bin/google_clock_skew_daemon
diff --git a/packages/google-compute-engine/src/etc/init/google-instance-setup.conf b/packages/google-compute-engine/src/etc/init/google-instance-setup.conf
deleted file mode 100644
index 2c7d596..0000000
--- a/packages/google-compute-engine/src/etc/init/google-instance-setup.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-# Runs instance setup on boot.
-start on started rsyslog
-
-task
-
-exec /usr/bin/google_instance_setup
diff --git a/packages/google-compute-engine/src/etc/init/google-network-daemon.conf b/packages/google-compute-engine/src/etc/init/google-network-daemon.conf
deleted file mode 100644
index d2e985a..0000000
--- a/packages/google-compute-engine/src/etc/init/google-network-daemon.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-# Manages network interfaces.
-start on stopped google-instance-setup
-
-respawn
-exec /usr/bin/google_network_daemon
diff --git a/packages/google-compute-engine/src/etc/init/google-shutdown-scripts.conf b/packages/google-compute-engine/src/etc/init/google-shutdown-scripts.conf
deleted file mode 100644
index b9323a5..0000000
--- a/packages/google-compute-engine/src/etc/init/google-shutdown-scripts.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-# Runs a shutdown script from metadata.
-start on starting rc RUNLEVEL=[06]
-task
-
-exec /usr/bin/google_metadata_script_runner --script-type shutdown
diff --git a/packages/google-compute-engine/src/etc/init/google-startup-scripts.conf b/packages/google-compute-engine/src/etc/init/google-startup-scripts.conf
deleted file mode 100644
index 664297c..0000000
--- a/packages/google-compute-engine/src/etc/init/google-startup-scripts.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-# Runs a startup script from metadata.
-start on started google-network-daemon and startup
-
-exec /usr/bin/google_metadata_script_runner --script-type startup
diff --git a/packages/google-compute-engine/src/lib/systemd/system-preset/90-google-compute-engine.preset b/packages/google-compute-engine/src/lib/systemd/system-preset/90-google-compute-engine.preset
deleted file mode 100644
index b903cb7..0000000
--- a/packages/google-compute-engine/src/lib/systemd/system-preset/90-google-compute-engine.preset
+++ /dev/null
@@ -1,6 +0,0 @@
-enable google-accounts-daemon.service
-enable google-clock-skew-daemon.service
-enable google-instance-setup.service
-enable google-network-daemon.service
-enable google-shutdown-scripts.service
-enable google-startup-scripts.service
diff --git a/packages/google-compute-engine/src/lib/systemd/system/google-accounts-daemon.service b/packages/google-compute-engine/src/lib/systemd/system/google-accounts-daemon.service
deleted file mode 100644
index db627aa..0000000
--- a/packages/google-compute-engine/src/lib/systemd/system/google-accounts-daemon.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Google Compute Engine Accounts Daemon
-After=network.target google-instance-setup.service google-network-daemon.service
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/google_accounts_daemon
-OOMScoreAdjust=-999
-Restart=always
-StandardOutput=journal+console
-
-[Install]
-WantedBy=multi-user.target
diff --git a/packages/google-compute-engine/src/lib/systemd/system/google-clock-skew-daemon.service b/packages/google-compute-engine/src/lib/systemd/system/google-clock-skew-daemon.service
deleted file mode 100644
index 9339116..0000000
--- a/packages/google-compute-engine/src/lib/systemd/system/google-clock-skew-daemon.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Google Compute Engine Clock Skew Daemon
-After=network.target google-instance-setup.service google-network-daemon.service
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/google_clock_skew_daemon
-StandardOutput=journal+console
-
-[Install]
-WantedBy=multi-user.target
diff --git a/packages/google-compute-engine/src/lib/systemd/system/google-instance-setup.service b/packages/google-compute-engine/src/lib/systemd/system/google-instance-setup.service
deleted file mode 100644
index ee987b2..0000000
--- a/packages/google-compute-engine/src/lib/systemd/system/google-instance-setup.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Google Compute Engine Instance Setup
-After=network-online.target network.target rsyslog.service
-Before=sshd.service
-
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/google_instance_setup
-StandardOutput=journal+console
-
-[Install]
-WantedBy=sshd.service
-WantedBy=multi-user.target
diff --git a/packages/google-compute-engine/src/lib/systemd/system/google-network-daemon.service b/packages/google-compute-engine/src/lib/systemd/system/google-network-daemon.service
deleted file mode 100644
index 71745d4..0000000
--- a/packages/google-compute-engine/src/lib/systemd/system/google-network-daemon.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Google Compute Engine Network Daemon
-After=network-online.target network.target
-After=google-instance-setup.service
-PartOf=network.service
-
-[Service]
-Type=simple
-ExecStart=/usr/bin/google_network_daemon
-StandardOutput=journal+console
-
-[Install]
-WantedBy=multi-user.target
diff --git a/packages/google-compute-engine/src/lib/systemd/system/google-shutdown-scripts.service b/packages/google-compute-engine/src/lib/systemd/system/google-shutdown-scripts.service
deleted file mode 100644
index ae23d76..0000000
--- a/packages/google-compute-engine/src/lib/systemd/system/google-shutdown-scripts.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=Google Compute Engine Shutdown Scripts
-After=network-online.target network.target rsyslog.service
-After=google-instance-setup.service google-network-daemon.service
-
-[Service]
-ExecStart=/bin/true
-ExecStop=/usr/bin/google_metadata_script_runner --script-type shutdown
-Type=oneshot
-RemainAfterExit=true
-TimeoutStopSec=0
-StandardOutput=journal+console
-
-[Install]
-WantedBy=multi-user.target
diff --git a/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service b/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service
deleted file mode 100644
index c150693..0000000
--- a/packages/google-compute-engine/src/lib/systemd/system/google-startup-scripts.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Google Compute Engine Startup Scripts
-After=network-online.target network.target rsyslog.service
-After=google-instance-setup.service google-network-daemon.service
-Before=apt-daily.service
-
-[Service]
-ExecStart=/usr/bin/google_metadata_script_runner --script-type startup
-KillMode=process
-Type=oneshot
-StandardOutput=journal+console
-
-[Install]
-WantedBy=multi-user.target
diff --git a/packages/google-compute-engine/src/usr/bin/google_set_multiqueue b/packages/google-compute-engine/src/usr/bin/google_set_multiqueue
index 7064a6b..1cc4da0 100755
--- a/packages/google-compute-engine/src/usr/bin/google_set_multiqueue
+++ b/packages/google-compute-engine/src/usr/bin/google_set_multiqueue
@@ -26,6 +26,14 @@
# configuration allows network traffic to be spread across the CPUs, giving
# each CPU a dedicated TX and RX network queue, while ensuring that all packets
# from a single flow are delivered to the same CPU.
+#
+# For a gvnic device, set the IRQ affinities to the per-IRQ affinity hint.
+# The google virtual ethernet driver maps each queue MSI-X interrupt to a
+# unique single CPU, which is stored in the affinity_hint for each MSI-X
+# vector. In older versions of the kernel, irqblanace is expected to copy the
+# affinity_hint to smp_affinity; however, GCE instances disable irqbalance by
+# default. This script copies over the affinity_hint to smp_affinity on boot to
+# replicate the behavior of irqbalance.
function is_decimal_int() {
[ "${1}" -eq "${1}" ] > /dev/null 2>&1
@@ -36,11 +44,11 @@ function set_channels() {
}
echo "Running $(basename $0)."
-NET_DEVS=/sys/bus/virtio/drivers/virtio_net/virtio*
+VIRTIO_NET_DEVS=/sys/bus/virtio/drivers/virtio_net/virtio*
# Loop through all the virtionet devices and enable multi-queue
if [ -x "$(command -v ethtool)" ]; then
- for dev in $NET_DEVS; do
+ for dev in $VIRTIO_NET_DEVS; do
ETH_DEVS=${dev}/net/*
for eth_dev in $ETH_DEVS; do
eth_dev=$(basename "$eth_dev")
@@ -62,7 +70,7 @@ else
echo "ethtool not found: cannot configure virtionet multiqueue."
fi
-for dev in $NET_DEVS
+for dev in $VIRTIO_NET_DEVS
do
dev=$(basename "$dev")
irq_dir=/proc/irq/*
@@ -104,6 +112,17 @@ do
done
done
+# Set smp_affinity properly for gvnic queues. '-ntfy-block.' is unique to gve
+# and will not affect virtio queues.
+for i in /proc/irq/*; do
+ if ls ${i}/*-ntfy-block.* 1> /dev/null 2>&1; then
+ if [ -f ${i}/affinity_hint ]; then
+ echo Setting smp_affinity on ${i} to $(cat ${i}/affinity_hint)
+ cp ${i}/affinity_hint ${i}/smp_affinity
+ fi
+ fi
+done
+
XPS=/sys/class/net/e*/queues/tx*/xps_cpus
num_cpus=$(nproc)