diff options
Diffstat (limited to 'packages/google-compute-engine/src')
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) |