mirror of
https://github.com/OpenVoiceOS/OpenVoiceOS
synced 2025-03-09 16:10:07 +01:00
[All] Real messy commit with switch to NetworkManager, kernel bump and countless fixes that came up
This commit is contained in:
parent
fb20b65f17
commit
e306bcd9bc
@ -1 +1 @@
|
||||
Subproject commit 16cc28ca2c6e3f1c0848548877bd787e54ba78c3
|
||||
Subproject commit 68dab30c34f257a5cf1ff2baf41b77ace07d0113
|
@ -67,7 +67,7 @@ mkdir -p ${BINARIES_DIR}/home
|
||||
sudo mount -o loop,discard ${BINARIES_DIR}/homefs.ext4 ${BINARIES_DIR}/home
|
||||
|
||||
# sync home folder
|
||||
sudo rsync -ah --progress ${TARGET_DIR}/home/* ${BINARIES_DIR}/home/
|
||||
sudo rsync -avPHSX ${TARGET_DIR}/home/* ${BINARIES_DIR}/home/
|
||||
|
||||
# Unmount home image
|
||||
sudo umount ${BINARIES_DIR}/homefs.ext4
|
||||
|
@ -1,3 +1,5 @@
|
||||
[Container]
|
||||
AddDevice=/dev/gpiomem
|
||||
AddDevice=/dev/ttyAMA0
|
||||
AddDevice=/dev/spidev0.0
|
||||
AddDevice=/dev/spidev0.1
|
@ -1,3 +1,5 @@
|
||||
[Container]
|
||||
AddDevice=/dev/gpiomem
|
||||
AddDevice=/dev/ttyAMA0
|
||||
AddDevice=/dev/spidev0.0
|
||||
AddDevice=/dev/spidev0.1
|
@ -1,2 +1,14 @@
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-mk1.git
|
||||
git+https://github.com/NeonGeckoCom/neon-phal-plugin-linear_led.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-gui-network-client.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-network-manager.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-wifi-setup.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-balena-wifi.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-sensors.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-connectivity-events.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-respeaker-2mic.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-respeaker-4mic.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-ipgeo.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-wallpaper-manager.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-oauth.git
|
||||
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-homeassistant.git
|
||||
|
@ -1,15 +1,15 @@
|
||||
SUBSYSTEM=="input", GROUP="input", MODE="0666"
|
||||
SUBSYSTEM=="i2c-dev", GROUP="i2c", MODE="0660"
|
||||
SUBSYSTEM=="spidev", GROUP="spi", MODE="0660"
|
||||
SUBSYSTEM=="bcm2835-gpiomem", GROUP="gpio", MODE="0660"
|
||||
SUBSYSTEM=="bcm2835-gpiomem", GROUP="gpio", MODE="0660"
|
||||
SUBSYSTEM=="spidev", GROUP="spi", MODE="0666"
|
||||
SUBSYSTEM=="bcm2835-gpiomem", GROUP="gpio", MODE="0666"
|
||||
SUBSYSTEM=="bcm2835-gpiomem", GROUP="gpio", MODE="0666"
|
||||
SUBSYSTEM=="rpivid-*", GROUP="video", MODE="0660"
|
||||
|
||||
KERNEL=="vcsm-cma", GROUP="video", MODE="0660"
|
||||
SUBSYSTEM=="dma_heap", GROUP="video", MODE="0660"
|
||||
SUBSYSTEM=="vchiq", GROUP="video", MODE="0660"
|
||||
|
||||
SUBSYSTEM=="gpio", GROUP="gpio", MODE="0660"
|
||||
SUBSYSTEM=="gpio", GROUP="gpio", MODE="0666"
|
||||
SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="/bin/sh -c 'chgrp -R gpio /sys/class/gpio && chmod -R g=u /sys/class/gpio'"
|
||||
SUBSYSTEM=="gpio", ACTION=="add", PROGRAM="/bin/sh -c 'chgrp -R gpio /sys%p && chmod -R g=u /sys%p'"
|
||||
|
||||
|
@ -30,7 +30,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi4/post-i
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="--rpi4"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,342c7ee49e862edc30c893f141f55b9211b7a43b)/linux-342c7ee49e862edc30c893f141f55b9211b7a43b.tar.gz"
|
||||
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,3bb5880ab3dd31f75c07c3c33bf29c5d469b28f3)/linux-3bb5880ab3dd31f75c07c3c33bf29c5d469b28f3.tar.gz"
|
||||
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/kernel/ovos.config $(BR2_EXTERNAL)/kernel/device-drivers.config $(BR2_EXTERNAL)/kernel/docker.config $(BR2_EXTERNAL)/board/ovos/raspberrypi/kernel.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
@ -169,7 +169,6 @@ BR2_PACKAGE_PIXMAN=y
|
||||
BR2_PACKAGE_WEBP=y
|
||||
BR2_PACKAGE_WIREPLUMBER=y
|
||||
BR2_PACKAGE_ZBAR=y
|
||||
BR2_PACKAGE_LIBGUDEV=y
|
||||
BR2_PACKAGE_LIBINPUT=y
|
||||
BR2_PACKAGE_LIBV4L_UTILS=y
|
||||
BR2_PACKAGE_JSON_GLIB=y
|
||||
@ -181,7 +180,7 @@ BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC=y
|
||||
BR2_PACKAGE_LIBCAMERA_APPS=y
|
||||
BR2_PACKAGE_LIBCURL=y
|
||||
BR2_PACKAGE_LIBCURL_CURL=y
|
||||
BR2_PACKAGE_LIBNDP=y
|
||||
BR2_PACKAGE_LIBDNET=y
|
||||
BR2_PACKAGE_LIBNICE=y
|
||||
BR2_PACKAGE_LIBRSYNC=y
|
||||
BR2_PACKAGE_LIBSOUP=y
|
||||
@ -195,6 +194,7 @@ BR2_PACKAGE_LIBCAP_TOOLS=y
|
||||
BR2_PACKAGE_LIBNPTH=y
|
||||
BR2_PACKAGE_LIBFRIBIDI=y
|
||||
BR2_PACKAGE_PCRE2=y
|
||||
BR2_PACKAGE_AARDVARK_DNS=y
|
||||
BR2_PACKAGE_AVAHI=y
|
||||
BR2_PACKAGE_AVAHI_DAEMON=y
|
||||
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
|
||||
@ -210,9 +210,17 @@ BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS_TOOLS_HID2HCI=y
|
||||
BR2_PACKAGE_CRDA=y
|
||||
BR2_PACKAGE_DNSMASQ=y
|
||||
BR2_PACKAGE_IFUPDOWN=y
|
||||
BR2_PACKAGE_IPROUTE2=y
|
||||
BR2_PACKAGE_IPUTILS=y
|
||||
BR2_PACKAGE_IW=y
|
||||
BR2_PACKAGE_NET_TOOLS=y
|
||||
BR2_PACKAGE_NETAVARK=y
|
||||
BR2_PACKAGE_NETWORK_MANAGER=y
|
||||
BR2_PACKAGE_NETWORK_MANAGER_TUI=y
|
||||
BR2_PACKAGE_NETWORK_MANAGER_CLI=y
|
||||
BR2_PACKAGE_NETWORK_MANAGER_MODEM_MANAGER=y
|
||||
BR2_PACKAGE_OPENSSH=y
|
||||
# BR2_PACKAGE_OPENSSH_SANDBOX is not set
|
||||
BR2_PACKAGE_WGET=y
|
||||
@ -242,7 +250,6 @@ BR2_PACKAGE_COREUTILS=y
|
||||
BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES=y
|
||||
BR2_PACKAGE_EFIBOOTMGR=y
|
||||
BR2_PACKAGE_HTOP=y
|
||||
BR2_PACKAGE_OPENVMTOOLS=y
|
||||
BR2_PACKAGE_PODMAN=y
|
||||
BR2_PACKAGE_PODMAN_DRIVER_BTRFS=y
|
||||
BR2_PACKAGE_PODMAN_DRIVER_DEVICEMAPPER=y
|
||||
@ -258,19 +265,21 @@ BR2_PACKAGE_SWUPDATE=y
|
||||
BR2_PACKAGE_SWUPDATE_CONFIG="$(BR2_EXTERNAL)/swupdate.config"
|
||||
BR2_PACKAGE_SWUPDATE_USB=y
|
||||
BR2_PACKAGE_SYSTEMD_ANALYZE=y
|
||||
BR2_PACKAGE_SYSTEMD_BACKLIGHT=y
|
||||
# BR2_PACKAGE_SYSTEMD_PSTORE is not set
|
||||
BR2_PACKAGE_SYSTEMD_FIRSTBOOT=y
|
||||
BR2_PACKAGE_SYSTEMD_HIBERNATE=y
|
||||
# BR2_PACKAGE_SYSTEMD_HWDB is not set
|
||||
BR2_PACKAGE_SYSTEMD_LOCALED=y
|
||||
BR2_PACKAGE_SYSTEMD_LOGIND=y
|
||||
BR2_PACKAGE_SYSTEMD_MACHINED=y
|
||||
# BR2_PACKAGE_SYSTEMD_NETWORKD is not set
|
||||
BR2_PACKAGE_SYSTEMD_OOMD=y
|
||||
BR2_PACKAGE_SYSTEMD_POLKIT=y
|
||||
BR2_PACKAGE_SYSTEMD_RANDOMSEED=y
|
||||
BR2_PACKAGE_SYSTEMD_REPART=y
|
||||
# BR2_PACKAGE_SYSTEMD_RESOLVED is not set
|
||||
BR2_PACKAGE_SYSTEMD_RFKILL=y
|
||||
# BR2_PACKAGE_SYSTEMD_VCONSOLE is not set
|
||||
BR2_PACKAGE_SYSTEMD_BOOTCHART=y
|
||||
BR2_PACKAGE_TAR=y
|
||||
BR2_PACKAGE_UTIL_LINUX_BINARIES=y
|
||||
BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y
|
||||
@ -316,4 +325,5 @@ BR2_PACKAGE_ROC_TOOLKIT=y
|
||||
BR2_PACKAGE_RPI_EEPROM=y
|
||||
BR2_PACKAGE_USERLAND_TOOLS=y
|
||||
BR2_PACKAGE_VOCALFUSION=y
|
||||
BR2_PACKAGE_WIFI_CONNECT=y
|
||||
BR2_PACKAGE_PYTHON_SMBUS2=y
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 52072a197524e62baa4ac9a5f33d15cd8b27fb17 Mon Sep 17 00:00:00 2001
|
||||
From fad2ed9bfa2fce870133fadd15b4d12a26213096 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 16 Aug 2022 09:45:22 +0200
|
||||
Subject: [PATCH 01/62] vduse: Remove include of rwlock.h
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d5541b6ef4eccee650abfe3095b9e7365773494c Mon Sep 17 00:00:00 2001
|
||||
From 2defd6085e9803ba06f6b56f6f901309462761a6 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 22 Jun 2022 11:36:17 +0200
|
||||
Subject: [PATCH 02/62] signal: Don't disable preemption in ptrace_stop() on
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e4742fc784660e012dc23090a72614bf1f9a0ca1 Mon Sep 17 00:00:00 2001
|
||||
From af0232b0cb6d5afed7dab020d7dca4759ad93757 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 22 Jun 2022 12:27:05 +0200
|
||||
Subject: [PATCH 03/62] sched: Consider task_struct::saved_state in
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 638117350cb3452dd5043156c7e394befe7d6eb9 Mon Sep 17 00:00:00 2001
|
||||
From 501df2b62fce3d3cea107bfc7c8c28283a62dc01 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 25 Aug 2022 16:15:32 +0200
|
||||
Subject: [PATCH 04/62] spi: Remove the obsolte u64_stats_fetch_*_irq() users.
|
||||
@ -18,7 +18,7 @@ Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
|
||||
index 5d046be8b2dd..716e6d6ecf98 100644
|
||||
index 22d227878bc4..75cc8bbc2b14 100644
|
||||
--- a/drivers/spi/spi.c
|
||||
+++ b/drivers/spi/spi.c
|
||||
@@ -127,10 +127,10 @@ do { \
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d1c3fb886c8b630c3a70f2f7192d53f545798283 Mon Sep 17 00:00:00 2001
|
||||
From 06b58043930deffafd35aacc0b3f2af41ea720b3 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 25 Aug 2022 16:15:44 +0200
|
||||
Subject: [PATCH 05/62] net: Remove the obsolte u64_stats_fetch_*_irq() users
|
||||
@ -723,10 +723,10 @@ index 107bcca7db8c..8f36fe90180f 100644
|
||||
/* Once we successfully copy the stats in, update the data pointer */
|
||||
*data += size;
|
||||
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
|
||||
index b4157ff370a3..3b1f912c4c2b 100644
|
||||
index 63d43ef86f9b..8003cf091eee 100644
|
||||
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
|
||||
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
|
||||
@@ -419,10 +419,10 @@ static void i40e_get_netdev_stats_struct_tx(struct i40e_ring *ring,
|
||||
@@ -425,10 +425,10 @@ static void i40e_get_netdev_stats_struct_tx(struct i40e_ring *ring,
|
||||
unsigned int start;
|
||||
|
||||
do {
|
||||
@ -739,7 +739,7 @@ index b4157ff370a3..3b1f912c4c2b 100644
|
||||
|
||||
stats->tx_packets += packets;
|
||||
stats->tx_bytes += bytes;
|
||||
@@ -472,10 +472,10 @@ static void i40e_get_netdev_stats_struct(struct net_device *netdev,
|
||||
@@ -478,10 +478,10 @@ static void i40e_get_netdev_stats_struct(struct net_device *netdev,
|
||||
if (!ring)
|
||||
continue;
|
||||
do {
|
||||
@ -752,7 +752,7 @@ index b4157ff370a3..3b1f912c4c2b 100644
|
||||
|
||||
stats->rx_packets += packets;
|
||||
stats->rx_bytes += bytes;
|
||||
@@ -897,10 +897,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)
|
||||
@@ -903,10 +903,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)
|
||||
continue;
|
||||
|
||||
do {
|
||||
@ -765,7 +765,7 @@ index b4157ff370a3..3b1f912c4c2b 100644
|
||||
tx_b += bytes;
|
||||
tx_p += packets;
|
||||
tx_restart += p->tx_stats.restart_queue;
|
||||
@@ -915,10 +915,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)
|
||||
@@ -921,10 +921,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)
|
||||
continue;
|
||||
|
||||
do {
|
||||
@ -778,7 +778,7 @@ index b4157ff370a3..3b1f912c4c2b 100644
|
||||
rx_b += bytes;
|
||||
rx_p += packets;
|
||||
rx_buf += p->rx_stats.alloc_buff_failed;
|
||||
@@ -935,10 +935,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)
|
||||
@@ -941,10 +941,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)
|
||||
continue;
|
||||
|
||||
do {
|
||||
@ -823,7 +823,7 @@ index f4ac2b164b3e..892c6a4f03bb 100644
|
||||
/* Once we successfully copy the stats in, update the data pointer */
|
||||
*data += size;
|
||||
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
|
||||
index f0f39364819a..f8d722339e89 100644
|
||||
index ab46cfca4028..aa74ce9afdf2 100644
|
||||
--- a/drivers/net/ethernet/intel/ice/ice_main.c
|
||||
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
|
||||
@@ -6419,10 +6419,10 @@ ice_fetch_u64_stats_per_ring(struct u64_stats_sync *syncp,
|
||||
@ -910,7 +910,7 @@ index 45ce4ed16146..9824f7cfaca4 100644
|
||||
packets += _packets;
|
||||
}
|
||||
diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
|
||||
index 81897f7a90a9..dd8a9d27a167 100644
|
||||
index 2bee9cace598..f7284fa4324a 100644
|
||||
--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
|
||||
+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
|
||||
@@ -840,15 +840,15 @@ static void igc_ethtool_get_stats(struct net_device *netdev,
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a0c8ef7e6160582c71c0d8b1786d8e45dcc02132 Mon Sep 17 00:00:00 2001
|
||||
From 62269129168ade34b47e64d0c82c16ea665e2bfe Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 25 Aug 2022 16:17:37 +0200
|
||||
Subject: [PATCH 06/62] net: Remove the obsolte u64_stats_fetch_*_irq() users
|
||||
@ -87,10 +87,10 @@ index 9ffd40b8270c..bc75fa1e4666 100644
|
||||
u64_stats_add(&stats->rx_packets, rxpackets);
|
||||
u64_stats_add(&stats->rx_bytes, rxbytes);
|
||||
diff --git a/net/core/dev.c b/net/core/dev.c
|
||||
index 0d5aa820fd83..070039f9296c 100644
|
||||
index 0a5566b6f8a2..29ae6265a408 100644
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -10505,12 +10505,12 @@ void dev_fetch_sw_netstats(struct rtnl_link_stats64 *s,
|
||||
@@ -10508,12 +10508,12 @@ void dev_fetch_sw_netstats(struct rtnl_link_stats64 *s,
|
||||
|
||||
stats = per_cpu_ptr(netstats, cpu);
|
||||
do {
|
||||
@ -226,10 +226,10 @@ index 5fe075bf479e..28ee63ec1d1d 100644
|
||||
data[1] += tx_bytes;
|
||||
data[2] += rx_packets;
|
||||
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
|
||||
index 5d379df90c82..312c730b725f 100644
|
||||
index 347c3768df6e..bc3d36463e32 100644
|
||||
--- a/net/ipv4/af_inet.c
|
||||
+++ b/net/ipv4/af_inet.c
|
||||
@@ -1708,9 +1708,9 @@ u64 snmp_get_cpu_field64(void __percpu *mib, int cpu, int offt,
|
||||
@@ -1726,9 +1726,9 @@ u64 snmp_get_cpu_field64(void __percpu *mib, int cpu, int offt,
|
||||
bhptr = per_cpu_ptr(mib, cpu);
|
||||
syncp = (struct u64_stats_sync *)(bhptr + syncp_offset);
|
||||
do {
|
||||
@ -326,7 +326,7 @@ index 17a1b731a76b..2be696513629 100644
|
||||
seq_printf(seq, "%3X %8LX %8LX %8LX %16LX %16LX\n",
|
||||
i, (u64)conns, (u64)inpkts,
|
||||
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
|
||||
index 05fa5141af51..ab1888991ae5 100644
|
||||
index 3d6ebb9877a4..0e237f0356ae 100644
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -1692,10 +1692,10 @@ static int nft_dump_stats(struct sk_buff *skb, struct nft_stats __percpu *stats)
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b8cff7d0320e3b39f098d9562373e1c16c54c46c Mon Sep 17 00:00:00 2001
|
||||
From 9350167d72e9692f289b2569b6f24da0b894aac6 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 25 Aug 2022 16:17:57 +0200
|
||||
Subject: [PATCH 07/62] bpf: Remove the obsolte u64_stats_fetch_*_irq() users.
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b908a7b47d95003c498f2f575285f528148602d6 Mon Sep 17 00:00:00 2001
|
||||
From cf6d7ad80beb2d90140c212f8ccd32197e0eccdb Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 25 Aug 2022 16:43:46 +0200
|
||||
Subject: [PATCH 08/62] u64_stat: Remove the obsolete fetch_irq() variants.
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c910f301d71266e18f63407ec6c65d19ae90e779 Mon Sep 17 00:00:00 2001
|
||||
From 37205f0ce3bef04671d958f03e1460dcaeed41b7 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 15 Aug 2022 17:29:50 +0200
|
||||
Subject: [PATCH 09/62] net: Avoid the IPI to free the
|
||||
@ -40,10 +40,10 @@ index 0373e0935990..55d698367883 100644
|
||||
|
||||
static inline void input_queue_head_incr(struct softnet_data *sd)
|
||||
diff --git a/net/core/dev.c b/net/core/dev.c
|
||||
index 070039f9296c..a3caa23be3cf 100644
|
||||
index 29ae6265a408..6a13043ff0f3 100644
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -4618,15 +4618,6 @@ static void rps_trigger_softirq(void *data)
|
||||
@@ -4621,15 +4621,6 @@ static void rps_trigger_softirq(void *data)
|
||||
|
||||
#endif /* CONFIG_RPS */
|
||||
|
||||
@ -59,7 +59,7 @@ index 070039f9296c..a3caa23be3cf 100644
|
||||
/*
|
||||
* Check if this softnet_data structure is another cpu one
|
||||
* If yes, queue it to our IPI list and return 1
|
||||
@@ -6684,6 +6675,30 @@ static void skb_defer_free_flush(struct softnet_data *sd)
|
||||
@@ -6687,6 +6678,30 @@ static void skb_defer_free_flush(struct softnet_data *sd)
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,7 +90,7 @@ index 070039f9296c..a3caa23be3cf 100644
|
||||
static __latent_entropy void net_rx_action(struct softirq_action *h)
|
||||
{
|
||||
struct softnet_data *sd = this_cpu_ptr(&softnet_data);
|
||||
@@ -11435,7 +11450,11 @@ static int __init net_dev_init(void)
|
||||
@@ -11438,7 +11453,11 @@ static int __init net_dev_init(void)
|
||||
INIT_CSD(&sd->csd, rps_trigger_softirq, sd);
|
||||
sd->cpu = i;
|
||||
#endif
|
||||
@ -103,10 +103,10 @@ index 070039f9296c..a3caa23be3cf 100644
|
||||
|
||||
init_gro_hash(&sd->backlog);
|
||||
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
|
||||
index 73b1e0e53534..a457a3445469 100644
|
||||
index 8a819d0a7bfb..424ad963fa0c 100644
|
||||
--- a/net/core/skbuff.c
|
||||
+++ b/net/core/skbuff.c
|
||||
@@ -6680,6 +6680,11 @@ nodefer: __kfree_skb(skb);
|
||||
@@ -6682,6 +6682,11 @@ nodefer: __kfree_skb(skb);
|
||||
/* Make sure to trigger NET_RX_SOFTIRQ on the remote CPU
|
||||
* if we are unlucky enough (this seems very unlikely).
|
||||
*/
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ce04e41eb149fcd93a71b63a605423d7f18ec8b4 Mon Sep 17 00:00:00 2001
|
||||
From bd3f264eeb33c0602b3f9d66a603e5a2e8f9d9ee Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 7 Aug 2019 18:15:38 +0200
|
||||
Subject: [PATCH 10/62] x86: Allow to enable RT
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 28dbe0fc30a2d3e519fac1ffe18fe7427f1f49b3 Mon Sep 17 00:00:00 2001
|
||||
From 4c22c4a6e79603a30f6b875c8fd65efdad35ac8f Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 7 Nov 2019 17:49:20 +0100
|
||||
Subject: [PATCH 11/62] x86: Enable RT also on 32bit
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 454343a4f08e5de772024588aec2bd396177ee89 Mon Sep 17 00:00:00 2001
|
||||
From d2864e2d892720940d5a3acb606abcc10089bd73 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 1 Dec 2021 17:41:09 +0100
|
||||
Subject: [PATCH 12/62] softirq: Use a dedicated thread for timer wakeups.
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a10aa54ef224bbd46ca1777e4b9fe960360961cc Mon Sep 17 00:00:00 2001
|
||||
From f760da57a984738f88b96dfa5edb89d0723901ca Mon Sep 17 00:00:00 2001
|
||||
From: Frederic Weisbecker <frederic@kernel.org>
|
||||
Date: Tue, 5 Apr 2022 03:07:51 +0200
|
||||
Subject: [PATCH 13/62] rcutorture: Also force sched priority to timersd on
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ae3e63c4320c0c2d3865ba8ecff64a6d03948ce7 Mon Sep 17 00:00:00 2001
|
||||
From 9220b21155b9f55725886fb46c85df7ee0288ce0 Mon Sep 17 00:00:00 2001
|
||||
From: Frederic Weisbecker <frederic@kernel.org>
|
||||
Date: Tue, 5 Apr 2022 03:07:52 +0200
|
||||
Subject: [PATCH 14/62] tick: Fix timer storm since introduction of timersd
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ca98adaa69af0a5f3bb28cccb6543ee3e0c4a23f Mon Sep 17 00:00:00 2001
|
||||
From 7c8c231b4a43dd06e6c90d5c820342ee3f8e9130 Mon Sep 17 00:00:00 2001
|
||||
From: Junxiao Chang <junxiao.chang@intel.com>
|
||||
Date: Mon, 20 Feb 2023 09:12:20 +0100
|
||||
Subject: [PATCH 15/62] softirq: Wake ktimers thread also in softirq.
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 87e5c70f401b5230b5125dedc88e10f54909a37e Mon Sep 17 00:00:00 2001
|
||||
From a61678645efc9d4aa757b038d91bbef571c3ba17 Mon Sep 17 00:00:00 2001
|
||||
From: Haris Okanovic <haris.okanovic@ni.com>
|
||||
Date: Tue, 15 Aug 2017 15:13:08 -0500
|
||||
Subject: [PATCH 16/62] tpm_tis: fix stall after iowrite*()s
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8397109d43ef57d5e91d738354b9c30f49cb2f95 Mon Sep 17 00:00:00 2001
|
||||
From 5881f1272a6bf4dc4c7553942f95fa850416700c Mon Sep 17 00:00:00 2001
|
||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Thu, 31 Mar 2016 04:08:28 +0200
|
||||
Subject: [PATCH 17/62] zram: Replace bit spinlocks with spinlock_t for
|
||||
|
@ -1,4 +1,4 @@
|
||||
From dd162e2589601c792a81a3c19ef4a87510ed6ce5 Mon Sep 17 00:00:00 2001
|
||||
From 0b833bd5bb0c55f681cf80dc6eaf59ab1cea7b51 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 11 Mar 2022 17:44:57 +0100
|
||||
Subject: [PATCH 18/62] locking/lockdep: Remove lockdep_init_map_crosslock.
|
||||
|
@ -1,4 +1,4 @@
|
||||
From dd4e52ae061806da556008ca819481befcff0fd3 Mon Sep 17 00:00:00 2001
|
||||
From 353209a61511cccc1372d883ffe41fcff355055b Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 19 Jul 2022 20:08:01 +0200
|
||||
Subject: [PATCH 19/62] printk: Bring back the RT bits.
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 18343f23a5f1d466a0c74806983066efba932d5d Mon Sep 17 00:00:00 2001
|
||||
From 30f2ae30ddb074556a0f9a9a6bcc4bb071d7ea12 Mon Sep 17 00:00:00 2001
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Fri, 4 Feb 2022 16:01:17 +0106
|
||||
Subject: [PATCH 20/62] printk: add infrastucture for atomic consoles
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 08b8c0b589806331dc645a8ead6be51c174d93e0 Mon Sep 17 00:00:00 2001
|
||||
From eda5ed51c656510b41e8003537c4c101dd18e51f Mon Sep 17 00:00:00 2001
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Fri, 4 Feb 2022 16:01:17 +0106
|
||||
Subject: [PATCH 21/62] serial: 8250: implement write_atomic
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a549c0dff2a1a3b11b40abc969358d8cb367871d Mon Sep 17 00:00:00 2001
|
||||
From ca6770a982bcd5497cd057b5e0a8126c2e589a14 Mon Sep 17 00:00:00 2001
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Fri, 4 Feb 2022 16:01:17 +0106
|
||||
Subject: [PATCH 22/62] printk: avoid preempt_disable() for PREEMPT_RT
|
||||
|
@ -1,4 +1,4 @@
|
||||
From f99a0874dccc1ba9f9ead4473ba09603d10946b4 Mon Sep 17 00:00:00 2001
|
||||
From b309895649470ce9b30b47fb3e9e33e31adcc4b6 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Sat, 27 Feb 2016 08:09:11 +0100
|
||||
Subject: [PATCH 23/62] drm/i915: Use preempt_disable/enable_rt() where
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 7540de1a42a1a7409b4367b67c76480f7e96d25b Mon Sep 17 00:00:00 2001
|
||||
From 725cdc8f12a18ee15bbc8eb0f44927a324e78f93 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Sat, 27 Feb 2016 09:01:42 +0100
|
||||
Subject: [PATCH 24/62] drm/i915: Don't disable interrupts on PREEMPT_RT during
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d9970290d810087f44a37de7ae6f3638ecddd3a0 Mon Sep 17 00:00:00 2001
|
||||
From d181bdd855737341003e6ac7db7567d90676ac22 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 25 Oct 2021 15:05:18 +0200
|
||||
Subject: [PATCH 25/62] drm/i915: Don't check for atomic context on PREEMPT_RT
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 05b1ad300df55e576476a0dee533c90068480372 Mon Sep 17 00:00:00 2001
|
||||
From 208d88c07a8b47060be80f0961d6a053e6eb0431 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 6 Dec 2018 09:52:20 +0100
|
||||
Subject: [PATCH 26/62] drm/i915: Disable tracing points on PREEMPT_RT
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 1fcbddeff5b9a56382a6ba0aba49578f8cdf9aa4 Mon Sep 17 00:00:00 2001
|
||||
From bbf258f5b754b9859e44f5ae0985d4b8909fa9ae Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 19 Dec 2018 10:47:02 +0100
|
||||
Subject: [PATCH 27/62] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6dfc680fe2808eaf10a9feed7e3116df60b6032f Mon Sep 17 00:00:00 2001
|
||||
From 589f8c2efbc1aced239e26520595ec4badd2439a Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 8 Sep 2021 17:18:00 +0200
|
||||
Subject: [PATCH 28/62] drm/i915/gt: Queue and wait for the irq_work item.
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6ca6d59038e0a61a7bb4904310525b1df57a2867 Mon Sep 17 00:00:00 2001
|
||||
From 5ed1df3d31e740525b94136c575967e54b2f46b9 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 8 Sep 2021 19:03:41 +0200
|
||||
Subject: [PATCH 29/62] drm/i915/gt: Use spin_lock_irq() instead of
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6779399c1acfc91f6e9b0bd4dc4abb4f3cb30c78 Mon Sep 17 00:00:00 2001
|
||||
From 2bc2145c2bb1269adaf808b2204542ef2f1ca602 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 1 Oct 2021 20:01:03 +0200
|
||||
Subject: [PATCH 30/62] drm/i915: Drop the irqs_disabled() check
|
||||
|
@ -1,4 +1,4 @@
|
||||
From fe8c8e1f1ec5c61814ee0c4c90a2cef9d35ecad6 Mon Sep 17 00:00:00 2001
|
||||
From 141420c658c028a9ead177b6313cdaad0eff61ab Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 21 Feb 2022 17:59:14 +0100
|
||||
Subject: [PATCH 31/62] Revert "drm/i915: Depend on !PREEMPT_RT."
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 87194c420f8ef3b1a8b9b63ae640180e2414e8c4 Mon Sep 17 00:00:00 2001
|
||||
From fc4755c31f7adcf012556bfc2db7e84c78aa0ad2 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 26 Oct 2012 18:50:54 +0100
|
||||
Subject: [PATCH 32/62] sched: Add support for lazy preemption
|
||||
@ -556,10 +556,10 @@ index b62d53d7c264..f2577f511a41 100644
|
||||
extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime);
|
||||
extern bool sched_rt_bandwidth_account(struct rt_rq *rt_rq);
|
||||
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
|
||||
index 87eca95b57fb..462564d652be 100644
|
||||
index deae65af76ec..edf0407d5498 100644
|
||||
--- a/kernel/trace/trace.c
|
||||
+++ b/kernel/trace/trace.c
|
||||
@@ -2616,11 +2616,19 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status)
|
||||
@@ -2630,11 +2630,19 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status)
|
||||
if (softirq_count() >> (SOFTIRQ_SHIFT + 1))
|
||||
trace_flags |= TRACE_FLAG_BH_OFF;
|
||||
|
||||
@ -581,7 +581,7 @@ index 87eca95b57fb..462564d652be 100644
|
||||
(min_t(unsigned int, migration_disable_value(), 0xf)) << 4;
|
||||
}
|
||||
|
||||
@@ -4212,15 +4220,17 @@ unsigned long trace_total_entries(struct trace_array *tr)
|
||||
@@ -4226,15 +4234,17 @@ unsigned long trace_total_entries(struct trace_array *tr)
|
||||
|
||||
static void print_lat_help_header(struct seq_file *m)
|
||||
{
|
||||
@ -608,7 +608,7 @@ index 87eca95b57fb..462564d652be 100644
|
||||
}
|
||||
|
||||
static void print_event_info(struct array_buffer *buf, struct seq_file *m)
|
||||
@@ -4254,14 +4264,16 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file
|
||||
@@ -4268,14 +4278,16 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file
|
||||
|
||||
print_event_info(buf, m);
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 37719a07083b68dad1449227e9fe66e8e6c9f2b6 Mon Sep 17 00:00:00 2001
|
||||
From 4a7f3d980fdfa78e88ce38e493b5d39384f35079 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 30 Jun 2020 11:45:14 +0200
|
||||
Subject: [PATCH 33/62] x86/entry: Use should_resched() in
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 65ce5ba8ccb26e6de364e76228e645b2c02b921d Mon Sep 17 00:00:00 2001
|
||||
From b73c9a31ab7a5c00891726ff9d5da0297243d335 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 1 Nov 2012 11:03:47 +0100
|
||||
Subject: [PATCH 34/62] x86: Support for lazy preemption
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d37c604152cbded61a8e107918d3b9950725d897 Mon Sep 17 00:00:00 2001
|
||||
From a17c5b9f7e3fef4ab8b0a87fa33e6c89f6c89cba Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 13 Jul 2021 07:52:52 +0200
|
||||
Subject: [PATCH 35/62] entry: Fix the preempt lazy fallout
|
||||
|
@ -1,4 +1,4 @@
|
||||
From f242fbbb3f85d6b9c8c8fc06ddbc83b9ca5a0511 Mon Sep 17 00:00:00 2001
|
||||
From 93b892ee12b8eb43a72f308c981f3c68c6ae8b45 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 31 Oct 2012 12:04:11 +0100
|
||||
Subject: [PATCH 36/62] arm: Add support for lazy preemption
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 65e31d7b980c1413f19fcb84234387f97b09588f Mon Sep 17 00:00:00 2001
|
||||
From 27570b59eda95f93f62c30d343f9c913a9d2a137 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 1 Nov 2012 10:14:11 +0100
|
||||
Subject: [PATCH 37/62] powerpc: Add support for lazy preemption
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 12a36ad989490f5ae3ed6a50d764385e8e27e024 Mon Sep 17 00:00:00 2001
|
||||
From 87fb6813fa0a5ecff7fd2c657b37cfe97733ae90 Mon Sep 17 00:00:00 2001
|
||||
From: Anders Roxell <anders.roxell@linaro.org>
|
||||
Date: Thu, 14 May 2015 17:52:17 +0200
|
||||
Subject: [PATCH 38/62] arch/arm64: Add lazy preempt support
|
||||
|
@ -1,4 +1,4 @@
|
||||
From f1c0950a69e46ee1d45192bfae026622da60bdc8 Mon Sep 17 00:00:00 2001
|
||||
From 16d22e88a2c9122e0cc5441e29a3b64bafb9c560 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 8 Jul 2015 17:14:48 +0200
|
||||
Subject: [PATCH 39/62] arm: Disable jump-label on PREEMPT_RT.
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 802d6978bf4ebdec28d2ba4e715c2e414d9c7d06 Mon Sep 17 00:00:00 2001
|
||||
From a376cccfd403c8321d9a03bb8749d805377434a5 Mon Sep 17 00:00:00 2001
|
||||
From: "Yadi.hu" <yadi.hu@windriver.com>
|
||||
Date: Wed, 10 Dec 2014 10:32:09 +0800
|
||||
Subject: [PATCH 40/62] ARM: enable irq in translation/section permission fault
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 2a89ee21ea5c408b560839cc06bd0c13580fb3a4 Mon Sep 17 00:00:00 2001
|
||||
From 3d0d89a1306c53973cc898d6e003e18826cee219 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 28 Jul 2011 13:32:57 +0200
|
||||
Subject: [PATCH 41/62] tty/serial/omap: Make the locking RT aware
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 1db3dc8a6af68447b52efbbf8dbb4d210d23d57b Mon Sep 17 00:00:00 2001
|
||||
From 9d7551c43f81729a91f4b95812918e034efcbeb9 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 8 Jan 2013 21:36:51 +0100
|
||||
Subject: [PATCH 42/62] tty/serial/pl011: Make the locking work on RT
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 47c9956482a592a16b58831ded27e3c0f62ec11d Mon Sep 17 00:00:00 2001
|
||||
From cc0f3bc0e7a996dcd926b3dd93321e450acc18a1 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 11 Oct 2019 13:14:29 +0200
|
||||
Subject: [PATCH 43/62] ARM: Allow to enable RT
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c71e1e0561e008bb2fe230ad7022c3e2483cd6c0 Mon Sep 17 00:00:00 2001
|
||||
From 9a9d2b06c531f9499ccce07ac714809c79ec09bd Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 11 Oct 2019 13:14:35 +0200
|
||||
Subject: [PATCH 44/62] ARM64: Allow to enable RT
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 4d7273bd07600b933e6d25807cd96df04e435cbe Mon Sep 17 00:00:00 2001
|
||||
From f2b6a46898eb5d854b8e1dfabbbc720dfb77c828 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 26 Jul 2019 11:30:49 +0200
|
||||
Subject: [PATCH 45/62] powerpc: traps: Use PREEMPT_RT
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 1d20f49e62250211b43cbe18a087fdf19c313081 Mon Sep 17 00:00:00 2001
|
||||
From 568f517f60a2278ce951e4c406c2b1a23b023276 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 26 Mar 2019 18:31:54 +0100
|
||||
Subject: [PATCH 46/62] powerpc/pseries/iommu: Use a locallock instead
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 34f52991170848510810b486dd6fe9a19cbe4c46 Mon Sep 17 00:00:00 2001
|
||||
From 25919ff22be6046704419c17a2a3ac3741966999 Mon Sep 17 00:00:00 2001
|
||||
From: Bogdan Purcareata <bogdan.purcareata@freescale.com>
|
||||
Date: Fri, 24 Apr 2015 15:53:13 +0000
|
||||
Subject: [PATCH 47/62] powerpc/kvm: Disable in-kernel MPIC emulation for
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d2e9a96e5570459dd886f87bf81c7714fb0a2108 Mon Sep 17 00:00:00 2001
|
||||
From 0e1e4be3ae95cb72855c0223b4ff5f52adec395c Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 26 Mar 2019 18:31:29 +0100
|
||||
Subject: [PATCH 48/62] powerpc/stackprotector: work around stack-guard init
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 93941796079cb4515170adf454f9218adc89856d Mon Sep 17 00:00:00 2001
|
||||
From b7e6efc63764062b7a173464a382d773a08b0b65 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 11 Oct 2019 13:14:41 +0200
|
||||
Subject: [PATCH 49/62] POWERPC: Allow to enable RT
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b2103f830327ab5d1e6f49134c22d3c5adfb52cc Mon Sep 17 00:00:00 2001
|
||||
From 1099e2c72fb3792fe5e5d04f99b0c7911ea66b73 Mon Sep 17 00:00:00 2001
|
||||
From: Clark Williams <williams@redhat.com>
|
||||
Date: Sat, 30 Jul 2011 21:55:53 -0500
|
||||
Subject: [PATCH 50/62] sysfs: Add /sys/kernel/realtime entry
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9c7d6e723acbbc184d1dd04811863378699134fb Mon Sep 17 00:00:00 2001
|
||||
From 07e415a26d8241d7a40d9bdc7741f58dbd46d606 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 8 Jul 2011 20:25:16 +0200
|
||||
Subject: [PATCH 51/62] Add localversion for -RT release
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 3f783498b292a814f8f364bbfd0efbfc1be6d30f Mon Sep 17 00:00:00 2001
|
||||
From cc2be4ec82b6c49240b861a11de8c4336501dc09 Mon Sep 17 00:00:00 2001
|
||||
From: Clark Williams <clrkwllms@kernel.org>
|
||||
Date: Fri, 18 Aug 2023 10:45:35 -0500
|
||||
Subject: [PATCH 52/62] 'Linux 6.1.46-rt13 REBASE'
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 53c6a09e670e985d37ca05785a0155ab51b49cf4 Mon Sep 17 00:00:00 2001
|
||||
From be70bbd4d08f00c845633614925c0b126f11a30a Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 10 Mar 2023 17:29:05 +0100
|
||||
Subject: [PATCH 53/62] io-mapping: don't disable preempt on RT in
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8785dde5198dc91cbb518044e1c6d301ef9a9857 Mon Sep 17 00:00:00 2001
|
||||
From 23249660cee29a01660c4518a3046dfba2b7199c Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 21 Mar 2023 17:11:40 +0100
|
||||
Subject: [PATCH 54/62] locking/rwbase: Mitigate indefinite writer starvation
|
||||
|
@ -1,4 +1,4 @@
|
||||
From fcdb9b29c6d58895a386ac23229564fad2c316b5 Mon Sep 17 00:00:00 2001
|
||||
From f30dbde350cc4692abd4d2cb48a88913d94edf7d Mon Sep 17 00:00:00 2001
|
||||
From: Paolo Abeni <pabeni@redhat.com>
|
||||
Date: Mon, 8 May 2023 08:17:44 +0200
|
||||
Subject: [PATCH 55/62] revert: "softirq: Let ksoftirqd do its job"
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c082e5d28e56252dca01b53c553bba5cd152fec1 Mon Sep 17 00:00:00 2001
|
||||
From 4937a4dc4d39cff4badeb727c8d6c1ecf4422a0d Mon Sep 17 00:00:00 2001
|
||||
From: Peter Zijlstra <peterz@infradead.org>
|
||||
Date: Tue, 25 Apr 2023 17:03:13 +0200
|
||||
Subject: [PATCH 56/62] debugobjects,locking: Annotate debug_object_fill_pool()
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 5c27e6fdf46d68180a46fdf7944aa7e4668680c3 Mon Sep 17 00:00:00 2001
|
||||
From 65a646612737cf862237312fd88afc0b0b6954d8 Mon Sep 17 00:00:00 2001
|
||||
From: Wander Lairson Costa <wander@redhat.com>
|
||||
Date: Wed, 14 Jun 2023 09:23:22 -0300
|
||||
Subject: [PATCH 57/62] sched: avoid false lockdep splat in put_task_struct()
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9512a9467dec62e03f2df4f15af9a38332b8de58 Mon Sep 17 00:00:00 2001
|
||||
From 295da0c59de4794e746f56b1567e3188f9addc00 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 23 Jun 2023 22:15:17 +0200
|
||||
Subject: [PATCH 58/62] mm/page_alloc: Use write_seqlock_irqsave() instead
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 05999b640eb04be872e5491a040701fcddc73349 Mon Sep 17 00:00:00 2001
|
||||
From 88ec5664a42344c84c246d13dd726a4cbe2d9e8d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 14 Jun 2023 10:34:30 +0200
|
||||
Subject: [PATCH 59/62] bpf: Remove in_atomic() from bpf_link_put().
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a0d2c56749857956cb8ef1ccf2d982e2c1770f08 Mon Sep 17 00:00:00 2001
|
||||
From 9bd94469a4ea8355cd39603280261eeff2cd0579 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Thu, 1 Jun 2023 20:58:47 +0200
|
||||
Subject: [PATCH 60/62] posix-timers: Ensure timer ID search-loop limit is
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 1d651fe6c67cb3b355cc228f75289657496520ff Mon Sep 17 00:00:00 2001
|
||||
From e55c680ca3b29815a9cf95135011b72fb216b57b Mon Sep 17 00:00:00 2001
|
||||
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
||||
Date: Fri, 18 Aug 2023 22:45:25 -0400
|
||||
Subject: [PATCH 61/62] drm/i915: Do not disable preemption for resets
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 8aa6a280fc011cccf7cfcc0f5942e3ec6bdd73b4 Mon Sep 17 00:00:00 2001
|
||||
From 46b774fa9eeafe90be6439cda8a8fe7409ee6860 Mon Sep 17 00:00:00 2001
|
||||
From: Clark Williams <clark.williams@gmail.com>
|
||||
Date: Thu, 28 Dec 2023 23:45:11 -0600
|
||||
Subject: [PATCH 62/62] Linux 6.1.69-rt21 REBASE
|
||||
Date: Thu, 18 Jan 2024 14:01:50 -0600
|
||||
Subject: [PATCH 62/62] Linux 6.1.73-rt22 REBASE
|
||||
|
||||
Signed-off-by: Clark Williams <clark.williams@gmail.com>
|
||||
---
|
||||
@ -9,12 +9,12 @@ Signed-off-by: Clark Williams <clark.williams@gmail.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/localversion-rt b/localversion-rt
|
||||
index 9f7d0bdbffb1..6c6cde1c29e3 100644
|
||||
index 9f7d0bdbffb1..c29508d21914 100644
|
||||
--- a/localversion-rt
|
||||
+++ b/localversion-rt
|
||||
@@ -1 +1 @@
|
||||
--rt13
|
||||
+-rt21
|
||||
+-rt22
|
||||
--
|
||||
2.43.0
|
||||
|
@ -1,252 +0,0 @@
|
||||
From 8ee26220281bc5bbb6a2b72ab0cf5a2f120b1afa Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Larsson <alexl@redhat.com>
|
||||
Date: Wed, 29 Nov 2023 10:57:42 +0100
|
||||
Subject: [PATCH] quadlet: Support systemd style dropin files
|
||||
|
||||
For a source file like `foo.container`, look for drop in named
|
||||
`foo.container.d/*.conf` and merged them into the main file. The
|
||||
dropins are applied in alphabetical order, and files in earlier
|
||||
diretories override later files with same name.
|
||||
|
||||
This is similar to how systemd dropins work, see:
|
||||
https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html
|
||||
|
||||
Also adds some tests for these
|
||||
|
||||
Signed-off-by: Alexander Larsson <alexl@redhat.com>
|
||||
---
|
||||
cmd/quadlet/main.go | 67 +++++++++++++++++++
|
||||
docs/source/markdown/podman-systemd.unit.5.md | 7 ++
|
||||
pkg/systemd/parser/unitfile.go | 4 +-
|
||||
test/e2e/quadlet/merged-override.container | 8 +++
|
||||
.../merged-override.container.d/10-first.conf | 2 +
|
||||
.../20-second.conf | 4 ++
|
||||
test/e2e/quadlet/merged.container | 8 +++
|
||||
.../quadlet/merged.container.d/10-first.conf | 2 +
|
||||
.../quadlet/merged.container.d/20-second.conf | 2 +
|
||||
test/e2e/quadlet_test.go | 12 ++++
|
||||
10 files changed, 114 insertions(+), 2 deletions(-)
|
||||
create mode 100644 test/e2e/quadlet/merged-override.container
|
||||
create mode 100644 test/e2e/quadlet/merged-override.container.d/10-first.conf
|
||||
create mode 100644 test/e2e/quadlet/merged-override.container.d/20-second.conf
|
||||
create mode 100644 test/e2e/quadlet/merged.container
|
||||
create mode 100644 test/e2e/quadlet/merged.container.d/10-first.conf
|
||||
create mode 100644 test/e2e/quadlet/merged.container.d/20-second.conf
|
||||
|
||||
diff --git a/cmd/quadlet/main.go b/cmd/quadlet/main.go
|
||||
index b36997b32a73..9c032427b0a4 100644
|
||||
--- a/cmd/quadlet/main.go
|
||||
+++ b/cmd/quadlet/main.go
|
||||
@@ -242,6 +242,67 @@ func loadUnitsFromDir(sourcePath string) ([]*parser.UnitFile, error) {
|
||||
return units, prevError
|
||||
}
|
||||
|
||||
+func loadUnitDropins(unit *parser.UnitFile, sourcePaths []string) error {
|
||||
+ var prevError error
|
||||
+ reportError := func(err error) {
|
||||
+ if prevError != nil {
|
||||
+ err = fmt.Errorf("%s\n%s", prevError, err)
|
||||
+ }
|
||||
+ prevError = err
|
||||
+ }
|
||||
+
|
||||
+ var dropinPaths = make(map[string]string)
|
||||
+ for _, sourcePath := range sourcePaths {
|
||||
+ dropinDir := path.Join(sourcePath, unit.Filename+".d")
|
||||
+
|
||||
+ dropinFiles, err := os.ReadDir(dropinDir)
|
||||
+ if err != nil {
|
||||
+ if !errors.Is(err, os.ErrNotExist) {
|
||||
+ reportError(fmt.Errorf("error reading directory %q, %w", dropinDir, err))
|
||||
+ }
|
||||
+
|
||||
+ continue
|
||||
+ }
|
||||
+
|
||||
+ for _, dropinFile := range dropinFiles {
|
||||
+ dropinName := dropinFile.Name()
|
||||
+ if filepath.Ext(dropinName) != ".conf" {
|
||||
+ continue // Only *.conf supported
|
||||
+ }
|
||||
+
|
||||
+ if _, ok := dropinPaths[dropinName]; ok {
|
||||
+ continue // We already saw this name
|
||||
+ }
|
||||
+
|
||||
+ dropinPaths[dropinName] = path.Join(dropinDir, dropinName)
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ dropinFiles := make([]string, len(dropinPaths))
|
||||
+ i := 0
|
||||
+ for k := range dropinPaths {
|
||||
+ dropinFiles[i] = k
|
||||
+ i++
|
||||
+ }
|
||||
+
|
||||
+ // Merge in alpha-numerical order
|
||||
+ sort.Strings(dropinFiles)
|
||||
+
|
||||
+ for _, dropinFile := range dropinFiles {
|
||||
+ dropinPath := dropinPaths[dropinFile]
|
||||
+
|
||||
+ Debugf("Loading source drop-in file %s", dropinPath)
|
||||
+
|
||||
+ if f, err := parser.ParseUnitFile(dropinPath); err != nil {
|
||||
+ reportError(fmt.Errorf("error loading %q, %w", dropinPath, err))
|
||||
+ } else {
|
||||
+ unit.Merge(f)
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return prevError
|
||||
+}
|
||||
+
|
||||
func generateServiceFile(service *parser.UnitFile) error {
|
||||
Debugf("writing %q", service.Path)
|
||||
|
||||
@@ -456,6 +517,12 @@ func process() error {
|
||||
return prevError
|
||||
}
|
||||
|
||||
+ for _, unit := range units {
|
||||
+ if err := loadUnitDropins(unit, sourcePaths); err != nil {
|
||||
+ reportError(err)
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if !dryRunFlag {
|
||||
err := os.MkdirAll(outputPath, os.ModePerm)
|
||||
if err != nil {
|
||||
diff --git a/docs/source/markdown/podman-systemd.unit.5.md b/docs/source/markdown/podman-systemd.unit.5.md
|
||||
index 8101338a56b6..4969a84aca7b 100644
|
||||
--- a/docs/source/markdown/podman-systemd.unit.5.md
|
||||
+++ b/docs/source/markdown/podman-systemd.unit.5.md
|
||||
@@ -47,6 +47,13 @@ Each file type has a custom section (for example, `[Container]`) that is handled
|
||||
other sections are passed on untouched, allowing the use of any normal systemd configuration options
|
||||
like dependencies or cgroup limits.
|
||||
|
||||
+The source files also support drop-ins in the same [way systemd does](https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html).
|
||||
+For a given source file (say `foo.container`), the corresponding `.d`directory (in this
|
||||
+case `foo.container.d`) will be scanned for files with a `.conf` extension that are merged into
|
||||
+the base file in alphabetical order. The format of these drop-in files is the same as the base file.
|
||||
+This is useful to alter or add configuration settings for a unit, without having to modify unit
|
||||
+files.
|
||||
+
|
||||
For rootless containers, when administrators place Quadlet files in the
|
||||
/etc/containers/systemd/users directory, all users' sessions execute the
|
||||
Quadlet when the login session begins. If the administrator places a Quadlet
|
||||
diff --git a/pkg/systemd/parser/unitfile.go b/pkg/systemd/parser/unitfile.go
|
||||
index 963909f9d876..732daa2be4fb 100644
|
||||
--- a/pkg/systemd/parser/unitfile.go
|
||||
+++ b/pkg/systemd/parser/unitfile.go
|
||||
@@ -182,7 +182,7 @@ func (f *UnitFile) ensureGroup(groupName string) *unitGroup {
|
||||
return g
|
||||
}
|
||||
|
||||
-func (f *UnitFile) merge(source *UnitFile) {
|
||||
+func (f *UnitFile) Merge(source *UnitFile) {
|
||||
for _, srcGroup := range source.groups {
|
||||
group := f.ensureGroup(srcGroup.name)
|
||||
group.merge(srcGroup)
|
||||
@@ -193,7 +193,7 @@ func (f *UnitFile) merge(source *UnitFile) {
|
||||
func (f *UnitFile) Dup() *UnitFile {
|
||||
copy := NewUnitFile()
|
||||
|
||||
- copy.merge(f)
|
||||
+ copy.Merge(f)
|
||||
copy.Filename = f.Filename
|
||||
return copy
|
||||
}
|
||||
diff --git a/test/e2e/quadlet/merged-override.container b/test/e2e/quadlet/merged-override.container
|
||||
new file mode 100644
|
||||
index 000000000000..d93a53b340a9
|
||||
--- /dev/null
|
||||
+++ b/test/e2e/quadlet/merged-override.container
|
||||
@@ -0,0 +1,8 @@
|
||||
+## assert-podman-final-args localhost/imagename
|
||||
+## !assert-podman-args --env "MAIN=mainvalue"
|
||||
+## !assert-podman-args --env "FIRST=value"
|
||||
+## assert-podman-args --env "SECOND=othervalue"
|
||||
+
|
||||
+[Container]
|
||||
+Image=localhost/imagename
|
||||
+Environment=MAIN=mainvalue
|
||||
diff --git a/test/e2e/quadlet/merged-override.container.d/10-first.conf b/test/e2e/quadlet/merged-override.container.d/10-first.conf
|
||||
new file mode 100644
|
||||
index 000000000000..f6164d631e05
|
||||
--- /dev/null
|
||||
+++ b/test/e2e/quadlet/merged-override.container.d/10-first.conf
|
||||
@@ -0,0 +1,2 @@
|
||||
+[Container]
|
||||
+Environment=FIRST=value
|
||||
diff --git a/test/e2e/quadlet/merged-override.container.d/20-second.conf b/test/e2e/quadlet/merged-override.container.d/20-second.conf
|
||||
new file mode 100644
|
||||
index 000000000000..5bfcdd44dcc8
|
||||
--- /dev/null
|
||||
+++ b/test/e2e/quadlet/merged-override.container.d/20-second.conf
|
||||
@@ -0,0 +1,4 @@
|
||||
+[Container]
|
||||
+# Empty previous
|
||||
+Environment=
|
||||
+Environment=SECOND=othervalue
|
||||
diff --git a/test/e2e/quadlet/merged.container b/test/e2e/quadlet/merged.container
|
||||
new file mode 100644
|
||||
index 000000000000..3d19987fd0ca
|
||||
--- /dev/null
|
||||
+++ b/test/e2e/quadlet/merged.container
|
||||
@@ -0,0 +1,8 @@
|
||||
+## assert-podman-final-args localhost/imagename
|
||||
+## assert-podman-args --env "MAIN=mainvalue"
|
||||
+## assert-podman-args --env "FIRST=value"
|
||||
+## assert-podman-args --env "SECOND=othervalue"
|
||||
+
|
||||
+[Container]
|
||||
+Image=localhost/imagename
|
||||
+Environment=MAIN=mainvalue
|
||||
diff --git a/test/e2e/quadlet/merged.container.d/10-first.conf b/test/e2e/quadlet/merged.container.d/10-first.conf
|
||||
new file mode 100644
|
||||
index 000000000000..f6164d631e05
|
||||
--- /dev/null
|
||||
+++ b/test/e2e/quadlet/merged.container.d/10-first.conf
|
||||
@@ -0,0 +1,2 @@
|
||||
+[Container]
|
||||
+Environment=FIRST=value
|
||||
diff --git a/test/e2e/quadlet/merged.container.d/20-second.conf b/test/e2e/quadlet/merged.container.d/20-second.conf
|
||||
new file mode 100644
|
||||
index 000000000000..f1dcaa61fc93
|
||||
--- /dev/null
|
||||
+++ b/test/e2e/quadlet/merged.container.d/20-second.conf
|
||||
@@ -0,0 +1,2 @@
|
||||
+[Container]
|
||||
+Environment=SECOND=othervalue
|
||||
diff --git a/test/e2e/quadlet_test.go b/test/e2e/quadlet_test.go
|
||||
index ad3061f4cdd2..c9c43d284971 100644
|
||||
--- a/test/e2e/quadlet_test.go
|
||||
+++ b/test/e2e/quadlet_test.go
|
||||
@@ -664,6 +664,16 @@ BOGUS=foo
|
||||
err = os.WriteFile(filepath.Join(quadletDir, fileName), testcase.data, 0644)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
+ // Also copy any extra snippets
|
||||
+ dotdDir := filepath.Join("quadlet", fileName+".d")
|
||||
+ if s, err := os.Stat(dotdDir); err == nil && s.IsDir() {
|
||||
+ dotdDirDest := filepath.Join(quadletDir, fileName+".d")
|
||||
+ err = os.Mkdir(dotdDirDest, os.ModePerm)
|
||||
+ Expect(err).ToNot(HaveOccurred())
|
||||
+ err = CopyDirectory(dotdDir, dotdDirDest)
|
||||
+ Expect(err).ToNot(HaveOccurred())
|
||||
+ }
|
||||
+
|
||||
// Run quadlet to convert the file
|
||||
session := podmanTest.Quadlet([]string{"--user", "--no-kmsg-log", generatedDir}, quadletDir)
|
||||
session.WaitWithDefaultTimeout()
|
||||
@@ -748,6 +758,8 @@ BOGUS=foo
|
||||
Entry("workingdir.container", "workingdir.container", 0, ""),
|
||||
Entry("Container - global args", "globalargs.container", 0, ""),
|
||||
Entry("Container - Containers Conf Modules", "containersconfmodule.container", 0, ""),
|
||||
+ Entry("merged.container", "merged.container", 0, ""),
|
||||
+ Entry("merged-override.container", "merged-override.container", 0, ""),
|
||||
|
||||
Entry("basic.volume", "basic.volume", 0, ""),
|
||||
Entry("device-copy.volume", "device-copy.volume", 0, ""),
|
@ -1,78 +0,0 @@
|
||||
From 6cb2f9b1225ade1248ed954e5e03fea9ff279730 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Palaistras <alex@deuill.org>
|
||||
Date: Sat, 18 Nov 2023 21:37:00 +0000
|
||||
Subject: [PATCH] quadlet: Support `healthy` for `Notify` directives
|
||||
|
||||
This expands support for the (previously) boolean `Notify` directive, in
|
||||
support of healthcheck determined SD-NOTIFY event emission, as
|
||||
supported by Podman with the `--sdnotify=healthy` option.
|
||||
|
||||
Closes: #18189
|
||||
Signed-off-by: Alex Palaistras <alex@deuill.org>
|
||||
---
|
||||
docs/source/markdown/podman-systemd.unit.5.md | 4 ++++
|
||||
pkg/systemd/quadlet/quadlet.go | 9 ++++++---
|
||||
test/e2e/quadlet/notify-healthy.container | 5 +++++
|
||||
test/e2e/quadlet_test.go | 1 +
|
||||
4 files changed, 16 insertions(+), 3 deletions(-)
|
||||
create mode 100644 test/e2e/quadlet/notify-healthy.container
|
||||
|
||||
diff --git a/docs/source/markdown/podman-systemd.unit.5.md b/docs/source/markdown/podman-systemd.unit.5.md
|
||||
index 79659ded24fa..01ca6293a0f7 100644
|
||||
--- a/docs/source/markdown/podman-systemd.unit.5.md
|
||||
+++ b/docs/source/markdown/podman-systemd.unit.5.md
|
||||
@@ -496,6 +496,10 @@ starts the child in the container. However, if the container application support
|
||||
`Notify` to true passes the notification details to the container allowing it to notify
|
||||
of startup on its own.
|
||||
|
||||
+In addition, setting `Notify` to `healthy` will postpone startup notifications until such time as
|
||||
+the container is marked healthy, as determined by Podman healthchecks. Note that this requires
|
||||
+setting up a container healthcheck, see the `HealthCmd` option for more.
|
||||
+
|
||||
### `PidsLimit=`
|
||||
|
||||
Tune the container's pids limit.
|
||||
diff --git a/pkg/systemd/quadlet/quadlet.go b/pkg/systemd/quadlet/quadlet.go
|
||||
index 26e1745b1e98..3328087900d6 100644
|
||||
--- a/pkg/systemd/quadlet/quadlet.go
|
||||
+++ b/pkg/systemd/quadlet/quadlet.go
|
||||
@@ -496,10 +496,13 @@ func ConvertContainer(container *parser.UnitFile, names map[string]string, isUse
|
||||
if serviceType != "oneshot" {
|
||||
// If we're not in oneshot mode always use some form of sd-notify, normally via conmon,
|
||||
// but we also allow passing it to the container by setting Notify=yes
|
||||
- notify := container.LookupBooleanWithDefault(ContainerGroup, KeyNotify, false)
|
||||
- if notify {
|
||||
+ notify, ok := container.Lookup(ContainerGroup, KeyNotify)
|
||||
+ switch {
|
||||
+ case ok && strings.EqualFold(notify, "healthy"):
|
||||
+ podman.add("--sdnotify=healthy")
|
||||
+ case container.LookupBooleanWithDefault(ContainerGroup, KeyNotify, false):
|
||||
podman.add("--sdnotify=container")
|
||||
- } else {
|
||||
+ default:
|
||||
podman.add("--sdnotify=conmon")
|
||||
}
|
||||
service.Setv(ServiceGroup,
|
||||
diff --git a/test/e2e/quadlet/notify-healthy.container b/test/e2e/quadlet/notify-healthy.container
|
||||
new file mode 100644
|
||||
index 000000000000..6dc3d8c09257
|
||||
--- /dev/null
|
||||
+++ b/test/e2e/quadlet/notify-healthy.container
|
||||
@@ -0,0 +1,5 @@
|
||||
+## assert-podman-args "--sdnotify=healthy"
|
||||
+
|
||||
+[Container]
|
||||
+Image=localhost/imagename
|
||||
+Notify=healthy
|
||||
diff --git a/test/e2e/quadlet_test.go b/test/e2e/quadlet_test.go
|
||||
index 34de88293008..ad3061f4cdd2 100644
|
||||
--- a/test/e2e/quadlet_test.go
|
||||
+++ b/test/e2e/quadlet_test.go
|
||||
@@ -712,6 +712,7 @@ BOGUS=foo
|
||||
Entry("network.quadlet.container", "network.quadlet.container", 0, ""),
|
||||
Entry("noimage.container", "noimage.container", 1, "converting \"noimage.container\": no Image or Rootfs key specified"),
|
||||
Entry("notify.container", "notify.container", 0, ""),
|
||||
+ Entry("notify-healthy.container", "notify-healthy.container", 0, ""),
|
||||
Entry("oneshot.container", "oneshot.container", 0, ""),
|
||||
Entry("other-sections.container", "other-sections.container", 0, ""),
|
||||
Entry("podmanargs.container", "podmanargs.container", 0, ""),
|
@ -0,0 +1,24 @@
|
||||
[main]
|
||||
plugins=ifupdown,keyfile
|
||||
autoconnect-retries-default=0
|
||||
rc-manager=file
|
||||
|
||||
[ifupdown]
|
||||
managed=true
|
||||
|
||||
[keyfile]
|
||||
unmanaged-devices=type:bridge;type:tun;type:veth
|
||||
|
||||
[logging]
|
||||
backend=journal
|
||||
|
||||
[connection]
|
||||
connection.mdns=2
|
||||
connection.llmnr=2
|
||||
|
||||
[connectivity]
|
||||
uri=http://nmcheck.gnome.org/check_network_status.txt
|
||||
interval=300
|
||||
|
||||
[device]
|
||||
wifi.scan-rand-mac-address=no
|
@ -0,0 +1,2 @@
|
||||
[main]
|
||||
dns=dnsmasq
|
@ -0,0 +1,2 @@
|
||||
[main]
|
||||
systemd-resolved=false
|
@ -0,0 +1,2 @@
|
||||
[main]
|
||||
auth-polkit=true
|
@ -0,0 +1,3 @@
|
||||
[connection]
|
||||
# Values are 0 (use default), 1 (ignore/don't touch), 2 (disable) or 3 (enable).
|
||||
wifi.powersave = 2
|
@ -0,0 +1,11 @@
|
||||
[connection]
|
||||
id=OpenVoiceOS default
|
||||
uuid=554628d6-8290-3dea-90c1-9b3b108dc19c
|
||||
type=802-3-ethernet
|
||||
|
||||
[ipv4]
|
||||
method=auto
|
||||
|
||||
[ipv6]
|
||||
addr-gen-mode=stable-privacy
|
||||
method=auto
|
@ -118,7 +118,7 @@ pull_options = {enable_partial_images = "false", use_hard_links = "false", ostre
|
||||
|
||||
# Path to an helper program to use for mounting the file system instead of mounting it
|
||||
# directly.
|
||||
mount_program = "/usr/bin/fuse-overlayfs"
|
||||
# mount_program = "/usr/bin/fuse-overlayfs"
|
||||
|
||||
# mountopt specifies comma separated list of extra mount options
|
||||
mountopt = "nodev"
|
||||
|
@ -27,7 +27,7 @@ context.properties = {
|
||||
|
||||
## Properties for the DSP configuration.
|
||||
default.clock.rate = 48000
|
||||
default.clock.allowed-rates = [ 16000 22050 44100 48000 88200 96000 ]
|
||||
default.clock.allowed-rates = [ 48000 ]
|
||||
default.clock.quantum = 256
|
||||
default.clock.min-quantum = 64
|
||||
default.clock.max-quantum = 512
|
||||
|
@ -0,0 +1,8 @@
|
||||
/* give group 'network' rights to change settings */
|
||||
/* taken from https://wiki.archlinux.org/index.php/NetworkManager#Set_up_PolicyKit_permissions */
|
||||
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("network")) {
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
});
|
@ -1,4 +1,4 @@
|
||||
[Journal]
|
||||
Storage=auto
|
||||
Compress=yes
|
||||
SystemMaxUse=500M
|
||||
SystemMaxUse=256M
|
||||
|
@ -1,4 +0,0 @@
|
||||
[Match]
|
||||
Name=enp0s3
|
||||
[Network]
|
||||
DHCP=ipv4
|
@ -1,2 +1,5 @@
|
||||
[engine]
|
||||
env=["TMPDIR=/home/ovos/.local/share/containers/tmp"]
|
||||
|
||||
[network]
|
||||
network_backend="netavark"
|
||||
|
@ -14,3 +14,4 @@ QT_QUICK_CONTROLS_STYLE=OpenVoiceStyle
|
||||
XDG_CURRENT_DESKTOP=kde
|
||||
QML2_IMPORT_PATH=/usr/lib/qml
|
||||
#QT_LOGGING_RULES=*=false
|
||||
MYCROFT_LOOSE_REQUIREMENT=true
|
||||
|
@ -5,8 +5,8 @@ After=network-online.target
|
||||
Wants=network-online.target
|
||||
Wants=pipewire.service
|
||||
After=pipewire.service
|
||||
Wants=ovos-bus-server.service
|
||||
After=ovos-bus-server.service
|
||||
Wants=ovos-messagebus.service
|
||||
After=ovos-messagebus.service
|
||||
Wants=ovos-phal.service
|
||||
After=ovos-phal.service
|
||||
|
||||
|
@ -0,0 +1,2 @@
|
||||
[Install]
|
||||
WantedBy=multi-user.target default.target
|
@ -1,2 +0,0 @@
|
||||
[Install]
|
||||
WantedBy=default.target
|
@ -0,0 +1,2 @@
|
||||
[Install]
|
||||
WantedBy=multi-user.target default.target
|
@ -1,2 +0,0 @@
|
||||
[Install]
|
||||
WantedBy=default.target
|
@ -5,8 +5,8 @@ After=network-online.target
|
||||
Wants=network-online.target
|
||||
Wants=pipewire.service
|
||||
After=pipewire.service
|
||||
Wants=ovos-bus-server.service
|
||||
After=ovos-bus-server.service
|
||||
Wants=ovos-messagebus.service
|
||||
After=ovos-messagebus.service
|
||||
Wants=ovos-phal.service
|
||||
After=ovos-phal.service
|
||||
|
||||
|
@ -0,0 +1,2 @@
|
||||
[Install]
|
||||
WantedBy=multi-user.target default.target
|
@ -1,2 +0,0 @@
|
||||
[Install]
|
||||
WantedBy=default.target
|
@ -5,12 +5,12 @@ After=network-online.target
|
||||
Wants=network-online.target
|
||||
Wants=pipewire.service
|
||||
After=pipewire.service
|
||||
Wants=ovos-bus-server.service
|
||||
After=ovos-bus-server.service
|
||||
Wants=ovos-phal.service
|
||||
After=ovos-phal.service
|
||||
Wants=ovos-gui-websocket.service
|
||||
After=ovos-gui-websocket.service
|
||||
#Wants=ovos-messagebus.service
|
||||
#After=ovos-messagebus.service
|
||||
#Wants=ovos-phal.service
|
||||
#After=ovos-phal.service
|
||||
#Wants=ovos-gui-websocket.service
|
||||
#After=ovos-gui-websocket.service
|
||||
|
||||
[Container]
|
||||
ContainerName=ovos-gui-shell
|
||||
|
@ -0,0 +1,2 @@
|
||||
[Install]
|
||||
WantedBy=multi-user.target default.target
|
@ -1,2 +0,0 @@
|
||||
[Install]
|
||||
WantedBy=default.target
|
@ -3,8 +3,8 @@ Description=OpenVoiceOS GUI Websocket Service
|
||||
After=local-fs.target
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
Wants=ovos-bus-server.service
|
||||
After=ovos-bus-server.service
|
||||
Wants=ovos-messagebus.service
|
||||
After=ovos-messagebus.service
|
||||
|
||||
[Container]
|
||||
ContainerName=ovos-gui-websocket
|
||||
|
@ -0,0 +1,2 @@
|
||||
[Install]
|
||||
WantedBy=multi-user.target default.target
|
@ -1,2 +0,0 @@
|
||||
[Install]
|
||||
WantedBy=default.target
|
@ -5,8 +5,8 @@ After=network-online.target
|
||||
Wants=network-online.target
|
||||
Wants=pipewire.service
|
||||
After=pipewire.service
|
||||
Wants=ovos-bus-server.service
|
||||
After=ovos-bus-server.service
|
||||
Wants=ovos-messagebus.service
|
||||
After=ovos-messagebus.service
|
||||
Wants=ovos-phal.service
|
||||
After=ovos-phal.service
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user