From 8f6e3c164a20883922368fe696c375bd536cd30e Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 17 Apr 2025 10:03:56 +0200 Subject: [PATCH 01/32] testing: Include the kernel build number --- testing/do-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/do-tests b/testing/do-tests index 28337c022..33f946a2e 100755 --- a/testing/do-tests +++ b/testing/do-tests @@ -168,7 +168,7 @@ done # [ -f $SHAREDDIR/.strongswan-version ] && SWANVERSION=`cat $SHAREDDIR/.strongswan-version` -KERNELVERSION=`ssh $SSHCONF root@\$ipv4_winnetou uname -r 2>/dev/null` +KERNELVERSION=`ssh $SSHCONF root@\$ipv4_winnetou uname -rv | cut -d ' ' -f 1,2 2>/dev/null` ############################################################################## # create header for the results html file From 749814a75f71d6773decb1c8212caede1bb3f855 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 11 May 2021 14:21:25 +0200 Subject: [PATCH 02/32] notify-payload: Add notify types for per-resource CHILD_SAs --- .../encoding/payloads/notify_payload.c | 22 ++++++++++++------- .../encoding/payloads/notify_payload.h | 5 +++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/libcharon/encoding/payloads/notify_payload.c b/src/libcharon/encoding/payloads/notify_payload.c index 2b2c6e930..2952ed06a 100644 --- a/src/libcharon/encoding/payloads/notify_payload.c +++ b/src/libcharon/encoding/payloads/notify_payload.c @@ -61,9 +61,10 @@ ENUM_NEXT(notify_type_names, SINGLE_PAIR_REQUIRED, CHILD_SA_NOT_FOUND, AUTHENTIC "USE_ASSIGNED_HoA", "TEMPORARY_FAILURE", "CHILD_SA_NOT_FOUND"); -ENUM_NEXT(notify_type_names, STATE_NOT_FOUND, STATE_NOT_FOUND, CHILD_SA_NOT_FOUND, - "STATE_NOT_FOUND"); -ENUM_NEXT(notify_type_names, ME_CONNECT_FAILED, ME_CONNECT_FAILED, STATE_NOT_FOUND, +ENUM_NEXT(notify_type_names, STATE_NOT_FOUND, TS_MAX_QUEUE, CHILD_SA_NOT_FOUND, + "STATE_NOT_FOUND", + "TS_MAX_QUEUE"); +ENUM_NEXT(notify_type_names, ME_CONNECT_FAILED, ME_CONNECT_FAILED, TS_MAX_QUEUE, "ME_CONNECT_FAILED"); ENUM_NEXT(notify_type_names, MS_NOTIFY_STATUS, MS_NOTIFY_STATUS, ME_CONNECT_FAILED, "MS_NOTIFY_STATUS"); @@ -123,7 +124,9 @@ ENUM_NEXT(notify_type_names, USE_PPK, INTERMEDIATE_EXCHANGE_SUPPORTED, SIGNATURE "INTERMEDIATE_EXCHANGE_SUPPORTED"); ENUM_NEXT(notify_type_names, ADDITIONAL_KEY_EXCHANGE, ADDITIONAL_KEY_EXCHANGE, INTERMEDIATE_EXCHANGE_SUPPORTED, "ADDITIONAL_KEY_EXCHANGE"); -ENUM_NEXT(notify_type_names, INITIAL_CONTACT_IKEV1, INITIAL_CONTACT_IKEV1, ADDITIONAL_KEY_EXCHANGE, +ENUM_NEXT(notify_type_names, SA_RESOURCE_INFO, SA_RESOURCE_INFO, ADDITIONAL_KEY_EXCHANGE, + "SA_RESOURCE_INFO"); +ENUM_NEXT(notify_type_names, INITIAL_CONTACT_IKEV1, INITIAL_CONTACT_IKEV1, SA_RESOURCE_INFO, "INITIAL_CONTACT"); ENUM_NEXT(notify_type_names, DPD_R_U_THERE, DPD_R_U_THERE_ACK, INITIAL_CONTACT_IKEV1, "DPD_R_U_THERE", @@ -180,9 +183,10 @@ ENUM_NEXT(notify_type_short_names, SINGLE_PAIR_REQUIRED, CHILD_SA_NOT_FOUND, AUT "ASSIGNED_HoA", "TEMP_FAIL", "NO_CHILD_SA"); -ENUM_NEXT(notify_type_short_names, STATE_NOT_FOUND, STATE_NOT_FOUND, CHILD_SA_NOT_FOUND, - "NO_STATE"); -ENUM_NEXT(notify_type_short_names, ME_CONNECT_FAILED, ME_CONNECT_FAILED, STATE_NOT_FOUND, +ENUM_NEXT(notify_type_short_names, STATE_NOT_FOUND, TS_MAX_QUEUE, CHILD_SA_NOT_FOUND, + "NO_STATE", + "MAX_QUEUE"); +ENUM_NEXT(notify_type_short_names, ME_CONNECT_FAILED, ME_CONNECT_FAILED, TS_MAX_QUEUE, "ME_CONN_FAIL"); ENUM_NEXT(notify_type_short_names, MS_NOTIFY_STATUS, MS_NOTIFY_STATUS, ME_CONNECT_FAILED, "MS_STATUS"); @@ -242,7 +246,9 @@ ENUM_NEXT(notify_type_short_names, USE_PPK, INTERMEDIATE_EXCHANGE_SUPPORTED, SIG "IKE_INT_SUP"); ENUM_NEXT(notify_type_short_names, ADDITIONAL_KEY_EXCHANGE, ADDITIONAL_KEY_EXCHANGE, INTERMEDIATE_EXCHANGE_SUPPORTED, "ADD_KE"); -ENUM_NEXT(notify_type_short_names, INITIAL_CONTACT_IKEV1, INITIAL_CONTACT_IKEV1, ADDITIONAL_KEY_EXCHANGE, +ENUM_NEXT(notify_type_short_names, SA_RESOURCE_INFO, SA_RESOURCE_INFO, ADDITIONAL_KEY_EXCHANGE, + "RES_INFO"); +ENUM_NEXT(notify_type_short_names, INITIAL_CONTACT_IKEV1, INITIAL_CONTACT_IKEV1, SA_RESOURCE_INFO, "INITIAL_CONTACT"); ENUM_NEXT(notify_type_short_names, DPD_R_U_THERE, DPD_R_U_THERE_ACK, INITIAL_CONTACT_IKEV1, "DPD", diff --git a/src/libcharon/encoding/payloads/notify_payload.h b/src/libcharon/encoding/payloads/notify_payload.h index eb0784b3e..9e90d423f 100644 --- a/src/libcharon/encoding/payloads/notify_payload.h +++ b/src/libcharon/encoding/payloads/notify_payload.h @@ -82,6 +82,8 @@ enum notify_type_t { /* multiple key exchanges, RFC 9370 */ STATE_NOT_FOUND = 47, + /* No more per-resource CHILD_SAs, RFC 9611 */ + TS_MAX_QUEUE = 48, /* IKE-ME, private use */ ME_CONNECT_FAILED = 8192, @@ -170,6 +172,9 @@ enum notify_type_t { /* multiple key exchanges, RFC 9370 */ ADDITIONAL_KEY_EXCHANGE = 16441, + /* Resource info for CHILD_SAs, RFC 9611 */ + SA_RESOURCE_INFO = 16444, + /* IKEv1 initial contact */ INITIAL_CONTACT_IKEV1 = 24578, From d4575da53cd00376faee18590212eb4decf45bbc Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 11 May 2021 14:46:29 +0200 Subject: [PATCH 03/32] child-cfg: Add flag to enable per-CPU SAs --- src/libcharon/config/child_cfg.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libcharon/config/child_cfg.h b/src/libcharon/config/child_cfg.h index e6219f68c..c8a7fefb2 100644 --- a/src/libcharon/config/child_cfg.h +++ b/src/libcharon/config/child_cfg.h @@ -414,6 +414,9 @@ enum child_cfg_option_t { /** Disable copying the ECN header field in tunnel mode */ OPT_NO_COPY_ECN = (1<<8), + + /** Enable per-CPU CHILD_SAs */ + OPT_PER_CPU_SAS = (1<<9), }; /** From aa1322aed5f22479458615bc7184e88a7d07b6ca Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 10 May 2021 16:23:20 +0200 Subject: [PATCH 04/32] include: Add XFRM identifiers for per-CPU SAs/acquires --- src/include/linux/xfrm.h | 3 +++ src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/include/linux/xfrm.h b/src/include/linux/xfrm.h index 0c2191bf9..3a9865bd6 100644 --- a/src/include/linux/xfrm.h +++ b/src/include/linux/xfrm.h @@ -317,6 +317,8 @@ enum xfrm_attr_type_t { XFRMA_IF_ID, /* __u32 */ XFRMA_MTIMER_THRESH, /* __u32 in seconds for input SA */ XFRMA_SA_DIR, /* __u8 */ + XFRMA_NAT_KEEPALIVE_INTERVAL, /* __u32 in seconds for NAT keepalive */ + XFRMA_SA_PCPU, /* __u32 */ __XFRMA_MAX #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */ @@ -432,6 +434,7 @@ struct xfrm_userpolicy_info { #define XFRM_POLICY_LOCALOK 1 /* Allow user to override global policy */ /* Automatically expand selector to include matching ICMP payloads. */ #define XFRM_POLICY_ICMP 2 +#define XFRM_POLICY_CPU_ACQUIRE 4 __u8 share; }; diff --git a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c index 138e42075..dd205aa0a 100644 --- a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c +++ b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c @@ -203,6 +203,8 @@ ENUM(xfrm_attr_type_names, XFRMA_UNSPEC, __XFRMA_MAX, "XFRMA_IF_ID", "XFRMA_MTIMER_THRESH", "XFRMA_SA_DIR", + "XFRMA_NAT_KEEPALIVE_INTERVAL", + "XFRMA_SA_PCPU", "XFRMA_MAX", ); From 12395cedf39f3f909a5d92e4ce42d84cc3f790d2 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 10 May 2021 16:28:15 +0200 Subject: [PATCH 05/32] ipsec-types: Add identifier for the maximum (=no) CPU ID --- src/libstrongswan/ipsec/ipsec_types.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libstrongswan/ipsec/ipsec_types.h b/src/libstrongswan/ipsec/ipsec_types.h index b3a26ce8e..4da3e8727 100644 --- a/src/libstrongswan/ipsec/ipsec_types.h +++ b/src/libstrongswan/ipsec/ipsec_types.h @@ -278,4 +278,9 @@ bool if_id_from_string(const char *value, uint32_t *if_id); */ void allocate_unique_if_ids(uint32_t *in, uint32_t *out); +/** + * Maximum CPU ID (used if no CPU ID specified). + */ +#define CPU_ID_MAX UINT32_MAX + #endif /** IPSEC_TYPES_H_ @}*/ From 53be94d06ccfb4e40f812a8046882a9e8b361eb4 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 11 May 2021 16:07:39 +0200 Subject: [PATCH 06/32] kernel-netlink: Add support to set CPU ID on SA --- src/libcharon/kernel/kernel_ipsec.h | 2 ++ .../plugins/kernel_netlink/kernel_netlink_ipsec.c | 10 ++++++++++ src/libcharon/sa/child_sa.c | 1 + 3 files changed, 13 insertions(+) diff --git a/src/libcharon/kernel/kernel_ipsec.h b/src/libcharon/kernel/kernel_ipsec.h index be78a9904..8b79acac9 100644 --- a/src/libcharon/kernel/kernel_ipsec.h +++ b/src/libcharon/kernel/kernel_ipsec.h @@ -95,6 +95,8 @@ struct kernel_ipsec_add_sa_t { uint16_t ipcomp; /** CPI for IPComp */ uint16_t cpi; + /** Optional CPU ID, must be CPU_ID_MAX if not used */ + uint32_t cpu; /** TRUE to enable UDP encapsulation for NAT traversal */ bool encap; /** HW offload mode */ diff --git a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c index dd205aa0a..74b33d883 100644 --- a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c +++ b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c @@ -1725,6 +1725,7 @@ METHOD(kernel_ipsec_t, add_sa, status_t, .int_alg = AUTH_UNDEFINED, .tfc = data->tfc, .ipcomp = data->ipcomp, + .cpu = data->cpu, .initiator = data->initiator, .inbound = data->inbound, .update = data->update, @@ -2084,6 +2085,15 @@ METHOD(kernel_ipsec_t, add_sa, status_t, goto failed; } + if (data->cpu != CPU_ID_MAX) + { + if (!add_uint32(hdr, sizeof(request), XFRMA_SA_PCPU, data->cpu)) + { + goto failed; + } + DBG2(DBG_KNL, " using CPU ID: %u", data->cpu); + } + if (id->proto != IPPROTO_COMP) { /* we don't need a replay window for outbound SAs, however, older diff --git a/src/libcharon/sa/child_sa.c b/src/libcharon/sa/child_sa.c index 2dfae0efb..a2bc49d2c 100644 --- a/src/libcharon/sa/child_sa.c +++ b/src/libcharon/sa/child_sa.c @@ -1054,6 +1054,7 @@ static status_t install_internal(private_child_sa_t *this, chunk_t encr, .ipcomp = this->ipcomp, .cpi = cpi, .encap = this->encap, + .cpu = CPU_ID_MAX, .hw_offload = this->config->get_hw_offload(this->config), .mark = this->config->get_set_mark(this->config, inbound), .esn = esn, From bdfcfea1f2393d0a719d231a2619381115b4c5c9 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 11 May 2021 16:24:38 +0200 Subject: [PATCH 07/32] kernel-netlink: Add support to enable per-CPU acquires on policies --- src/libcharon/kernel/kernel_ipsec.h | 2 ++ .../kernel_netlink/kernel_netlink_ipsec.c | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/libcharon/kernel/kernel_ipsec.h b/src/libcharon/kernel/kernel_ipsec.h index 8b79acac9..6663d730b 100644 --- a/src/libcharon/kernel/kernel_ipsec.h +++ b/src/libcharon/kernel/kernel_ipsec.h @@ -186,6 +186,8 @@ struct kernel_ipsec_manage_policy_t { uint32_t manual_prio; /** HW offload mode */ hw_offload_t hw_offload; + /** Enable per-CPU acquires */ + bool pcpu_acquires; /** Source address of the SA(s) tied to this policy */ host_t *src; /** Destination address of the SA(s) tied to this policy */ diff --git a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c index 74b33d883..fd47e4068 100644 --- a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c +++ b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c @@ -545,6 +545,9 @@ struct policy_sa_t { /** Type of the policy */ policy_type_t type; + /** Whether to trigger per-CPU acquires for this policy */ + bool pcpu_acquires; + /** Assigned SA */ ipsec_sa_t *sa; }; @@ -565,12 +568,13 @@ struct policy_sa_out_t { }; /** - * Create a policy_sa(_in)_t object + * Create a policy_sa(_out)_t object */ static policy_sa_t *policy_sa_create(private_kernel_netlink_ipsec_t *this, policy_dir_t dir, policy_type_t type, host_t *src, host_t *dst, traffic_selector_t *src_ts, traffic_selector_t *dst_ts, mark_t mark, - uint32_t if_id, hw_offload_t hw_offload, ipsec_sa_cfg_t *cfg) + uint32_t if_id, hw_offload_t hw_offload, bool pcpu_acquires, + ipsec_sa_cfg_t *cfg) { policy_sa_t *policy; @@ -588,6 +592,7 @@ static policy_sa_t *policy_sa_create(private_kernel_netlink_ipsec_t *this, INIT(policy, .priority = 0); } policy->type = type; + policy->pcpu_acquires = pcpu_acquires; policy->sa = ipsec_sa_create(this, src, dst, mark, if_id, hw_offload, cfg); return policy; } @@ -2951,6 +2956,11 @@ static status_t add_policy_internal(private_kernel_netlink_ipsec_t *this, policy_info->sel = policy->sel; policy_info->dir = policy->direction; + if (mapping->pcpu_acquires) + { + policy_info->flags |= XFRM_POLICY_CPU_ACQUIRE; + } + /* calculate priority based on selector size, small size = high prio */ policy_info->priority = mapping->priority; policy_info->action = mapping->type != POLICY_DROP ? XFRM_POLICY_ALLOW @@ -3007,8 +3017,9 @@ static status_t add_policy_internal(private_kernel_netlink_ipsec_t *this, tmpl->reqid = ipsec->cfg.reqid; tmpl->id.proto = protos[i].proto; /* in order to match SAs with all matching labels, we can't have the - * SPI in the template */ - if (policy->direction == POLICY_OUT && !policy->label) + * SPI in the template, similarly for per-CPU policies and sub-SAs */ + if (policy->direction == POLICY_OUT && !policy->label && + !mapping->pcpu_acquires) { tmpl->id.spi = protos[i].spi; } @@ -3154,7 +3165,8 @@ METHOD(kernel_ipsec_t, add_policy, status_t, /* cache the assigned IPsec SA */ assigned_sa = policy_sa_create(this, id->dir, data->type, data->src, data->dst, id->src_ts, id->dst_ts, id->mark, - id->if_id, data->hw_offload, data->sa); + id->if_id, data->hw_offload, + data->pcpu_acquires, data->sa); assigned_sa->auto_priority = get_priority(policy, data->prio, id->interface); assigned_sa->priority = this->get_priority ? this->get_priority(id, data) : data->manual_prio; @@ -3387,6 +3399,7 @@ METHOD(kernel_ipsec_t, del_policy, status_t, if (priority == mapping->priority && auto_priority == mapping->auto_priority && data->type == mapping->type && + data->pcpu_acquires == mapping->pcpu_acquires && ipsec_sa_equals(mapping->sa, &assigned_sa)) { current->used_by->remove_at(current->used_by, enumerator); From a505f4b9b007c2fb8a86961d2e8e4513a19b4aed Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 11 May 2021 17:55:21 +0200 Subject: [PATCH 08/32] child-sa: Add support for per-CPU SAs The CPU ID is also set on inbound SAs as it can be used to configure RSS or some eBPF program. --- src/libcharon/plugins/ha/ha_dispatcher.c | 1 + .../plugins/selinux/selinux_listener.c | 1 + src/libcharon/sa/child_sa.c | 74 ++++++++++++++++--- src/libcharon/sa/child_sa.h | 26 +++++++ src/libcharon/sa/ikev1/tasks/quick_mode.c | 1 + src/libcharon/sa/ikev2/tasks/child_create.c | 1 + src/libcharon/sa/trap_manager.c | 1 + 7 files changed, 94 insertions(+), 11 deletions(-) diff --git a/src/libcharon/plugins/ha/ha_dispatcher.c b/src/libcharon/plugins/ha/ha_dispatcher.c index 5ef52546c..e63a9a726 100644 --- a/src/libcharon/plugins/ha/ha_dispatcher.c +++ b/src/libcharon/plugins/ha/ha_dispatcher.c @@ -820,6 +820,7 @@ static void process_child_add(private_ha_dispatcher_t *this, child_sa_create_t data = { .encap = ike_sa->has_condition(ike_sa, COND_NAT_ANY), + .cpu = CPU_ID_MAX, }; child_sa = child_sa_create(ike_sa->get_my_host(ike_sa), ike_sa->get_other_host(ike_sa), config, &data); diff --git a/src/libcharon/plugins/selinux/selinux_listener.c b/src/libcharon/plugins/selinux/selinux_listener.c index 396c4b042..cb7c86f11 100644 --- a/src/libcharon/plugins/selinux/selinux_listener.c +++ b/src/libcharon/plugins/selinux/selinux_listener.c @@ -125,6 +125,7 @@ METHOD(listener_t, ike_updown, bool, child_sa_create_t child = { .if_id_in_def = ike_sa->get_if_id(ike_sa, TRUE), .if_id_out_def = ike_sa->get_if_id(ike_sa, FALSE), + .cpu = CPU_ID_MAX, }; INIT(entry, diff --git a/src/libcharon/sa/child_sa.c b/src/libcharon/sa/child_sa.c index a2bc49d2c..d5c09c1da 100644 --- a/src/libcharon/sa/child_sa.c +++ b/src/libcharon/sa/child_sa.c @@ -181,6 +181,16 @@ struct private_child_sa_t { */ uint32_t if_id_out; + /** + * CPU ID to use for the outbound SA + */ + uint32_t cpu; + + /** + * Whether to enable per-CPU feature for this SA + */ + bool per_cpu; + /** * inbound mark used for this child_sa */ @@ -834,6 +844,28 @@ METHOD(child_sa_t, set_acquire_seq, void, this->seq = seq; } +METHOD(child_sa_t, get_cpu, uint32_t, + private_child_sa_t *this) +{ + return this->cpu; +} + +METHOD(child_sa_t, use_per_cpu, bool, + private_child_sa_t *this) +{ + return this->per_cpu; +} + +METHOD(child_sa_t, set_per_cpu, void, + private_child_sa_t *this, bool per_cpu) +{ + if (!per_cpu) + { + this->cpu = CPU_ID_MAX; + } + this->per_cpu = per_cpu; +} + METHOD(child_sa_t, get_lifetime, time_t, private_child_sa_t *this, bool hard) { @@ -1054,7 +1086,7 @@ static status_t install_internal(private_child_sa_t *this, chunk_t encr, .ipcomp = this->ipcomp, .cpi = cpi, .encap = this->encap, - .cpu = CPU_ID_MAX, + .cpu = this->per_cpu ? this->cpu : CPU_ID_MAX, .hw_offload = this->config->get_hw_offload(this->config), .mark = this->config->get_set_mark(this->config, inbound), .esn = esn, @@ -1101,12 +1133,25 @@ METHOD(child_sa_t, install, status_t, } /** - * Check kernel interface if policy updates are required + * Check whether to install policies for this CHILD_SA */ -static bool require_policy_update() +static bool require_policies(private_child_sa_t *this) +{ + return !this->config->has_option(this->config, OPT_NO_POLICIES); +} + +/** + * Check if policy updates are required + */ +static bool require_policy_update(private_child_sa_t *this) { kernel_feature_t f; + if (!require_policies(this)) + { + return FALSE; + } + f = charon->kernel->get_features(charon->kernel); return !(f & KERNEL_NO_POLICY_UPDATES); } @@ -1217,6 +1262,7 @@ static status_t install_policies_outbound(private_child_sa_t *this, .hw_offload = this->config->get_hw_offload(this->config), .src = my_addr, .dst = other_addr, + .pcpu_acquires = this->per_cpu, .sa = other_sa, }; uint32_t reqid = other_sa->reqid; @@ -1330,6 +1376,7 @@ static void del_policies_outbound(private_child_sa_t *this, .hw_offload = this->config->get_hw_offload(this->config), .src = my_addr, .dst = other_addr, + .pcpu_acquires = this->per_cpu, .sa = other_sa, }; uint32_t reqid = other_sa->reqid; @@ -1427,7 +1474,7 @@ METHOD(child_sa_t, install_policies, status_t, this->outbound_state |= CHILD_OUTBOUND_POLICIES; } - if (!this->config->has_option(this->config, OPT_NO_POLICIES)) + if (require_policies(this)) { policy_priority_t priority; ipsec_sa_cfg_t my_sa, other_sa; @@ -1473,11 +1520,12 @@ METHOD(child_sa_t, install_policies, status_t, * * However, if we use labels with SELinux, we can't as we don't set SPIs * on the policy in order to match SAs with other labels that match the generic - * label that's used on the policies. + * label that's used on the policies. The same is the case for per-CPU SAs. */ static bool install_outbound_immediately(private_child_sa_t *this) { - if (charon->kernel->get_features(charon->kernel) & KERNEL_POLICY_SPI) + if (charon->kernel->get_features(charon->kernel) & KERNEL_POLICY_SPI && + !this->per_cpu) { if (this->config->get_label_mode(this->config) == SEC_LABEL_MODE_SELINUX) { @@ -1538,7 +1586,7 @@ METHOD(child_sa_t, install_outbound, status_t, { return status; } - if (!this->config->has_option(this->config, OPT_NO_POLICIES) && + if (require_policies(this) && !(this->outbound_state & CHILD_OUTBOUND_POLICIES)) { ipsec_sa_cfg_t my_sa, other_sa; @@ -1582,7 +1630,7 @@ METHOD(child_sa_t, remove_outbound, void, return; } - if (!this->config->has_option(this->config, OPT_NO_POLICIES) && + if (require_policies(this) && (this->outbound_state & CHILD_OUTBOUND_POLICIES)) { ipsec_sa_cfg_t my_sa, other_sa; @@ -1749,8 +1797,7 @@ METHOD(child_sa_t, update, status_t, this->config->has_option(this->config, OPT_PROXY_MODE); - if (!this->config->has_option(this->config, OPT_NO_POLICIES) && - require_policy_update() && array_count(this->my_ts) && + if (require_policy_update(this) && array_count(this->my_ts) && array_count(this->other_ts)) { ipsec_sa_cfg_t my_sa, other_sa; @@ -1949,7 +1996,7 @@ METHOD(child_sa_t, destroy, void, set_state(this, CHILD_DESTROYING); - if (!this->config->has_option(this->config, OPT_NO_POLICIES)) + if (require_policies(this)) { ipsec_sa_cfg_t my_sa, other_sa; uint32_t manual_prio; @@ -2093,6 +2140,9 @@ child_sa_t *child_sa_create(host_t *me, host_t *other, child_cfg_t *config, .get_mark = _get_mark, .get_if_id = _get_if_id, .get_label = _get_label, + .get_cpu = _get_cpu, + .set_per_cpu = _set_per_cpu, + .use_per_cpu = _use_per_cpu, .get_acquire_seq = _get_acquire_seq, .set_acquire_seq = _set_acquire_seq, .has_encap = _has_encap, @@ -2133,6 +2183,8 @@ child_sa_t *child_sa_create(host_t *me, host_t *other, child_cfg_t *config, .if_id_in = config->get_if_id(config, TRUE) ?: data->if_id_in_def, .if_id_out = config->get_if_id(config, FALSE) ?: data->if_id_out_def, .label = data->label ? data->label->clone(data->label) : NULL, + .cpu = data->cpu, + .per_cpu = data->per_cpu, .seq = data->seq, .install_time = time_monotonic(NULL), .policies_fwd_out = config->has_option(config, OPT_FWD_OUT_POLICIES), diff --git a/src/libcharon/sa/child_sa.h b/src/libcharon/sa/child_sa.h index 57d345857..64e3df774 100644 --- a/src/libcharon/sa/child_sa.h +++ b/src/libcharon/sa/child_sa.h @@ -390,6 +390,28 @@ struct child_sa_t { */ sec_label_t *(*get_label)(child_sa_t *this); + /** + * Get the CPU ID used with this CHILD_SA. + * + * @return CPU used with this CHILD_SA + */ + uint32_t (*get_cpu)(child_sa_t *this); + + /** + * Whether the per-CPU SA feature is enabled for this CHILD_SA. + * + * @return TRUE if per-CPU SA feature is enabled + */ + bool (*use_per_cpu)(child_sa_t *this); + + /** + * Set whether the per-CPU SA feature is enabled for this CHILD_SA. + * + * @param per_cpu TRUE to enable per-CPU SA feature, FALSE also resets + * the CPU ID + */ + void (*set_per_cpu)(child_sa_t *this, bool per_cpu); + /** * Get the optional sequence number associated with the acquire that * triggered this CHILD_SA. @@ -575,6 +597,10 @@ struct child_sa_create_t { uint32_t if_id_out_def; /** Optional security label to apply on SAs (cloned) */ sec_label_t *label; + /** Optional CPU ID, CPU_ID_MAX if not specified */ + uint32_t cpu; + /** Optional flag to enable per-CPU SA feature */ + bool per_cpu; /** Optional sequence number associated with the acquire that triggered * this SA */ uint32_t seq; diff --git a/src/libcharon/sa/ikev1/tasks/quick_mode.c b/src/libcharon/sa/ikev1/tasks/quick_mode.c index 686bc9ea9..a7c52c352 100644 --- a/src/libcharon/sa/ikev1/tasks/quick_mode.c +++ b/src/libcharon/sa/ikev1/tasks/quick_mode.c @@ -1567,6 +1567,7 @@ quick_mode_t *quick_mode_create(ike_sa_t *ike_sa, child_cfg_t *config, .abort = _abort_, }, .child = { + .cpu = CPU_ID_MAX, .seq = seq, }, .ike_sa = ike_sa, diff --git a/src/libcharon/sa/ikev2/tasks/child_create.c b/src/libcharon/sa/ikev2/tasks/child_create.c index 534afb96c..4c5a6fe09 100644 --- a/src/libcharon/sa/ikev2/tasks/child_create.c +++ b/src/libcharon/sa/ikev2/tasks/child_create.c @@ -2833,6 +2833,7 @@ child_create_t *child_create_create(ike_sa_t *ike_sa, }, }, .child = { + .cpu = CPU_ID_MAX, .seq = seq, }, .ike_sa = ike_sa, diff --git a/src/libcharon/sa/trap_manager.c b/src/libcharon/sa/trap_manager.c index 814c8c8c0..0855e5517 100644 --- a/src/libcharon/sa/trap_manager.c +++ b/src/libcharon/sa/trap_manager.c @@ -349,6 +349,7 @@ METHOD(trap_manager_t, install, bool, * pass them in a later initiate() call */ .if_id_in_def = peer->get_if_id(peer, TRUE), .if_id_out_def = peer->get_if_id(peer, FALSE), + .cpu = CPU_ID_MAX, }; child_sa = child_sa_create(me, other, child, &child_data); From 5faf88428561e935b517505cb1065e140655a923 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 31 May 2021 15:06:41 +0200 Subject: [PATCH 09/32] connmark: Ignore per-CPU CHILD_SAs The combination probably doesn't make much sense. The OUTPUT rules would definitely only be required once, while the INPUT and PREROUTING rules list individual SPIs and/or UDP ports, which would be necessary for all SAs. By the way, the rules in PREROUTING might actually not be necessary anymore if the set_mark_in option was used for such SAs. --- src/libcharon/plugins/connmark/connmark_listener.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libcharon/plugins/connmark/connmark_listener.c b/src/libcharon/plugins/connmark/connmark_listener.c index 48731af61..7a6d3d466 100644 --- a/src/libcharon/plugins/connmark/connmark_listener.c +++ b/src/libcharon/plugins/connmark/connmark_listener.c @@ -432,7 +432,8 @@ static bool handle_sa(child_sa_t *child_sa) return child_sa->get_mark(child_sa, TRUE).value && child_sa->get_mark(child_sa, FALSE).value && child_sa->get_mode(child_sa) == MODE_TRANSPORT && - child_sa->get_protocol(child_sa) == PROTO_ESP; + child_sa->get_protocol(child_sa) == PROTO_ESP && + !child_sa->use_per_cpu(child_sa); } METHOD(listener_t, child_updown, bool, From 17f2188756d27d1b2f0eff5495e983a3c95c55cc Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 31 May 2021 15:21:46 +0200 Subject: [PATCH 10/32] forecast: Ignore per-CPU CHILD_SAs Not sure if this combination does make sense as the plugin itself would be a major bottleneck. Similar to the connmark plugin, PREROUTING rules list SPIs or UDP ports, which would be necessary for all SAs while the OUTPUT rules would only be required once. --- src/libcharon/plugins/forecast/forecast_listener.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libcharon/plugins/forecast/forecast_listener.c b/src/libcharon/plugins/forecast/forecast_listener.c index 4983835f1..3d000bc48 100644 --- a/src/libcharon/plugins/forecast/forecast_listener.c +++ b/src/libcharon/plugins/forecast/forecast_listener.c @@ -500,7 +500,8 @@ static bool commit_handle(struct iptc_handle *ipth) static bool handle_sa(child_sa_t *child_sa) { return child_sa->get_mark(child_sa, TRUE).value && - child_sa->get_mark(child_sa, FALSE).value; + child_sa->get_mark(child_sa, FALSE).value && + !child_sa->use_per_cpu(child_sa); } METHOD(listener_t, child_updown, bool, From 297be45275617c548b0f986f1dbdd24c87c333dd Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 31 May 2021 15:26:27 +0200 Subject: [PATCH 11/32] ha: Ignore per-CPU CHILD_SAs These only work on initiators (with trap policies), which is something the plugin doesn't support. --- src/libcharon/plugins/ha/ha_child.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libcharon/plugins/ha/ha_child.c b/src/libcharon/plugins/ha/ha_child.c index 9d8fca9eb..ee3385004 100644 --- a/src/libcharon/plugins/ha/ha_child.c +++ b/src/libcharon/plugins/ha/ha_child.c @@ -66,6 +66,10 @@ METHOD(listener_t, child_keys, bool, { /* do not sync SA between nodes */ return TRUE; } + if (child_sa->use_per_cpu(child_sa)) + { /* ignore per-CPU SAs */ + return TRUE; + } m = ha_message_create(HA_CHILD_ADD); @@ -167,7 +171,10 @@ METHOD(listener_t, child_state_change, bool, { /* do not sync SA between nodes */ return TRUE; } - + if (child_sa->use_per_cpu(child_sa)) + { /* ignore per-CPU SAs */ + return TRUE; + } if (state == CHILD_DESTROYING) { From 3a8bb93761dce356718929b07b4f0e62733e449c Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 31 May 2021 16:12:27 +0200 Subject: [PATCH 12/32] updown: Don't call the script for per-CPU SAs Rules are installed for the fallback SA that has no CPU ID assigned. --- src/libcharon/plugins/updown/updown_listener.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libcharon/plugins/updown/updown_listener.c b/src/libcharon/plugins/updown/updown_listener.c index f4ab964e9..a62184a26 100644 --- a/src/libcharon/plugins/updown/updown_listener.c +++ b/src/libcharon/plugins/updown/updown_listener.c @@ -435,6 +435,11 @@ METHOD(listener_t, child_updown, bool, enumerator_t *enumerator; child_cfg_t *config; + if (child_sa->get_cpu(child_sa) != CPU_ID_MAX) + { /* don't call the script for per-CPU SAs */ + return TRUE; + } + config = child_sa->get_config(child_sa); if (config->get_updown(config)) { From bdf882d3af1d830e96a9d3cc27eee5eb6ed19a41 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 19 May 2021 10:59:03 +0200 Subject: [PATCH 13/32] child-create: Add support to negotiate per-CPU SAs --- src/libcharon/sa/ikev2/tasks/child_create.c | 189 ++++++++++++++++++++ src/libcharon/sa/ikev2/tasks/child_create.h | 10 ++ 2 files changed, 199 insertions(+) diff --git a/src/libcharon/sa/ikev2/tasks/child_create.c b/src/libcharon/sa/ikev2/tasks/child_create.c index 4c5a6fe09..2bcf3baad 100644 --- a/src/libcharon/sa/ikev2/tasks/child_create.c +++ b/src/libcharon/sa/ikev2/tasks/child_create.c @@ -16,12 +16,15 @@ * for more details. */ +#include + #include "child_create.h" #include #include #include #include +#include #include #include #include @@ -37,6 +40,9 @@ typedef struct private_child_create_t private_child_create_t; +/** Assumed minimum CPU ID, used when searching for a CPU without SA */ +#define CPU_ID_MIN 0 + /** * Private members of a child_create_t task. */ @@ -127,6 +133,16 @@ struct private_child_create_t { */ traffic_selector_list_t *other_ts; + /** + * Resource info sent by the peer + */ + chunk_t resource_info; + + /** + * Whether we received resource info (might be empty) + */ + bool resource_info_seen; + /** * Key exchanges to perform */ @@ -265,6 +281,7 @@ static void schedule_delayed_retry(private_child_create_t *this) task->use_marks(task, this->child.mark_in, this->child.mark_out); task->use_if_ids(task, this->child.if_id_in, this->child.if_id_out); task->use_label(task, this->child.label); + task->use_per_cpu(task, this->child.per_cpu, this->child.cpu); /* clone these directly as we don't have a public method */ if (this->my_ts && this->other_ts) @@ -873,6 +890,83 @@ static bool select_proposal(private_child_create_t *this, bool no_ke) return TRUE; } +/** + * Returns the number of CPUs that are configured on the system or only those + * that are currently online (if we can distinguish this). + */ +static uint32_t get_system_cpus(bool online) +{ + long cpus; + +#ifdef WIN32 + SYSTEM_INFO sysinfo; + GetSystemInfo(&sysinfo); + cpus = sysinfo.dwNumberOfProcessors; +#else /* WIN32 */ + cpus = sysconf(online ? _SC_NPROCESSORS_ONLN : _SC_NPROCESSORS_CONF); + + if (cpus < 0) + { + DBG1(DBG_IKE, "failed to determine number of CPUs for this system"); + /* assume we have at least one CPU */ + cpus = 1; + } +#endif /* WIN32 */ + return cpus; +} + +/** + * Finds an unused CPU ID to be assigned to a responder's CHILD_SA, or return + * CPU_ID_MAX if we don't have a fallback yet. + */ +static uint32_t get_cpu(private_child_create_t *this) +{ + enumerator_t *enumerator; + hashtable_t *used; + child_sa_t *child_sa; + bool found_fallback = FALSE; + uint32_t cpu; + + used = hashtable_create(hashtable_hash_ptr, hashtable_equals_ptr, 32); + + enumerator = this->ike_sa->create_child_sa_enumerator(this->ike_sa); + while (enumerator->enumerate(enumerator, (void**)&child_sa)) + { + if (child_sa->get_state(child_sa) == CHILD_INSTALLED && + this->config->equals(this->config, child_sa->get_config(child_sa))) + { + cpu = child_sa->get_cpu(child_sa); + if (cpu != CPU_ID_MAX) + { + used->put(used, (void*)(uintptr_t)cpu, child_sa); + } + else + { + found_fallback = TRUE; + } + } + } + enumerator->destroy(enumerator); + + if (!found_fallback) + { + cpu = CPU_ID_MAX; + } + else + { + cpu = get_system_cpus(TRUE) + CPU_ID_MIN - 1; + for (; cpu > CPU_ID_MIN; cpu--) + { + if (!used->get(used, (void*)(uintptr_t)cpu)) + { + break; + } + } + } + used->destroy(used); + return cpu; +} + /** * Add a KE payload if a key exchange is used. As responder we might already * have stored the object in the list of completed exchanges. @@ -989,6 +1083,21 @@ static bool build_payloads(private_child_create_t *this, message_t *message) message->add_notify(message, FALSE, ESP_TFC_PADDING_NOT_SUPPORTED, chunk_empty); } + + if (!this->rekey && this->child.per_cpu) + { + chunk_t cpu_id = chunk_empty; + uint32_t cpu; + + /* always send the notify, but possibly without CPU ID */ + if (this->child.cpu != CPU_ID_MAX) + { + cpu = htonl(this->child.cpu); + cpu_id = chunk_from_thing(cpu); + } + message->add_notify(message, FALSE, SA_RESOURCE_INFO, + cpu_id); + } return TRUE; } @@ -1063,6 +1172,11 @@ static void handle_notify(private_child_create_t *this, notify_payload_t *notify notify_type_names, notify->get_notify_type(notify)); this->tfcv3 = FALSE; break; + case SA_RESOURCE_INFO: + chunk_free(&this->resource_info); + this->resource_info = chunk_clone(notify->get_notification_data(notify)); + this->resource_info_seen = TRUE; + break; default: break; } @@ -1384,6 +1498,7 @@ static bool child_sa_equals(private_child_create_t *this, child_sa_t *a, a->get_mark(a, FALSE).value == b->get_mark(b, FALSE).value && a->get_if_id(a, TRUE) == b->get_if_id(b, TRUE) && a->get_if_id(a, FALSE) == b->get_if_id(b, FALSE) && + a->get_cpu(a) == b->get_cpu(b) && sec_labels_equal(a->get_label(a), b->get_label(b)) && reqid_and_ts_equals(this, a, b); } @@ -1593,6 +1708,11 @@ METHOD(task_t, build_i, status_t, DBG2(DBG_CFG, "proposing security label '%s'", this->child.label->get_string(this->child.label)); } + if (!this->rekey) + { + this->child.per_cpu = this->config->has_option(this->config, + OPT_PER_CPU_SAS); + } this->proposals = this->config->get_proposals(this->config, no_ke); this->mode = this->config->get_mode(this->config); @@ -1956,6 +2076,48 @@ static bool select_label(private_child_create_t *this) return TRUE; } +/** + * Handle per-resource information. + */ +static void handle_per_resource(private_child_create_t *this) +{ + if (!this->resource_info_seen) + { + DBG1(DBG_IKE, "peer didn't send %N notify, creating regular SA", + notify_type_names, SA_RESOURCE_INFO); + this->child.per_cpu = FALSE; + this->child.cpu = CPU_ID_MAX; + return; + } + + /* as responder, assign a CPU ID (or CPU_ID_MAX if we don't have a + * fallback SA yet) */ + if (!this->initiator) + { + this->child.per_cpu = TRUE; + this->child.cpu = get_cpu(this); + } + if (this->child.cpu != CPU_ID_MAX && this->resource_info.len) + { + DBG1(DBG_IKE, "creating per-resource SA as one of several (our ID %u, " + "peer's ID %+B)", this->child.cpu, &this->resource_info); + } + else if (this->child.cpu != CPU_ID_MAX) + { + DBG1(DBG_IKE, "creating per-resource SA as one of several (our ID %u)", + this->child.cpu); + } + else if (this->resource_info.len) + { + DBG1(DBG_IKE, "creating SA as one of several per-resource SAs (peer's " + "ID %+B)", &this->resource_info); + } + else + { + DBG1(DBG_IKE, "creating SA as one of several per-resource SAs"); + } +} + /** * Called when a key exchange is done, returns TRUE once all are done. */ @@ -2201,6 +2363,15 @@ METHOD(task_t, build_r, status_t, this->child.if_id_in_def = this->ike_sa->get_if_id(this->ike_sa, TRUE); this->child.if_id_out_def = this->ike_sa->get_if_id(this->ike_sa, FALSE); this->child.encap = this->ike_sa->has_condition(this->ike_sa, COND_NAT_ANY); + + if (!this->rekey && this->config->has_option(this->config, OPT_PER_CPU_SAS)) + { + handle_per_resource(this); + /* if it's a per-resource SA, we could check if we already have + * "too many" and reject this one with TS_MAX_QUEUE, but for now we just + * keep it */ + } + this->child_sa = child_sa_create(this->ike_sa->get_my_host(this->ike_sa), this->ike_sa->get_other_host(this->ike_sa), this->config, &this->child); @@ -2550,6 +2721,13 @@ METHOD(task_t, process_i, status_t, return delete_failed_sa(this); } + if (!this->rekey && this->config->has_option(this->config, OPT_PER_CPU_SAS)) + { + handle_per_resource(this); + /* the peer might not have returned the notify, update the flag */ + this->child_sa->set_per_cpu(this->child_sa, this->child.per_cpu); + } + if (key_exchange_done_and_install_i(this, message, ike_auth) == NEED_MORE) { /* if the installation failed, we delete the failed SA, i.e. build() was @@ -2602,6 +2780,13 @@ METHOD(child_create_t, use_label, void, this->child.label = label ? label->clone(label) : NULL; } +METHOD(child_create_t, use_per_cpu, void, + private_child_create_t *this, bool per_cpu, uint32_t cpu) +{ + this->child.per_cpu = per_cpu ? per_cpu : cpu != CPU_ID_MAX; + this->child.cpu = cpu; +} + /** * Prepare traffic selectors for reuse when recreating a CHILD_SA. */ @@ -2736,6 +2921,7 @@ METHOD(task_t, migrate, void, chunk_free(&this->my_nonce); chunk_free(&this->other_nonce); chunk_free(&this->link); + chunk_free(&this->resource_info); DESTROY_OFFSET_IF(this->tsr, offsetof(traffic_selector_t, destroy)); DESTROY_OFFSET_IF(this->tsi, offsetof(traffic_selector_t, destroy)); DESTROY_OFFSET_IF(this->labels_i, offsetof(sec_label_t, destroy)); @@ -2767,6 +2953,7 @@ METHOD(task_t, migrate, void, this->ipcomp_received = IPCOMP_NONE; this->other_cpi = 0; this->established = FALSE; + this->resource_info_seen = FALSE; this->public.task.build = _build_i; this->public.task.process = _process_i; } @@ -2777,6 +2964,7 @@ METHOD(task_t, destroy, void, chunk_free(&this->my_nonce); chunk_free(&this->other_nonce); chunk_free(&this->link); + chunk_free(&this->resource_info); DESTROY_OFFSET_IF(this->tsr, offsetof(traffic_selector_t, destroy)); DESTROY_OFFSET_IF(this->tsi, offsetof(traffic_selector_t, destroy)); DESTROY_OFFSET_IF(this->labels_i, offsetof(sec_label_t, destroy)); @@ -2824,6 +3012,7 @@ child_create_t *child_create_create(ike_sa_t *ike_sa, .use_marks = _use_marks, .use_if_ids = _use_if_ids, .use_label = _use_label, + .use_per_cpu = _use_per_cpu, .recreate_sa = _recreate_sa, .abort = _abort_, .task = { diff --git a/src/libcharon/sa/ikev2/tasks/child_create.h b/src/libcharon/sa/ikev2/tasks/child_create.h index 0c0e6137e..c72407f64 100644 --- a/src/libcharon/sa/ikev2/tasks/child_create.h +++ b/src/libcharon/sa/ikev2/tasks/child_create.h @@ -80,6 +80,16 @@ struct child_create_t { */ void (*use_label)(child_create_t *this, sec_label_t *label); + /** + * Enable per-CPU feature, optionally with a specific CPU ID for the + * negotiated CHILD_SA. + * + * @param per_cpu TRUE to enable per-CPU feature (automatically set if + * cpu is not CPU_ID_MAX) + * @param cpu CPU ID + */ + void (*use_per_cpu)(child_create_t *this, bool per_cpu, uint32_t cpu); + /** * Use data from the given old SA (e.g. KE method and traffic selectors) * when rekeying/recreating it. From af34b5b1dc3855925f5e391d99a36c079036927c Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 19 May 2021 12:00:39 +0200 Subject: [PATCH 14/32] child-rekey: Maintain per-CPU values during rekeying --- src/libcharon/sa/ikev2/tasks/child_rekey.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libcharon/sa/ikev2/tasks/child_rekey.c b/src/libcharon/sa/ikev2/tasks/child_rekey.c index fb4a724f4..c1d692dce 100644 --- a/src/libcharon/sa/ikev2/tasks/child_rekey.c +++ b/src/libcharon/sa/ikev2/tasks/child_rekey.c @@ -291,6 +291,9 @@ METHOD(task_t, build_i, status_t, this->child_sa->get_if_id(this->child_sa, FALSE)); this->child_create->use_label(this->child_create, this->child_sa->get_label(this->child_sa)); + this->child_create->use_per_cpu(this->child_create, + this->child_sa->use_per_cpu(this->child_sa), + this->child_sa->get_cpu(this->child_sa)); } if (this->child_create->task.build(&this->child_create->task, @@ -445,6 +448,9 @@ METHOD(task_t, build_r, status_t, this->child_sa->get_if_id(this->child_sa, FALSE)); this->child_create->use_label(this->child_create, this->child_sa->get_label(this->child_sa)); + this->child_create->use_per_cpu(this->child_create, + this->child_sa->use_per_cpu(this->child_sa), + this->child_sa->get_cpu(this->child_sa)); config = this->child_sa->get_config(this->child_sa); this->child_create->set_config(this->child_create, config->get_ref(config)); From 8e7f379f716ce534adfef8559c7a25f646ed6329 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 20 May 2021 09:41:54 +0200 Subject: [PATCH 15/32] ike-sa: Sort CHILD_SAs by CPU ID This might make debugging easier and also ensures that a possible fallback SA without CPU ID is established first when reestablishing an IKE_SA. Because even if such an SA is established first initially, that might change later depending on when per-CPU SAs are rekeyed. --- src/libcharon/sa/ike_sa.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c index 3cfcdcf33..b1e5e368c 100644 --- a/src/libcharon/sa/ike_sa.c +++ b/src/libcharon/sa/ike_sa.c @@ -1778,10 +1778,27 @@ METHOD(ike_sa_t, get_if_id, uint32_t, return inbound ? this->if_id_in : this->if_id_out; } +/** + * Sort CHILD_SAs by config and CPU ID so SAs without ID are enumerated first. + */ +static int child_sa_sort(const void *a_pub, const void *b_pub, void *user) +{ + child_sa_t *a = (child_sa_t*)a_pub, *b = (child_sa_t*)b_pub; + child_cfg_t *cfg = a->get_config(a); + + if (!cfg->equals(cfg, b->get_config(b))) + { /* use the unique IDs of unrelated SAs to maintain insertion order */ + return a->get_unique_id(a) - b->get_unique_id(b); + } + /* otherwise use the CPU ID, making sure an SA without ID comes first */ + return a->get_cpu(a) == CPU_ID_MAX ? -1 : a->get_cpu(a) - b->get_cpu(b); +} + METHOD(ike_sa_t, add_child_sa, void, private_ike_sa_t *this, child_sa_t *child_sa) { array_insert_create(&this->child_sas, ARRAY_TAIL, child_sa); + array_sort(this->child_sas, child_sa_sort, NULL); charon->child_sa_manager->add(charon->child_sa_manager, child_sa, &this->public); } From 2082fa5dd2bd5c24fa3f1f785367b37b5c6d71aa Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 19 May 2021 15:11:53 +0200 Subject: [PATCH 16/32] ike-sa: Accept optional CPU ID when initiating CHILD_SAs --- src/libcharon/sa/ike_sa.h | 2 ++ src/libcharon/sa/ikev1/tasks/quick_delete.c | 1 + src/libcharon/sa/ikev2/task_manager_v2.c | 5 +++++ src/libcharon/sa/ikev2/tasks/child_delete.c | 2 ++ src/libcharon/sa/trap_manager.c | 1 + 5 files changed, 11 insertions(+) diff --git a/src/libcharon/sa/ike_sa.h b/src/libcharon/sa/ike_sa.h index c6fa62ff3..e3d4098a0 100644 --- a/src/libcharon/sa/ike_sa.h +++ b/src/libcharon/sa/ike_sa.h @@ -406,6 +406,8 @@ extern enum_name_t *ike_sa_state_names; struct child_init_args_t { /** Reqid to use for CHILD_SA, 0 to assign automatically */ uint32_t reqid; + /** Optional CPU ID to use for CHILD_SA, CPU_ID_MAX if unspecified */ + uint32_t cpu; /** Optional source of triggering packet */ traffic_selector_t *src; /** Optional destination of triggering packet */ diff --git a/src/libcharon/sa/ikev1/tasks/quick_delete.c b/src/libcharon/sa/ikev1/tasks/quick_delete.c index 0da50ed40..265d36c39 100644 --- a/src/libcharon/sa/ikev1/tasks/quick_delete.c +++ b/src/libcharon/sa/ikev1/tasks/quick_delete.c @@ -152,6 +152,7 @@ static status_t delete_child(private_quick_delete_t *this, { child_init_args_t args = { .reqid = child_sa->get_reqid_ref(child_sa), + .cpu = child_sa->get_cpu(child_sa), }; action_t action; diff --git a/src/libcharon/sa/ikev2/task_manager_v2.c b/src/libcharon/sa/ikev2/task_manager_v2.c index d46559182..0f3b937fd 100644 --- a/src/libcharon/sa/ikev2/task_manager_v2.c +++ b/src/libcharon/sa/ikev2/task_manager_v2.c @@ -2208,6 +2208,8 @@ static void trigger_mbb_reauth(private_task_manager_t *this) child_sa->get_mark(child_sa, TRUE).value, child_sa->get_mark(child_sa, FALSE).value); child_create->use_label(child_create, child_sa->get_label(child_sa)); + child_create->use_per_cpu(child_create, child_sa->use_per_cpu(child_sa), + child_sa->get_cpu(child_sa)); /* interface IDs are not migrated as the new CHILD_SAs on old and new * IKE_SA go though regular updown events */ new->queue_task(new, &child_create->task); @@ -2387,6 +2389,8 @@ METHOD(task_manager_t, queue_child, void, charon->kernel->release_reqid(charon->kernel, reqid); } task->use_label(task, child_sa->get_label(child_sa)); + task->use_per_cpu(task, child_sa->use_per_cpu(child_sa), + child_sa->get_cpu(child_sa)); } else if (args) { @@ -2394,6 +2398,7 @@ METHOD(task_manager_t, queue_child, void, args->dst, args->seq); task->use_reqid(task, args->reqid); task->use_label(task, args->label); + task->use_per_cpu(task, FALSE, args->cpu); } else { diff --git a/src/libcharon/sa/ikev2/tasks/child_delete.c b/src/libcharon/sa/ikev2/tasks/child_delete.c index 7987bdd53..c319d8e25 100644 --- a/src/libcharon/sa/ikev2/tasks/child_delete.c +++ b/src/libcharon/sa/ikev2/tasks/child_delete.c @@ -171,6 +171,8 @@ static void queue_child_create(ike_sa_t *ike_sa, child_sa_t *child_sa) charon->kernel->release_reqid(charon->kernel, reqid); } child_create->use_label(child_create, child_sa->get_label(child_sa)); + child_create->use_per_cpu(child_create, child_sa->use_per_cpu(child_sa), + child_sa->get_cpu(child_sa)); ike_sa->queue_task(ike_sa, (task_t*)child_create); } diff --git a/src/libcharon/sa/trap_manager.c b/src/libcharon/sa/trap_manager.c index 0855e5517..c550695a4 100644 --- a/src/libcharon/sa/trap_manager.c +++ b/src/libcharon/sa/trap_manager.c @@ -643,6 +643,7 @@ METHOD(trap_manager_t, acquire, void, { child_init_args_t args = { .reqid = allocated_reqid, + .cpu = CPU_ID_MAX, .src = data->src, .dst = data->dst, .label = data->label, From d6eed3979b1f181458248eaee9753367ad69fb5f Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 26 Sep 2022 16:47:46 +0200 Subject: [PATCH 17/32] kernel-interface: Optionally pass CPU ID for which an acquire was triggered --- src/charon-tkm/src/ees/ees_callbacks.c | 4 +++- src/libcharon/kernel/kernel_listener.h | 2 ++ src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c | 4 +++- src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c | 4 +++- src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c | 4 +++- src/libcharon/plugins/kernel_wfp/kernel_wfp_ipsec.c | 4 +++- 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/charon-tkm/src/ees/ees_callbacks.c b/src/charon-tkm/src/ees/ees_callbacks.c index c276a8ee7..74da4b61f 100644 --- a/src/charon-tkm/src/ees/ees_callbacks.c +++ b/src/charon-tkm/src/ees/ees_callbacks.c @@ -25,7 +25,9 @@ void charon_esa_acquire(result_type *res, const sp_id_type sp_id) { - kernel_acquire_data_t data = {}; + kernel_acquire_data_t data = { + .cpu = CPU_ID_MAX, + }; DBG1(DBG_KNL, "ees: acquire received for reqid %u", sp_id); charon->kernel->acquire(charon->kernel, sp_id, &data); diff --git a/src/libcharon/kernel/kernel_listener.h b/src/libcharon/kernel/kernel_listener.h index 55f952a17..eee9235db 100644 --- a/src/libcharon/kernel/kernel_listener.h +++ b/src/libcharon/kernel/kernel_listener.h @@ -40,6 +40,8 @@ struct kernel_acquire_data_t { traffic_selector_t *dst; /** Optional security label of the triggering packet */ sec_label_t *label; + /** Optional CPU ID of the triggering packet, CPU_ID_MAX if none */ + uint32_t cpu; /** Optional sequence number associated with the acquire */ uint32_t seq; }; diff --git a/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c b/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c index b0fb2f970..215eaa153 100644 --- a/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c +++ b/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c @@ -238,7 +238,9 @@ static void expire(uint8_t protocol, uint32_t spi, host_t *dst, bool hard) */ static void acquire(uint32_t reqid) { - kernel_acquire_data_t data = {}; + kernel_acquire_data_t data = { + .cpu = CPU_ID_MAX, + }; charon->kernel->acquire(charon->kernel, reqid, &data); } diff --git a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c index fd47e4068..2e47ecc5c 100644 --- a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c +++ b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c @@ -974,7 +974,9 @@ static void process_acquire(private_kernel_netlink_ipsec_t *this, struct xfrm_user_acquire *acquire; struct rtattr *rta; size_t rtasize; - kernel_acquire_data_t data = {}; + kernel_acquire_data_t data = { + .cpu = CPU_ID_MAX, + }; chunk_t label = chunk_empty; uint32_t reqid = 0; uint8_t proto; diff --git a/src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c b/src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c index f9ac579ad..469b4b9cc 100644 --- a/src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c +++ b/src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c @@ -1324,7 +1324,9 @@ static void process_acquire(private_kernel_pfkey_ipsec_t *this, struct sadb_msg* msg) { pfkey_msg_t response; - kernel_acquire_data_t data = {}; + kernel_acquire_data_t data = { + .cpu = CPU_ID_MAX, + }; uint32_t index, reqid = 0; uint8_t mode = 0; policy_entry_t *policy; diff --git a/src/libcharon/plugins/kernel_wfp/kernel_wfp_ipsec.c b/src/libcharon/plugins/kernel_wfp/kernel_wfp_ipsec.c index a60dbe663..23ae82bbc 100644 --- a/src/libcharon/plugins/kernel_wfp/kernel_wfp_ipsec.c +++ b/src/libcharon/plugins/kernel_wfp/kernel_wfp_ipsec.c @@ -1637,7 +1637,9 @@ static u_int hash_trap(trap_t *trap) static void acquire(private_kernel_wfp_ipsec_t *this, UINT64 filter_id, traffic_selector_t *src, traffic_selector_t *dst) { - kernel_acquire_data_t data = {}; + kernel_acquire_data_t data = { + .cpu = CPU_ID_MAX, + }; uint32_t reqid = 0; trap_t *trap, key = { .filter_id = filter_id, From 65b7f9d56338ff16fdd716bbed1709b59c5b4a7e Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 26 Sep 2022 16:55:00 +0200 Subject: [PATCH 18/32] kernel-handler: Log CPU ID that's passed with an acquire --- src/libcharon/kernel/kernel_handler.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/libcharon/kernel/kernel_handler.c b/src/libcharon/kernel/kernel_handler.c index 8bbb44917..6aa6b3a1b 100644 --- a/src/libcharon/kernel/kernel_handler.c +++ b/src/libcharon/kernel/kernel_handler.c @@ -56,13 +56,17 @@ static inline protocol_id_t proto_ip2ike(uint8_t protocol) METHOD(kernel_listener_t, acquire, bool, private_kernel_handler_t *this, uint32_t reqid, kernel_acquire_data_t *data) { - char buf[BUF_LEN] = "", sbuf[BUF_LEN] = ""; + char lbuf[BUF_LEN] = "", cbuf[32] = "", sbuf[32] = ""; if (data->label) { - snprintf(buf, sizeof(buf), ", label {%s}", + snprintf(lbuf, sizeof(lbuf), ", label {%s}", data->label->get_string(data->label)); } + if (data->cpu != CPU_ID_MAX) + { + snprintf(cbuf, sizeof(cbuf), ", cpu {%u}", data->cpu); + } if (data->seq) { snprintf(sbuf, sizeof(sbuf), ", seq {%u}", data->seq); @@ -70,12 +74,12 @@ METHOD(kernel_listener_t, acquire, bool, if (data->src && data->dst) { DBG1(DBG_KNL, "creating acquire job for policy %R === %R with " - "reqid {%u}%s%s", data->src, data->dst, reqid, buf, sbuf); + "reqid {%u}%s%s%s", data->src, data->dst, reqid, lbuf, cbuf, sbuf); } else { - DBG1(DBG_KNL, "creating acquire job for policy with reqid {%u}%s%s", - reqid, buf, sbuf); + DBG1(DBG_KNL, "creating acquire job for policy with reqid {%u}%s%s%s", + reqid, lbuf, cbuf, sbuf); } lib->processor->queue_job(lib->processor, (job_t*)acquire_job_create(reqid, data)); From 4a595508b792838c9f4eff0ade5481b23fb22afd Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 20 May 2021 09:46:55 +0200 Subject: [PATCH 19/32] trap-manager: Add support to handle acquires for per-CPU SAs --- src/libcharon/sa/trap_manager.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/libcharon/sa/trap_manager.c b/src/libcharon/sa/trap_manager.c index c550695a4..17953010a 100644 --- a/src/libcharon/sa/trap_manager.c +++ b/src/libcharon/sa/trap_manager.c @@ -159,11 +159,12 @@ static void destroy_acquire(acquire_t *this) CALLBACK(acquire_by_reqid, bool, acquire_t *this, va_list args) { - uint32_t reqid; + uint32_t reqid, cpu; sec_label_t *label; - VA_ARGS_VGET(args, reqid, label); - return this->reqid == reqid && sec_labels_equal(this->data->label, label); + VA_ARGS_VGET(args, reqid, cpu, label); + return this->reqid == reqid && this->data->cpu == cpu && + sec_labels_equal(this->data->label, label); } CALLBACK(acquire_by_dst, bool, @@ -573,7 +574,8 @@ METHOD(trap_manager_t, acquire, void, else { this->acquires->find_first(this->acquires, acquire_by_reqid, - (void**)&acquire, reqid, data->label); + (void**)&acquire, reqid, data->cpu, + data->label); } if (!acquire) { @@ -643,7 +645,7 @@ METHOD(trap_manager_t, acquire, void, { child_init_args_t args = { .reqid = allocated_reqid, - .cpu = CPU_ID_MAX, + .cpu = data->cpu, .src = data->src, .dst = data->dst, .label = data->label, From a950ca3ec28fde09531f8120217bc1dcd245b325 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 20 May 2021 10:04:46 +0200 Subject: [PATCH 20/32] kernel-netlink: Forward CPU ID from acquires --- src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c index 2e47ecc5c..cf3d2e1ae 100644 --- a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c +++ b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c @@ -997,6 +997,10 @@ static void process_acquire(private_kernel_netlink_ipsec_t *this, struct xfrm_user_tmpl* tmpl = RTA_DATA(rta); reqid = tmpl->reqid; } + if (rta->rta_type == XFRMA_SA_PCPU) + { + data.cpu = *(uint32_t*)RTA_DATA(rta); + } #ifdef USE_SELINUX if (rta->rta_type == XFRMA_SEC_CTX) { From fbfae44dd161056e38e283784898c25a223e6d60 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 20 May 2021 10:12:30 +0200 Subject: [PATCH 21/32] vici: Make per-CPU CHILD_SAs configurable --- src/libcharon/plugins/vici/vici_config.c | 11 +++++++++++ src/swanctl/swanctl.opt | 3 +++ 2 files changed, 14 insertions(+) diff --git a/src/libcharon/plugins/vici/vici_config.c b/src/libcharon/plugins/vici/vici_config.c index 9050c6419..146c07db0 100644 --- a/src/libcharon/plugins/vici/vici_config.c +++ b/src/libcharon/plugins/vici/vici_config.c @@ -583,6 +583,7 @@ static void log_child_data(child_data_t *data, char *name) DBG2(DBG_CFG, " proposals = %#P", data->proposals); DBG2(DBG_CFG, " local_ts = %#R", data->local_ts); DBG2(DBG_CFG, " remote_ts = %#R", data->remote_ts); + DBG2(DBG_CFG, " per_cpu_sas = %u", has_opt(cfg, OPT_PER_CPU_SAS)); DBG2(DBG_CFG, " hw_offload = %N", hw_offload_names, cfg->hw_offload); DBG2(DBG_CFG, " sha256_96 = %u", has_opt(cfg, OPT_SHA256_96)); DBG2(DBG_CFG, " copy_df = %u", !has_opt(cfg, OPT_NO_COPY_DF)); @@ -1060,6 +1061,15 @@ CALLBACK(parse_opt_copy_ecn, bool, return parse_option(out, OPT_NO_COPY_ECN, v, FALSE); } +/** + * Parse OPT_PER_CPU_SAS option + */ +CALLBACK(parse_opt_cpus, bool, + child_cfg_option_t *out, chunk_t v) +{ + return parse_option(out, OPT_PER_CPU_SAS, v, TRUE); +} + /** * Parse a dscp_copy_t */ @@ -1934,6 +1944,7 @@ CALLBACK(child_kv, bool, { "if_id_out", parse_if_id, &child->cfg.if_id_out }, { "label", parse_label, &child->cfg.label }, { "label_mode", parse_label_mode, &child->cfg.label_mode }, + { "per_cpu_sas", parse_opt_cpus, &child->cfg.options }, }; return parse_rules(rules, countof(rules), name, value, diff --git a/src/swanctl/swanctl.opt b/src/swanctl/swanctl.opt index a3c1c8b80..4c60c0d0b 100644 --- a/src/swanctl/swanctl.opt +++ b/src/swanctl/swanctl.opt @@ -1125,6 +1125,9 @@ connections..children..replay_window = 32 default of 32 are supported using the Netlink backend only, a value of 0 disables IPsec replay protection. +connections..children..per_cpu_sas = no + Enable per-CPU CHILD_SAs. Requires _trap_ in **start_action**. + connections..children..hw_offload = no Enable hardware offload for this CHILD_SA, if supported by the IPsec implementation. From c176d32a73355603e36c3f420a44c84c196c0ad9 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 20 May 2021 10:19:41 +0200 Subject: [PATCH 22/32] vici: Report per-CPU SA information --- src/libcharon/plugins/vici/README.md | 2 ++ src/libcharon/plugins/vici/vici_query.c | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/libcharon/plugins/vici/README.md b/src/libcharon/plugins/vici/README.md index a43c60399..985fb4a24 100644 --- a/src/libcharon/plugins/vici/README.md +++ b/src/libcharon/plugins/vici/README.md @@ -819,6 +819,8 @@ command. mark-mask-out = if-id-in = if-id-out = + per-cpu-sas = + cpu = label = encr-alg = encr-keysize = diff --git a/src/libcharon/plugins/vici/vici_query.c b/src/libcharon/plugins/vici/vici_query.c index bb0212107..43e3f4413 100644 --- a/src/libcharon/plugins/vici/vici_query.c +++ b/src/libcharon/plugins/vici/vici_query.c @@ -200,7 +200,7 @@ static void list_child_ipsec(vici_builder_t *b, child_sa_t *child) { proposal_t *proposal; uint16_t alg, ks; - uint32_t if_id; + uint32_t if_id, cpu; b->add_kv(b, "protocol", "%N", protocol_id_names, child->get_protocol(child)); @@ -229,6 +229,15 @@ static void list_child_ipsec(vici_builder_t *b, child_sa_t *child) { b->add_kv(b, "if-id-out", "%.8x", if_id); } + if (child->use_per_cpu(child)) + { + b->add_kv(b, "per-cpu-sas", "yes"); + } + cpu = child->get_cpu(child); + if (cpu != CPU_ID_MAX) + { + b->add_kv(b, "cpu", "%u", cpu); + } proposal = child->get_proposal(child); if (proposal) From f95bdb6fb0f479e4c974d21ed5d54afcbe52609d Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 20 May 2021 10:32:09 +0200 Subject: [PATCH 23/32] swanctl: Report per-CPU information in --list-sas --- src/swanctl/commands/list_sas.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/swanctl/commands/list_sas.c b/src/swanctl/commands/list_sas.c index 321bd044d..a598f9598 100755 --- a/src/swanctl/commands/list_sas.c +++ b/src/swanctl/commands/list_sas.c @@ -129,9 +129,18 @@ CALLBACK(child_sas, int, ret = vici_parse_cb(res, NULL, sa_values, sa_list, child); if (ret == 0) { - printf(" %s: #%s, reqid %s, %s, %s%s, %s:", + printf(" %s: #%s, reqid %s", child->get(child, "name"), child->get(child, "uniqueid"), - child->get(child, "reqid"), child->get(child, "state"), + child->get(child, "reqid")); + + if (child->get(child, "per-cpu-sas")) + { + printf(", cpu %s", + child->get(child, "cpu") ?: "-"); + } + + printf(", %s, %s%s, %s:", + child->get(child, "state"), child->get(child, "mode"), child->get(child, "encap") ? "-in-UDP" : "", child->get(child, "protocol")); From 0edaadfc94f84372444bc64677e9cb206cd9a3f5 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 31 May 2021 17:09:28 +0200 Subject: [PATCH 24/32] testing: Enable SMP support for latest kernels --- testing/config/kernel/config-5.15 | 180 +++++++++++++++++++++--------- testing/config/kernel/config-5.16 | 94 ++++++++++++++-- testing/config/kernel/config-5.17 | 115 +++++++++++++++---- testing/config/kernel/config-5.18 | 112 ++++++++++++++++--- testing/config/kernel/config-5.19 | 96 ++++++++++++++-- testing/config/kernel/config-6.0 | 94 ++++++++++++++-- testing/config/kernel/config-6.1 | 96 ++++++++++++++-- testing/config/kernel/config-6.12 | 119 +++++++++++++++++--- testing/config/kernel/config-6.13 | 111 ++++++++++++++++-- testing/config/kernel/config-6.2 | 96 ++++++++++++++-- testing/config/kernel/config-6.3 | 102 ++++++++++++++--- testing/config/kernel/config-6.7 | 111 +++++++++++++++--- testing/config/kernel/config-6.8 | 108 ++++++++++++++++-- 13 files changed, 1221 insertions(+), 213 deletions(-) diff --git a/testing/config/kernel/config-5.15 b/testing/config/kernel/config-5.15 index 6e8cf349c..4cd88e6f7 100644 --- a/testing/config/kernel/config-5.15 +++ b/testing/config/kernel/config-5.15 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.15.12 Kernel Configuration +# Linux/x86 5.15.70 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0" CONFIG_CC_IS_GCC=y @@ -23,7 +23,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -62,6 +61,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -91,6 +93,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # end of Timers subsystem @@ -108,6 +111,7 @@ CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -121,25 +125,31 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # -CONFIG_TINY_RCU=y +CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y -CONFIG_TINY_SRCU=y +CONFIG_TREE_SRCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y # end of RCU Subsystem CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -160,6 +170,7 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -209,6 +220,7 @@ CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y @@ -261,6 +273,7 @@ CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -269,13 +282,13 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set -CONFIG_RETPOLINE=y # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -308,11 +321,14 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -342,6 +358,7 @@ CONFIG_MICROCODE_OLD_INTERFACE=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y @@ -378,6 +395,9 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set CONFIG_LEGACY_VSYSCALL_EMULATE=y # CONFIG_LEGACY_VSYSCALL_XONLY is not set # CONFIG_LEGACY_VSYSCALL_NONE is not set @@ -386,6 +406,14 @@ CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_HAVE_LIVEPATCH=y # end of Processor type and features +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y +CONFIG_CPU_UNRET_ENTRY=y +CONFIG_CPU_IBPB_ENTRY=y +CONFIG_CPU_IBRS_ENTRY=y CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y @@ -396,12 +424,14 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -424,13 +454,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -447,7 +479,32 @@ CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -490,6 +547,7 @@ CONFIG_AS_TPAUSE=y # General architecture-dependent options # CONFIG_CRASH_CORE=y +CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -503,6 +561,7 @@ CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y @@ -632,8 +691,13 @@ CONFIG_INLINE_READ_UNLOCK_IRQ=y CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -681,13 +745,13 @@ CONFIG_VIRT_TO_BUS=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 # CONFIG_TRANSPARENT_HUGEPAGE is not set CONFIG_ARCH_WANTS_THP_SWAP=y -CONFIG_NEED_PER_CPU_KM=y # CONFIG_CLEANCACHE is not set # CONFIG_FRONTSWAP is not set # CONFIG_CMA is not set # CONFIG_ZPOOL is not set # CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_PTE_DEVMAP=y @@ -1044,10 +1108,16 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1365,6 +1435,7 @@ CONFIG_NET_VENDOR_ATHEROS=y # CONFIG_ATL1E is not set # CONFIG_ATL1C is not set # CONFIG_ALX is not set +# CONFIG_CX_ECAT is not set CONFIG_NET_VENDOR_BROADCOM=y # CONFIG_B44 is not set # CONFIG_BCMGENET is not set @@ -1374,8 +1445,6 @@ CONFIG_NET_VENDOR_BROADCOM=y # CONFIG_BNX2X is not set # CONFIG_SYSTEMPORT is not set # CONFIG_BNXT is not set -CONFIG_NET_VENDOR_BROCADE=y -# CONFIG_BNA is not set CONFIG_NET_VENDOR_CADENCE=y # CONFIG_MACB is not set CONFIG_NET_VENDOR_CAVIUM=y @@ -1393,7 +1462,6 @@ CONFIG_NET_VENDOR_CHELSIO=y CONFIG_NET_VENDOR_CISCO=y # CONFIG_ENIC is not set CONFIG_NET_VENDOR_CORTINA=y -# CONFIG_CX_ECAT is not set # CONFIG_DNET is not set CONFIG_NET_VENDOR_DEC=y # CONFIG_NET_TULIP is not set @@ -1422,7 +1490,6 @@ CONFIG_NET_VENDOR_INTEL=y # CONFIG_ICE is not set # CONFIG_FM10K is not set # CONFIG_IGC is not set -CONFIG_NET_VENDOR_MICROSOFT=y # CONFIG_JME is not set CONFIG_NET_VENDOR_LITEX=y CONFIG_NET_VENDOR_MARVELL=y @@ -1440,9 +1507,12 @@ CONFIG_NET_VENDOR_MICREL=y CONFIG_NET_VENDOR_MICROCHIP=y # CONFIG_LAN743X is not set CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=y CONFIG_NET_VENDOR_MYRI=y # CONFIG_MYRI10GE is not set # CONFIG_FEALNX is not set +CONFIG_NET_VENDOR_NI=y +# CONFIG_NI_XGE_MANAGEMENT_ENET is not set CONFIG_NET_VENDOR_NATSEMI=y # CONFIG_NATSEMI is not set # CONFIG_NS83820 is not set @@ -1451,8 +1521,6 @@ CONFIG_NET_VENDOR_NETERION=y # CONFIG_VXGE is not set CONFIG_NET_VENDOR_NETRONOME=y # CONFIG_NFP is not set -CONFIG_NET_VENDOR_NI=y -# CONFIG_NI_XGE_MANAGEMENT_ENET is not set CONFIG_NET_VENDOR_8390=y # CONFIG_NE2K_PCI is not set CONFIG_NET_VENDOR_NVIDIA=y @@ -1469,6 +1537,8 @@ CONFIG_NET_VENDOR_QLOGIC=y # CONFIG_QLCNIC is not set # CONFIG_NETXEN_NIC is not set # CONFIG_QED is not set +CONFIG_NET_VENDOR_BROCADE=y +# CONFIG_BNA is not set CONFIG_NET_VENDOR_QUALCOMM=y # CONFIG_QCOM_EMAC is not set # CONFIG_RMNET is not set @@ -1483,14 +1553,14 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y # CONFIG_SXGBE_ETH is not set CONFIG_NET_VENDOR_SEEQ=y -CONFIG_NET_VENDOR_SOLARFLARE=y -# CONFIG_SFC is not set -# CONFIG_SFC_FALCON is not set CONFIG_NET_VENDOR_SILAN=y # CONFIG_SC92031 is not set CONFIG_NET_VENDOR_SIS=y # CONFIG_SIS900 is not set # CONFIG_SIS190 is not set +CONFIG_NET_VENDOR_SOLARFLARE=y +# CONFIG_SFC is not set +# CONFIG_SFC_FALCON is not set CONFIG_NET_VENDOR_SMSC=y # CONFIG_EPIC100 is not set # CONFIG_SMSC911X is not set @@ -1790,6 +1860,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2107,6 +2178,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_SAMSUNG_Q10 is not set @@ -2147,7 +2219,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_SUPPORT=y # @@ -2169,6 +2243,7 @@ CONFIG_IOMMU_SUPPORT=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2479,7 +2554,6 @@ CONFIG_KEYS=y # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set # CONFIG_FORTIFY_SOURCE is not set @@ -2529,6 +2603,7 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -2593,7 +2668,6 @@ CONFIG_CRYPTO_CRC32C=y # CONFIG_CRYPTO_CRC32_PCLMUL is not set # CONFIG_CRYPTO_XXHASH is not set CONFIG_CRYPTO_BLAKE2B=y -CONFIG_CRYPTO_BLAKE2S=y CONFIG_CRYPTO_BLAKE2S_X86=y # CONFIG_CRYPTO_CRCT10DIF is not set CONFIG_CRYPTO_GHASH=y @@ -2684,29 +2758,6 @@ CONFIG_CRYPTO_USER_API_AEAD=y CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_HASH_INFO=y - -# -# Crypto library routines -# -CONFIG_CRYPTO_LIB_AES=y -CONFIG_CRYPTO_LIB_ARC4=y -CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -CONFIG_CRYPTO_LIB_BLAKE2S=y -CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y -CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y -CONFIG_CRYPTO_LIB_CHACHA=y -CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=y -CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=y -CONFIG_CRYPTO_LIB_CURVE25519=y -CONFIG_CRYPTO_LIB_DES=y -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 -CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=y -CONFIG_CRYPTO_LIB_POLY1305_GENERIC=y -CONFIG_CRYPTO_LIB_POLY1305=y -CONFIG_CRYPTO_LIB_CHACHA20POLY1305=y -CONFIG_CRYPTO_LIB_SHA256=y -CONFIG_CRYPTO_LIB_SM4=y # CONFIG_CRYPTO_HW is not set CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y @@ -2741,6 +2792,31 @@ CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_ARCH_USE_SYM_ANNOTATIONS=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_ARC4=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y +CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y +CONFIG_CRYPTO_LIB_CHACHA=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=y +CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=y +CONFIG_CRYPTO_LIB_CURVE25519=y +CONFIG_CRYPTO_LIB_DES=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 +CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=y +CONFIG_CRYPTO_LIB_POLY1305_GENERIC=y +CONFIG_CRYPTO_LIB_POLY1305=y +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=y +CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_LIB_SM4=y +# end of Crypto library routines + +CONFIG_LIB_MEMNEQ=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y # CONFIG_CRC_T10DIF is not set @@ -2783,6 +2859,7 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -2792,6 +2869,7 @@ CONFIG_OID_REGISTRY=y CONFIG_HAVE_GENERIC_VDSO=y CONFIG_GENERIC_GETTIMEOFDAY=y CONFIG_GENERIC_VDSO_TIME_NS=y +CONFIG_SG_POOL=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y CONFIG_ARCH_HAS_COPY_MC=y @@ -2879,6 +2957,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -2960,11 +3039,13 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_RCU_SCALE_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_REF_SCALE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_FUNCTION_TRACER=y @@ -3007,7 +3088,6 @@ CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y # # x86 Debugging # -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set diff --git a/testing/config/kernel/config-5.16 b/testing/config/kernel/config-5.16 index ad34675f4..a57039f5d 100644 --- a/testing/config/kernel/config-5.16 +++ b/testing/config/kernel/config-5.16 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.16.0 Kernel Configuration +# Linux/x86 5.16.20 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0" CONFIG_CC_IS_GCC=y @@ -23,7 +23,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -62,6 +61,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -91,6 +93,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # end of Timers subsystem @@ -112,6 +115,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -125,6 +129,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -143,12 +149,14 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -170,6 +178,7 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -219,6 +228,7 @@ CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y @@ -271,6 +281,7 @@ CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -279,13 +290,14 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set CONFIG_RETPOLINE=y # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -318,11 +330,15 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -352,6 +368,7 @@ CONFIG_MICROCODE_OLD_INTERFACE=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y @@ -388,6 +405,9 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set CONFIG_LEGACY_VSYSCALL_EMULATE=y # CONFIG_LEGACY_VSYSCALL_XONLY is not set # CONFIG_LEGACY_VSYSCALL_NONE is not set @@ -407,12 +427,14 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -435,13 +457,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -458,7 +482,32 @@ CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -501,6 +550,7 @@ CONFIG_AS_TPAUSE=y # General architecture-dependent options # CONFIG_CRASH_CORE=y +CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -642,8 +692,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -690,13 +745,13 @@ CONFIG_VIRT_TO_BUS=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 # CONFIG_TRANSPARENT_HUGEPAGE is not set CONFIG_ARCH_WANTS_THP_SWAP=y -CONFIG_NEED_PER_CPU_KM=y # CONFIG_CLEANCACHE is not set # CONFIG_FRONTSWAP is not set # CONFIG_CMA is not set # CONFIG_ZPOOL is not set # CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_PTE_DEVMAP=y @@ -1055,10 +1110,16 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1800,6 +1861,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2123,6 +2185,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_SAMSUNG_Q10 is not set @@ -2155,7 +2218,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_SUPPORT=y # @@ -2177,6 +2242,7 @@ CONFIG_IOMMU_SUPPORT=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2545,6 +2611,7 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -2799,6 +2866,7 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -2895,6 +2963,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -2983,6 +3052,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=21 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_FUNCTION_TRACER=y diff --git a/testing/config/kernel/config-5.17 b/testing/config/kernel/config-5.17 index 201cc0952..4d92e68ae 100644 --- a/testing/config/kernel/config-5.17 +++ b/testing/config/kernel/config-5.17 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.17.3 Kernel Configuration +# Linux/x86 5.17.15 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0" CONFIG_CC_IS_GCC=y @@ -23,7 +23,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -62,6 +61,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -91,6 +93,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # end of Timers subsystem @@ -112,6 +115,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -125,6 +129,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -143,12 +149,14 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -170,6 +178,7 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -219,6 +228,7 @@ CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y @@ -268,6 +278,7 @@ CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -276,13 +287,14 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set CONFIG_RETPOLINE=y # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -315,11 +327,15 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -349,6 +365,7 @@ CONFIG_MICROCODE_OLD_INTERFACE=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y @@ -385,6 +402,9 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set CONFIG_LEGACY_VSYSCALL_EMULATE=y # CONFIG_LEGACY_VSYSCALL_XONLY is not set # CONFIG_LEGACY_VSYSCALL_NONE is not set @@ -404,12 +424,14 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -432,13 +454,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -450,13 +474,40 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -499,6 +550,7 @@ CONFIG_AS_TPAUSE=y # General architecture-dependent options # CONFIG_CRASH_CORE=y +CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -642,8 +694,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -690,7 +747,6 @@ CONFIG_VIRT_TO_BUS=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 # CONFIG_TRANSPARENT_HUGEPAGE is not set CONFIG_ARCH_WANTS_THP_SWAP=y -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y @@ -699,6 +755,7 @@ CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_ZPOOL is not set # CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_PTE_DEVMAP=y @@ -1058,10 +1115,16 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1223,6 +1286,7 @@ CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_SYSFB=y # CONFIG_SYSFB_SIMPLEFB is not set # CONFIG_GOOGLE_FIRMWARE is not set +# CONFIG_EFI_DISABLE_RUNTIME is not set # # Tegra firmware driver @@ -1379,6 +1443,7 @@ CONFIG_NET_VENDOR_ATHEROS=y # CONFIG_ATL1E is not set # CONFIG_ATL1C is not set # CONFIG_ALX is not set +# CONFIG_CX_ECAT is not set CONFIG_NET_VENDOR_BROADCOM=y # CONFIG_B44 is not set # CONFIG_BCMGENET is not set @@ -1388,8 +1453,6 @@ CONFIG_NET_VENDOR_BROADCOM=y # CONFIG_BNX2X is not set # CONFIG_SYSTEMPORT is not set # CONFIG_BNXT is not set -CONFIG_NET_VENDOR_BROCADE=y -# CONFIG_BNA is not set CONFIG_NET_VENDOR_CADENCE=y # CONFIG_MACB is not set CONFIG_NET_VENDOR_CAVIUM=y @@ -1407,7 +1470,6 @@ CONFIG_NET_VENDOR_CHELSIO=y CONFIG_NET_VENDOR_CISCO=y # CONFIG_ENIC is not set CONFIG_NET_VENDOR_CORTINA=y -# CONFIG_CX_ECAT is not set # CONFIG_DNET is not set CONFIG_NET_VENDOR_DEC=y # CONFIG_NET_TULIP is not set @@ -1438,7 +1500,6 @@ CONFIG_NET_VENDOR_INTEL=y # CONFIG_ICE is not set # CONFIG_FM10K is not set # CONFIG_IGC is not set -CONFIG_NET_VENDOR_MICROSOFT=y # CONFIG_JME is not set CONFIG_NET_VENDOR_LITEX=y CONFIG_NET_VENDOR_MARVELL=y @@ -1456,9 +1517,12 @@ CONFIG_NET_VENDOR_MICREL=y CONFIG_NET_VENDOR_MICROCHIP=y # CONFIG_LAN743X is not set CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=y CONFIG_NET_VENDOR_MYRI=y # CONFIG_MYRI10GE is not set # CONFIG_FEALNX is not set +CONFIG_NET_VENDOR_NI=y +# CONFIG_NI_XGE_MANAGEMENT_ENET is not set CONFIG_NET_VENDOR_NATSEMI=y # CONFIG_NATSEMI is not set # CONFIG_NS83820 is not set @@ -1467,8 +1531,6 @@ CONFIG_NET_VENDOR_NETERION=y # CONFIG_VXGE is not set CONFIG_NET_VENDOR_NETRONOME=y # CONFIG_NFP is not set -CONFIG_NET_VENDOR_NI=y -# CONFIG_NI_XGE_MANAGEMENT_ENET is not set CONFIG_NET_VENDOR_8390=y # CONFIG_NE2K_PCI is not set CONFIG_NET_VENDOR_NVIDIA=y @@ -1485,6 +1547,8 @@ CONFIG_NET_VENDOR_QLOGIC=y # CONFIG_QLCNIC is not set # CONFIG_NETXEN_NIC is not set # CONFIG_QED is not set +CONFIG_NET_VENDOR_BROCADE=y +# CONFIG_BNA is not set CONFIG_NET_VENDOR_QUALCOMM=y # CONFIG_QCOM_EMAC is not set # CONFIG_RMNET is not set @@ -1499,14 +1563,14 @@ CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y # CONFIG_SXGBE_ETH is not set CONFIG_NET_VENDOR_SEEQ=y -CONFIG_NET_VENDOR_SOLARFLARE=y -# CONFIG_SFC is not set -# CONFIG_SFC_FALCON is not set CONFIG_NET_VENDOR_SILAN=y # CONFIG_SC92031 is not set CONFIG_NET_VENDOR_SIS=y # CONFIG_SIS900 is not set # CONFIG_SIS190 is not set +CONFIG_NET_VENDOR_SOLARFLARE=y +# CONFIG_SFC is not set +# CONFIG_SFC_FALCON is not set CONFIG_NET_VENDOR_SMSC=y # CONFIG_EPIC100 is not set # CONFIG_SMSC911X is not set @@ -1806,6 +1870,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2128,6 +2193,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set # CONFIG_INTEL_VSEC is not set # CONFIG_SAMSUNG_LAPTOP is not set @@ -2162,7 +2228,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_SUPPORT=y # @@ -2184,6 +2252,7 @@ CONFIG_IOMMU_SUPPORT=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2553,6 +2622,7 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -2807,6 +2877,7 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -2911,6 +2982,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -2999,6 +3071,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=21 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_FUNCTION_TRACER=y diff --git a/testing/config/kernel/config-5.18 b/testing/config/kernel/config-5.18 index 99246a432..ce7297bb7 100644 --- a/testing/config/kernel/config-5.18 +++ b/testing/config/kernel/config-5.18 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.18.0 Kernel Configuration +# Linux/x86 5.18.19 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0" CONFIG_CC_IS_GCC=y @@ -24,7 +24,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -63,6 +62,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -92,6 +94,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -114,6 +117,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -127,6 +131,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -145,18 +151,21 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_HAS_INT128=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_GCC12_NO_ARRAY_BOUNDS=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y @@ -172,6 +181,7 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -221,6 +231,7 @@ CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y @@ -268,6 +279,7 @@ CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -276,13 +288,13 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set -CONFIG_RETPOLINE=y # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -315,11 +327,15 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -348,6 +364,7 @@ CONFIG_MICROCODE_OLD_INTERFACE=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_MEMORY_PROBE=y @@ -385,6 +402,9 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set CONFIG_LEGACY_VSYSCALL_EMULATE=y # CONFIG_LEGACY_VSYSCALL_XONLY is not set # CONFIG_LEGACY_VSYSCALL_NONE is not set @@ -394,6 +414,14 @@ CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_HAVE_LIVEPATCH=y # end of Processor type and features +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y +CONFIG_CPU_UNRET_ENTRY=y +CONFIG_CPU_IBPB_ENTRY=y +CONFIG_CPU_IBRS_ENTRY=y CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y @@ -404,12 +432,14 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -432,13 +462,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -450,13 +482,40 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -499,6 +558,7 @@ CONFIG_AS_TPAUSE=y # General architecture-dependent options # CONFIG_CRASH_CORE=y +CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -513,6 +573,7 @@ CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y @@ -646,8 +707,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -693,7 +759,6 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 # CONFIG_TRANSPARENT_HUGEPAGE is not set CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y @@ -702,6 +767,7 @@ CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_ZPOOL is not set # CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y @@ -1063,10 +1129,16 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1230,6 +1302,7 @@ CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_SYSFB=y # CONFIG_SYSFB_SIMPLEFB is not set # CONFIG_GOOGLE_FIRMWARE is not set +# CONFIG_EFI_DISABLE_RUNTIME is not set # # Tegra firmware driver @@ -1818,6 +1891,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2147,6 +2221,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_VSEC is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_SAMSUNG_Q10 is not set @@ -2180,7 +2255,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_SUPPORT=y # @@ -2202,6 +2279,7 @@ CONFIG_IOMMU_SUPPORT=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2520,7 +2598,6 @@ CONFIG_KEYS=y # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set # CONFIG_FORTIFY_SOURCE is not set @@ -2571,6 +2648,7 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -2636,7 +2714,6 @@ CONFIG_CRYPTO_CRC32C=y # CONFIG_CRYPTO_CRC32_PCLMUL is not set # CONFIG_CRYPTO_XXHASH is not set CONFIG_CRYPTO_BLAKE2B=y -CONFIG_CRYPTO_BLAKE2S=y CONFIG_CRYPTO_BLAKE2S_X86=y # CONFIG_CRYPTO_CRCT10DIF is not set CONFIG_CRYPTO_GHASH=y @@ -2786,6 +2863,7 @@ CONFIG_CRYPTO_LIB_SM3=y CONFIG_CRYPTO_LIB_SM4=y # end of Crypto library routines +CONFIG_LIB_MEMNEQ=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y # CONFIG_CRC_T10DIF is not set @@ -2829,6 +2907,7 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -2934,6 +3013,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -3022,6 +3102,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=21 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_RETHOOK=y @@ -3068,7 +3149,6 @@ CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y # # x86 Debugging # -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set diff --git a/testing/config/kernel/config-5.19 b/testing/config/kernel/config-5.19 index 3fb378d4b..129d8150a 100644 --- a/testing/config/kernel/config-5.19 +++ b/testing/config/kernel/config-5.19 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.19.7 Kernel Configuration +# Linux/x86 5.19.11 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0" CONFIG_CC_IS_GCC=y @@ -24,7 +24,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -62,6 +61,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -91,6 +93,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -113,6 +116,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -126,6 +130,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -142,12 +148,14 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -170,6 +178,7 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -220,6 +229,7 @@ CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y @@ -258,6 +268,7 @@ CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -266,12 +277,13 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -304,11 +316,15 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -338,6 +354,7 @@ CONFIG_MICROCODE_INTEL=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_MEMORY_PROBE=y @@ -374,6 +391,9 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set @@ -400,12 +420,14 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -428,13 +450,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -446,13 +470,40 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -495,6 +546,7 @@ CONFIG_AS_TPAUSE=y # General architecture-dependent options # CONFIG_CRASH_CORE=y +CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -649,8 +701,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -711,12 +768,12 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_CMA is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y @@ -1080,10 +1137,16 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1840,6 +1903,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2170,6 +2234,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_VSEC is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_SAMSUNG_Q10 is not set @@ -2204,7 +2269,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_SUPPORT=y # @@ -2226,6 +2293,7 @@ CONFIG_IOMMU_SUPPORT=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2597,6 +2665,7 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -2856,6 +2925,7 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -2962,6 +3032,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -3050,6 +3121,7 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_RETHOOK=y diff --git a/testing/config/kernel/config-6.0 b/testing/config/kernel/config-6.0 index 5edb36544..d24deaabd 100644 --- a/testing/config/kernel/config-6.0 +++ b/testing/config/kernel/config-6.0 @@ -24,7 +24,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -62,6 +61,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -93,6 +95,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -115,6 +118,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -128,6 +132,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -144,12 +150,14 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -173,6 +181,7 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -223,6 +232,7 @@ CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y @@ -261,6 +271,7 @@ CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -269,12 +280,13 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -307,11 +319,15 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -341,6 +357,7 @@ CONFIG_MICROCODE_INTEL=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_MEMORY_PROBE=y @@ -375,6 +392,9 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set @@ -403,6 +423,7 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set @@ -410,6 +431,7 @@ CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -432,13 +454,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -450,13 +474,40 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -499,6 +550,7 @@ CONFIG_AS_TPAUSE=y # General architecture-dependent options # CONFIG_CRASH_CORE=y +CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -653,8 +705,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -714,12 +771,12 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_CMA is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y @@ -1082,10 +1139,16 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1843,6 +1906,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2179,6 +2243,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_VSEC is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_SAMSUNG_Q10 is not set @@ -2208,7 +2273,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_SUPPORT=y # @@ -2230,6 +2297,7 @@ CONFIG_IOMMU_SUPPORT=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2607,6 +2675,7 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -2870,6 +2939,7 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -2979,6 +3049,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -3067,6 +3138,7 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_RETHOOK=y diff --git a/testing/config/kernel/config-6.1 b/testing/config/kernel/config-6.1 index be4cbbff2..6e56476f5 100644 --- a/testing/config/kernel/config-6.1 +++ b/testing/config/kernel/config-6.1 @@ -25,7 +25,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -63,6 +62,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -95,6 +97,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -117,6 +120,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -130,6 +134,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -146,12 +152,14 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -174,6 +182,7 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -224,6 +233,7 @@ CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y @@ -262,6 +272,7 @@ CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -270,12 +281,13 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -308,11 +320,15 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -342,6 +358,7 @@ CONFIG_MICROCODE_INTEL=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_MEMORY_PROBE=y @@ -376,6 +393,9 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set @@ -404,6 +424,7 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set @@ -411,6 +432,7 @@ CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -432,13 +454,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -450,13 +474,41 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_AMD_PSTATE_UT is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -499,6 +551,7 @@ CONFIG_AS_TPAUSE=y # General architecture-dependent options # CONFIG_CRASH_CORE=y +CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -656,8 +709,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -717,12 +775,12 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_CMA is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y @@ -1086,10 +1144,16 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1848,6 +1912,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2187,6 +2252,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_VSEC is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_SAMSUNG_Q10 is not set @@ -2216,7 +2282,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -2244,6 +2312,7 @@ CONFIG_IOMMU_DMA=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2621,6 +2690,7 @@ CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -2906,6 +2976,8 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +# CONFIG_FORCE_NR_CPUS is not set +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -3015,6 +3087,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -3105,6 +3178,7 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_RETHOOK=y diff --git a/testing/config/kernel/config-6.12 b/testing/config/kernel/config-6.12 index e47502739..4b8a7427b 100644 --- a/testing/config/kernel/config-6.12 +++ b/testing/config/kernel/config-6.12 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.12.1 Kernel Configuration +# Linux/x86 6.12.17 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0" CONFIG_CC_IS_GCC=y @@ -27,7 +27,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -65,6 +64,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -78,7 +80,6 @@ CONFIG_SPARSE_IRQ=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_INIT=y -CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y @@ -97,6 +98,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -120,6 +122,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -133,6 +136,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -148,11 +153,13 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -177,9 +184,11 @@ CONFIG_GROUP_SCHED_WEIGHT=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set +CONFIG_SCHED_MM_CID=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -232,6 +241,7 @@ CONFIG_CACHESTAT_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_SELFTEST is not set # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_HAVE_PERF_EVENTS=y @@ -274,6 +284,7 @@ CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -282,11 +293,12 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_MPPARSE=y # CONFIG_X86_CPU_RESCTRL is not set # CONFIG_X86_FRED is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -320,12 +332,17 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y +CONFIG_ACPI_MADT_WAKEUP=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set # CONFIG_X86_MCE is not set @@ -346,10 +363,12 @@ CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_X86_IOPL_IOPERM=y CONFIG_MICROCODE=y +# CONFIG_MICROCODE_LATE_LOADING is not set # CONFIG_X86_MSR is not set # CONFIG_X86_CPUID is not set # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_MEMORY_PROBE=y @@ -392,6 +411,7 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set @@ -401,6 +421,7 @@ CONFIG_HAVE_LIVEPATCH=y # end of Processor type and features CONFIG_CC_HAS_NAMED_AS=y +CONFIG_CC_HAS_NAMED_AS_FIXED_SANITIZERS=y CONFIG_USE_X86_SEG_SUPPORT=y CONFIG_CC_HAS_SLS=y CONFIG_CC_HAS_RETURN_THUNK=y @@ -443,6 +464,7 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set @@ -450,6 +472,7 @@ CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -472,13 +495,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -490,6 +515,7 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_ACPI_FFH is not set # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y @@ -497,7 +523,35 @@ CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +CONFIG_X86_AMD_PSTATE=y +CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 +# CONFIG_X86_AMD_PSTATE_UT is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -544,6 +598,12 @@ CONFIG_ARCH_HAS_DMA_OPS=y # # General architecture-dependent options # +CONFIG_HOTPLUG_SMT=y +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y +CONFIG_HOTPLUG_CORE_SYNC_FULL=y +CONFIG_HOTPLUG_SPLIT_STARTUP=y +CONFIG_HOTPLUG_PARALLEL=y CONFIG_GENERIC_ENTRY=y # CONFIG_KPROBES is not set # CONFIG_JUMP_LABEL is not set @@ -716,8 +776,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -749,6 +814,7 @@ CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_HARDENED is not set # CONFIG_SLAB_BUCKETS is not set # CONFIG_SLUB_STATS is not set +CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_RANDOM_KMALLOC_CACHES is not set # end of Slab allocator options @@ -770,7 +836,9 @@ CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTREMOVE=y CONFIG_MHP_MEMMAP_ON_MEMORY=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y +CONFIG_SPLIT_PTE_PTLOCKS=y CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_SPLIT_PMD_PTLOCKS=y CONFIG_MEMORY_BALLOON=y # CONFIG_COMPACTION is not set CONFIG_PAGE_REPORTING=y @@ -782,12 +850,12 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_CMA is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y @@ -812,6 +880,7 @@ CONFIG_SECRETMEM=y # CONFIG_USERFAULTFD is not set # CONFIG_LRU_GEN is not set CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y +CONFIG_PER_VMA_LOCK=y CONFIG_LOCK_MM_AND_FIND_VMA=y # @@ -1157,11 +1226,17 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y CONFIG_MAX_SKB_FRAGS=17 +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1367,7 +1442,6 @@ CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set # CONFIG_ZRAM is not set -CONFIG_ZRAM_DEF_COMP="unset-value" CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_DRBD is not set @@ -1940,6 +2014,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2241,7 +2316,6 @@ CONFIG_VHOST_MENU=y # CONFIG_STAGING is not set # CONFIG_GOLDFISH is not set # CONFIG_CHROME_PLATFORMS is not set -# CONFIG_CZNIC_PLATFORMS is not set # CONFIG_MELLANOX_PLATFORM is not set CONFIG_SURFACE_PLATFORMS=y # CONFIG_SURFACE_GPE is not set @@ -2265,6 +2339,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_IBM_RTL is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_ATOMISP2_PM is not set +# CONFIG_INTEL_IFS is not set # CONFIG_INTEL_SAR_INT1092 is not set # @@ -2282,6 +2357,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_VSEC is not set # CONFIG_ACPI_QUICKSTART is not set # CONFIG_MSI_EC is not set @@ -2312,7 +2388,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -2341,6 +2419,7 @@ CONFIG_IOMMU_DMA=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2430,7 +2509,6 @@ CONFIG_IOMMU_DMA=y # # IRQ chip support # -# CONFIG_LAN966X_OIC is not set # end of IRQ chip support # CONFIG_IPACK_BUS is not set @@ -2763,6 +2841,7 @@ CONFIG_CRYPTO_USER=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -3054,7 +3133,7 @@ CONFIG_DMA_NEED_SYNC=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y -CONFIG_FORCE_NR_CPUS=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -3166,6 +3245,7 @@ CONFIG_ARCH_HAS_DEBUG_WX=y CONFIG_GENERIC_PTDUMP=y CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_PER_VMA_LOCK_STATS is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_SCHED_STACK_END_CHECK is not set @@ -3175,6 +3255,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set # CONFIG_MEM_ALLOC_PROFILING is not set @@ -3197,6 +3278,7 @@ CONFIG_HAVE_ARCH_KMSAN=y CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 # CONFIG_SOFTLOCKUP_DETECTOR is not set +CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y # CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y CONFIG_DETECT_HUNG_TASK=y @@ -3212,7 +3294,6 @@ CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_SCHEDSTATS is not set # end of Scheduler Debugging -# CONFIG_DEBUG_TIMEKEEPING is not set CONFIG_DEBUG_PREEMPT=y # @@ -3232,6 +3313,7 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set # CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set # end of Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_NMI_CHECK_CPU is not set @@ -3264,6 +3346,7 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_RETHOOK=y diff --git a/testing/config/kernel/config-6.13 b/testing/config/kernel/config-6.13 index 612707c30..8bff0d0cb 100644 --- a/testing/config/kernel/config-6.13 +++ b/testing/config/kernel/config-6.13 @@ -28,7 +28,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -66,6 +65,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -97,6 +99,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -122,6 +125,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -135,6 +139,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -150,11 +156,13 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -179,9 +187,11 @@ CONFIG_GROUP_SCHED_WEIGHT=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set +CONFIG_SCHED_MM_CID=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -234,6 +244,7 @@ CONFIG_CACHESTAT_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_SELFTEST is not set # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_HAVE_PERF_EVENTS=y @@ -276,6 +287,7 @@ CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -284,11 +296,12 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_MPPARSE=y # CONFIG_X86_CPU_RESCTRL is not set # CONFIG_X86_FRED is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -322,12 +335,17 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y +CONFIG_ACPI_MADT_WAKEUP=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set # CONFIG_X86_MCE is not set @@ -348,10 +366,12 @@ CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_X86_IOPL_IOPERM=y CONFIG_MICROCODE=y +# CONFIG_MICROCODE_LATE_LOADING is not set # CONFIG_X86_MSR is not set # CONFIG_X86_CPUID is not set # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_MEMORY_PROBE=y @@ -394,6 +414,7 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set @@ -447,6 +468,7 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set @@ -454,6 +476,7 @@ CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -477,13 +500,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -495,6 +520,7 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_ACPI_FFH is not set # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y @@ -502,7 +528,35 @@ CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +CONFIG_X86_AMD_PSTATE=y +CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 +# CONFIG_X86_AMD_PSTATE_UT is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -549,6 +603,12 @@ CONFIG_ARCH_HAS_DMA_OPS=y # # General architecture-dependent options # +CONFIG_HOTPLUG_SMT=y +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y +CONFIG_HOTPLUG_CORE_SYNC_FULL=y +CONFIG_HOTPLUG_SPLIT_STARTUP=y +CONFIG_HOTPLUG_PARALLEL=y CONFIG_GENERIC_ENTRY=y # CONFIG_KPROBES is not set # CONFIG_JUMP_LABEL is not set @@ -723,8 +783,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -756,6 +821,7 @@ CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_HARDENED is not set # CONFIG_SLAB_BUCKETS is not set # CONFIG_SLUB_STATS is not set +CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_RANDOM_KMALLOC_CACHES is not set # end of Slab allocator options @@ -777,7 +843,9 @@ CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTREMOVE=y CONFIG_MHP_MEMMAP_ON_MEMORY=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y +CONFIG_SPLIT_PTE_PTLOCKS=y CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_SPLIT_PMD_PTLOCKS=y CONFIG_MEMORY_BALLOON=y # CONFIG_COMPACTION is not set CONFIG_PAGE_REPORTING=y @@ -789,12 +857,12 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_CMA is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y @@ -819,6 +887,7 @@ CONFIG_SECRETMEM=y # CONFIG_USERFAULTFD is not set # CONFIG_LRU_GEN is not set CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y +CONFIG_PER_VMA_LOCK=y CONFIG_LOCK_MM_AND_FIND_VMA=y # @@ -1164,11 +1233,17 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y CONFIG_MAX_SKB_FRAGS=17 +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1943,6 +2018,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2276,6 +2352,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_IBM_RTL is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_ATOMISP2_PM is not set +# CONFIG_INTEL_IFS is not set # CONFIG_INTEL_SAR_INT1092 is not set # @@ -2293,6 +2370,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_VSEC is not set # CONFIG_ACPI_QUICKSTART is not set # CONFIG_MSI_EC is not set @@ -2323,7 +2401,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -2352,6 +2432,7 @@ CONFIG_IOMMU_DMA=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2766,6 +2847,7 @@ CONFIG_CRYPTO_USER=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -3057,7 +3139,7 @@ CONFIG_DMA_NEED_SYNC=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y -CONFIG_FORCE_NR_CPUS=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -3170,6 +3252,7 @@ CONFIG_ARCH_HAS_DEBUG_WX=y CONFIG_GENERIC_PTDUMP=y CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_PER_VMA_LOCK_STATS is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_SCHED_STACK_END_CHECK is not set @@ -3179,6 +3262,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set # CONFIG_MEM_ALLOC_PROFILING is not set @@ -3201,6 +3285,7 @@ CONFIG_HAVE_ARCH_KMSAN=y CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 # CONFIG_SOFTLOCKUP_DETECTOR is not set +CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y # CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y CONFIG_DETECT_HUNG_TASK=y @@ -3235,6 +3320,7 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set # CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set # end of Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_NMI_CHECK_CPU is not set @@ -3267,6 +3353,7 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_RETHOOK=y diff --git a/testing/config/kernel/config-6.2 b/testing/config/kernel/config-6.2 index 420699be1..171223a87 100644 --- a/testing/config/kernel/config-6.2 +++ b/testing/config/kernel/config-6.2 @@ -25,7 +25,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -63,6 +62,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -94,6 +96,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -116,6 +119,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -129,6 +133,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -145,12 +151,14 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -175,6 +183,7 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -227,6 +236,7 @@ CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_SELFTEST is not set # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y @@ -264,6 +274,7 @@ CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -272,12 +283,13 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -310,11 +322,15 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -344,6 +360,7 @@ CONFIG_MICROCODE_INTEL=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_MEMORY_PROBE=y @@ -378,6 +395,9 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set @@ -415,6 +435,7 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set @@ -422,6 +443,7 @@ CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -443,13 +465,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -461,6 +485,7 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_ACPI_FFH is not set # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y @@ -468,7 +493,34 @@ CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_AMD_PSTATE_UT is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -511,6 +563,7 @@ CONFIG_AS_TPAUSE=y # General architecture-dependent options # CONFIG_CRASH_CORE=y +CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -672,8 +725,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -733,12 +791,12 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_CMA is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y @@ -1102,10 +1160,16 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1863,6 +1927,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2188,6 +2253,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_IBM_RTL is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_ATOMISP2_PM is not set +# CONFIG_INTEL_IFS is not set # CONFIG_INTEL_SAR_INT1092 is not set # CONFIG_INTEL_PMC_CORE is not set @@ -2206,6 +2272,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_VSEC is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_SAMSUNG_Q10 is not set @@ -2235,7 +2302,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -2264,6 +2333,7 @@ CONFIG_IOMMU_DMA=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2640,6 +2710,7 @@ CONFIG_CRYPTO_USER=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -2926,6 +2997,7 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -3037,6 +3109,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -3127,6 +3200,7 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_RETHOOK=y diff --git a/testing/config/kernel/config-6.3 b/testing/config/kernel/config-6.3 index 59c5422fa..4e2eecb81 100644 --- a/testing/config/kernel/config-6.3 +++ b/testing/config/kernel/config-6.3 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.3.6 Kernel Configuration +# Linux/x86 6.3.13 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0" CONFIG_CC_IS_GCC=y @@ -25,7 +25,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -63,6 +62,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -94,6 +96,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -116,6 +119,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -129,6 +133,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -145,12 +151,14 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -171,9 +179,11 @@ CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set +CONFIG_SCHED_MM_CID=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -226,6 +236,7 @@ CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_SELFTEST is not set # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y @@ -263,6 +274,7 @@ CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -271,12 +283,13 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -309,11 +322,15 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -343,6 +360,7 @@ CONFIG_MICROCODE_INTEL=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_MEMORY_PROBE=y @@ -377,6 +395,9 @@ CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set @@ -414,6 +435,7 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set @@ -421,6 +443,7 @@ CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -442,13 +465,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -460,6 +485,7 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_ACPI_FFH is not set # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y @@ -467,7 +493,34 @@ CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_AMD_PSTATE_UT is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -511,6 +564,7 @@ CONFIG_AS_GFNI=y # General architecture-dependent options # CONFIG_CRASH_CORE=y +CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -672,8 +726,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -733,12 +792,12 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_CMA is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y @@ -759,6 +818,7 @@ CONFIG_SECRETMEM=y # CONFIG_ANON_VMA_NAME is not set # CONFIG_USERFAULTFD is not set # CONFIG_LRU_GEN is not set +CONFIG_LOCK_MM_AND_FIND_VMA=y # # Data Access Monitoring @@ -1029,7 +1089,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=y CONFIG_IP_NF_TARGET_NETMAP=y CONFIG_IP_NF_TARGET_REDIRECT=y CONFIG_IP_NF_MANGLE=y -CONFIG_IP_NF_TARGET_CLUSTERIP=y CONFIG_IP_NF_TARGET_ECN=y CONFIG_IP_NF_TARGET_TTL=y CONFIG_IP_NF_RAW=y @@ -1102,10 +1161,16 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1862,6 +1927,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2189,6 +2255,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_IBM_RTL is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_ATOMISP2_PM is not set +# CONFIG_INTEL_IFS is not set # CONFIG_INTEL_SAR_INT1092 is not set # CONFIG_INTEL_PMC_CORE is not set @@ -2207,6 +2274,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_VSEC is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_SAMSUNG_Q10 is not set @@ -2236,7 +2304,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -2265,6 +2335,7 @@ CONFIG_IOMMU_DMA=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2644,6 +2715,7 @@ CONFIG_CRYPTO_USER=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -2932,6 +3004,7 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -3026,7 +3099,6 @@ CONFIG_HAVE_KCSAN_COMPILER=y # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_TABLE_CHECK is not set # CONFIG_PAGE_POISONING is not set CONFIG_DEBUG_RODATA_TEST=y CONFIG_ARCH_HAS_DEBUG_WX=y @@ -3043,6 +3115,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -3134,6 +3207,7 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_RETHOOK=y diff --git a/testing/config/kernel/config-6.7 b/testing/config/kernel/config-6.7 index 915231792..1df11e407 100644 --- a/testing/config/kernel/config-6.7 +++ b/testing/config/kernel/config-6.7 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.7.5 Kernel Configuration +# Linux/x86 6.7.12 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0" CONFIG_CC_IS_GCC=y @@ -15,6 +15,7 @@ CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y +CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y CONFIG_TOOLS_SUPPORT_RELR=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y @@ -26,7 +27,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -64,6 +64,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -95,6 +98,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -117,6 +121,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -130,6 +135,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -145,18 +152,20 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_HAS_INT128=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_GCC11_NO_ARRAY_BOUNDS=y +CONFIG_GCC10_NO_ARRAY_BOUNDS=y CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_CGROUPS=y @@ -170,9 +179,11 @@ CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set +CONFIG_SCHED_MM_CID=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -224,6 +235,7 @@ CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_SELFTEST is not set # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y @@ -270,6 +282,7 @@ CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -278,11 +291,12 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -315,11 +329,15 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -341,10 +359,12 @@ CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_X86_IOPL_IOPERM=y CONFIG_MICROCODE=y +# CONFIG_MICROCODE_LATE_LOADING is not set # CONFIG_X86_MSR is not set # CONFIG_X86_CPUID is not set # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_MEMORY_PROBE=y @@ -388,6 +408,7 @@ CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 # CONFIG_ADDRESS_MASKING is not set +CONFIG_HOTPLUG_CPU=y CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set @@ -417,6 +438,7 @@ CONFIG_CPU_IBRS_ENTRY=y CONFIG_CPU_SRSO=y # CONFIG_SLS is not set # CONFIG_GDS_FORCE_MITIGATION is not set +CONFIG_MITIGATION_RFDS=y CONFIG_ARCH_HAS_ADD_PAGES=y # @@ -426,6 +448,7 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set @@ -433,6 +456,7 @@ CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -454,13 +478,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -472,6 +498,7 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_ACPI_FFH is not set # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y @@ -479,7 +506,34 @@ CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_AMD_PSTATE_UT is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -523,6 +577,12 @@ CONFIG_AS_WRUSS=y # # General architecture-dependent options # +CONFIG_HOTPLUG_SMT=y +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y +CONFIG_HOTPLUG_CORE_SYNC_FULL=y +CONFIG_HOTPLUG_SPLIT_STARTUP=y +CONFIG_HOTPLUG_PARALLEL=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -687,8 +747,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -720,6 +785,7 @@ CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SLAB_FREELIST_HARDENED is not set # CONFIG_SLUB_STATS is not set +CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_RANDOM_KMALLOC_CACHES is not set # end of SLAB allocator options @@ -754,12 +820,12 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_CMA is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y @@ -783,6 +849,7 @@ CONFIG_SECRETMEM=y # CONFIG_USERFAULTFD is not set # CONFIG_LRU_GEN is not set CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y +CONFIG_PER_VMA_LOCK=y CONFIG_LOCK_MM_AND_FIND_VMA=y # @@ -1128,11 +1195,17 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y CONFIG_MAX_SKB_FRAGS=17 +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1901,6 +1974,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2222,6 +2296,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_IBM_RTL is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_ATOMISP2_PM is not set +# CONFIG_INTEL_IFS is not set # CONFIG_INTEL_SAR_INT1092 is not set # CONFIG_INTEL_PMC_CORE is not set @@ -2240,6 +2315,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_VSEC is not set # CONFIG_MSI_EC is not set # CONFIG_SAMSUNG_LAPTOP is not set @@ -2269,7 +2345,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -2298,6 +2376,7 @@ CONFIG_IOMMU_DMA=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2708,6 +2787,7 @@ CONFIG_CRYPTO_USER=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -3003,6 +3083,7 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -3109,6 +3190,7 @@ CONFIG_ARCH_HAS_DEBUG_WX=y CONFIG_GENERIC_PTDUMP=y CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_PER_VMA_LOCK_STATS is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_SCHED_STACK_END_CHECK is not set @@ -3118,6 +3200,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -3139,6 +3222,7 @@ CONFIG_HAVE_ARCH_KMSAN=y CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 # CONFIG_SOFTLOCKUP_DETECTOR is not set +CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y # CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y CONFIG_DETECT_HUNG_TASK=y @@ -3207,6 +3291,7 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_RETHOOK=y diff --git a/testing/config/kernel/config-6.8 b/testing/config/kernel/config-6.8 index b3c8a3135..f7be2bcda 100644 --- a/testing/config/kernel/config-6.8 +++ b/testing/config/kernel/config-6.8 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.8.0 Kernel Configuration +# Linux/x86 6.8.4 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0" CONFIG_CC_IS_GCC=y @@ -27,7 +27,6 @@ CONFIG_THREAD_INFO_IN_TASK=y # # General setup # -CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set # CONFIG_WERROR is not set @@ -65,6 +64,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -96,6 +98,7 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -118,6 +121,7 @@ CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPTION=y CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -131,6 +135,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_PSI is not set # end of CPU/Task time and stats accounting +CONFIG_CPU_ISOLATION=y + # # RCU Subsystem # @@ -146,11 +152,13 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set CONFIG_LOG_BUF_SHIFT=14 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # +# CONFIG_UCLAMP_TASK is not set # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y @@ -173,9 +181,11 @@ CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set +CONFIG_SCHED_MM_CID=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y +# CONFIG_CPUSETS is not set CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y @@ -229,6 +239,7 @@ CONFIG_CACHESTAT_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_SELFTEST is not set # CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_HAVE_PERF_EVENTS=y @@ -273,6 +284,7 @@ CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 @@ -281,11 +293,12 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -# CONFIG_SMP is not set +CONFIG_SMP=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set # CONFIG_X86_CPU_RESCTRL is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_INTEL_LPSS is not set @@ -319,11 +332,15 @@ CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS=1 -CONFIG_UP_LATE_INIT=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=64 +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set @@ -345,10 +362,12 @@ CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_X86_IOPL_IOPERM=y CONFIG_MICROCODE=y +# CONFIG_MICROCODE_LATE_LOADING is not set # CONFIG_X86_MSR is not set # CONFIG_X86_CPUID is not set # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y +# CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_MEMORY_PROBE=y @@ -392,6 +411,7 @@ CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 # CONFIG_ADDRESS_MASKING is not set +CONFIG_HOTPLUG_CPU=y CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set @@ -421,6 +441,7 @@ CONFIG_CPU_IBRS_ENTRY=y CONFIG_CPU_SRSO=y # CONFIG_SLS is not set # CONFIG_GDS_FORCE_MITIGATION is not set +CONFIG_MITIGATION_RFDS=y CONFIG_ARCH_HAS_ADD_PAGES=y # @@ -430,6 +451,7 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set @@ -437,6 +459,7 @@ CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y @@ -459,13 +482,15 @@ CONFIG_ACPI_FAN=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_CONTAINER is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set @@ -477,6 +502,7 @@ CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set # CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_ACPI_FFH is not set # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y @@ -484,7 +510,34 @@ CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_AMD_PSTATE_UT is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# # end of CPU Frequency scaling # @@ -528,6 +581,12 @@ CONFIG_AS_WRUSS=y # # General architecture-dependent options # +CONFIG_HOTPLUG_SMT=y +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y +CONFIG_HOTPLUG_CORE_SYNC_FULL=y +CONFIG_HOTPLUG_SPLIT_STARTUP=y +CONFIG_HOTPLUG_PARALLEL=y CONFIG_GENERIC_ENTRY=y # CONFIG_JUMP_LABEL is not set # CONFIG_STATIC_CALL_SELFTEST is not set @@ -694,8 +753,13 @@ CONFIG_MQ_IOSCHED_KYBER=y CONFIG_ASN1=y CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y @@ -726,6 +790,7 @@ CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SLAB_FREELIST_HARDENED is not set # CONFIG_SLUB_STATS is not set +CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_RANDOM_KMALLOC_CACHES is not set # end of Slab allocator options @@ -760,12 +825,12 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_CMA is not set CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y @@ -789,6 +854,7 @@ CONFIG_SECRETMEM=y # CONFIG_USERFAULTFD is not set # CONFIG_LRU_GEN is not set CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y +CONFIG_PER_VMA_LOCK=y CONFIG_LOCK_MM_AND_FIND_VMA=y # @@ -1133,11 +1199,17 @@ CONFIG_DNS_RESOLVER=y # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y CONFIG_MAX_SKB_FRAGS=17 +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y +CONFIG_NET_FLOW_LIMIT=y # # Network testing @@ -1902,6 +1974,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set # # ACPI drivers @@ -2224,6 +2297,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_IBM_RTL is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_ATOMISP2_PM is not set +# CONFIG_INTEL_IFS is not set # CONFIG_INTEL_SAR_INT1092 is not set # @@ -2241,6 +2315,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_INTEL_VSEC is not set # CONFIG_MSI_EC is not set # CONFIG_SAMSUNG_LAPTOP is not set @@ -2270,7 +2345,9 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_IOVA=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -2299,6 +2376,7 @@ CONFIG_IOMMU_DMA=y # # Rpmsg drivers # +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # end of Rpmsg drivers @@ -2710,6 +2788,7 @@ CONFIG_CRYPTO_USER=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_SIMD=y @@ -3003,6 +3082,7 @@ CONFIG_SWIOTLB=y # CONFIG_DMA_API_DEBUG is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y +CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_CLZ_TAB=y @@ -3111,6 +3191,7 @@ CONFIG_ARCH_HAS_DEBUG_WX=y CONFIG_GENERIC_PTDUMP=y CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_PER_VMA_LOCK_STATS is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_SCHED_STACK_END_CHECK is not set @@ -3120,6 +3201,7 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y # CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y @@ -3141,6 +3223,7 @@ CONFIG_HAVE_ARCH_KMSAN=y CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 # CONFIG_SOFTLOCKUP_DETECTOR is not set +CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y # CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y CONFIG_DETECT_HUNG_TASK=y @@ -3209,6 +3292,7 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_RETHOOK=y From e24edb2991c3a690973798223fe40981610f624e Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 31 May 2021 16:46:41 +0200 Subject: [PATCH 25/32] testing: Configure multiple virtual CPUs for moon and sun This allows testing per-CPU SAs by e.g. pinging over a specific CPU via taskset. --- testing/config/kvm/moon.xml | 2 +- testing/config/kvm/sun.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/testing/config/kvm/moon.xml b/testing/config/kvm/moon.xml index 1623ac83b..df77348d0 100644 --- a/testing/config/kvm/moon.xml +++ b/testing/config/kvm/moon.xml @@ -3,7 +3,7 @@ b5e00ad3-1c81-3b2a-7f66-cdf8727b3c65 128 128 - 1 + 4 hvm /var/run/kvm-swan-kernel diff --git a/testing/config/kvm/sun.xml b/testing/config/kvm/sun.xml index 5f32d1bc0..68c160a80 100644 --- a/testing/config/kvm/sun.xml +++ b/testing/config/kvm/sun.xml @@ -3,7 +3,7 @@ 35341843-346c-a63a-786b-9df0fd5e6264 144 144 - 1 + 2 hvm /var/run/kvm-swan-kernel From bf34484d24e3c007d158c582f88d1817f126fd5d Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 2 Jun 2021 17:07:01 +0200 Subject: [PATCH 26/32] testing: Add per-CPU SA test scenario --- .../tests/ikev2/per-cpu-sas/description.txt | 10 +++ testing/tests/ikev2/per-cpu-sas/evaltest.dat | 80 +++++++++++++++++++ .../hosts/moon/etc/strongswan.conf | 15 ++++ .../hosts/moon/etc/swanctl/swanctl.conf | 33 ++++++++ .../per-cpu-sas/hosts/sun/etc/strongswan.conf | 15 ++++ .../hosts/sun/etc/swanctl/swanctl.conf | 33 ++++++++ testing/tests/ikev2/per-cpu-sas/posttest.dat | 5 ++ testing/tests/ikev2/per-cpu-sas/pretest.dat | 11 +++ testing/tests/ikev2/per-cpu-sas/test.conf | 25 ++++++ 9 files changed, 227 insertions(+) create mode 100755 testing/tests/ikev2/per-cpu-sas/description.txt create mode 100755 testing/tests/ikev2/per-cpu-sas/evaltest.dat create mode 100755 testing/tests/ikev2/per-cpu-sas/hosts/moon/etc/strongswan.conf create mode 100755 testing/tests/ikev2/per-cpu-sas/hosts/moon/etc/swanctl/swanctl.conf create mode 100755 testing/tests/ikev2/per-cpu-sas/hosts/sun/etc/strongswan.conf create mode 100755 testing/tests/ikev2/per-cpu-sas/hosts/sun/etc/swanctl/swanctl.conf create mode 100755 testing/tests/ikev2/per-cpu-sas/posttest.dat create mode 100755 testing/tests/ikev2/per-cpu-sas/pretest.dat create mode 100755 testing/tests/ikev2/per-cpu-sas/test.conf diff --git a/testing/tests/ikev2/per-cpu-sas/description.txt b/testing/tests/ikev2/per-cpu-sas/description.txt new file mode 100755 index 000000000..3e4a97c9b --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas/description.txt @@ -0,0 +1,10 @@ +The two gateways moon and sun are configured to use per-CPU +CHILD_SAs in order to improve performance. Using the taskset utility +pings are sent from different CPUs triggering the creation of additional SA +via the installed trap policy. The first ping triggers the creation of a +fallback SA that's used while per-CPU SAs are created for later packets. Note +that responses sent from the peer may create per-CPU SAs that are not triggered +by local acquires. +

+The updown script automatically inserts iptables-based firewall rules +that let pass the tunneled traffic. diff --git a/testing/tests/ikev2/per-cpu-sas/evaltest.dat b/testing/tests/ikev2/per-cpu-sas/evaltest.dat new file mode 100755 index 000000000..c0bc830df --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas/evaltest.dat @@ -0,0 +1,80 @@ +moon::swanctl --list-pols --raw 2> /dev/null::net-net.*mode=TUNNEL local-ts=\[10.1.0.0/16] remote-ts=\[10.2.0.0/16]::YES +moon::cat /var/log/daemon.log::creating acquire job for policy 10.1.0.1/32\[icmp/8] === 10.2.0.10/32\[icmp/8]::YES +moon::cat /var/log/daemon.log::creating acquire job for policy 10.1.0.1/32\[icmp/8] === 10.2.0.10/32\[icmp/8].*cpu::NO +moon::swanctl --list-sas --raw 2> /dev/null::gw-gw.*version=2 state=ESTABLISHED local-host=192.168.0.1 local-port=500 local-id=moon.strongswan.org remote-host=192.168.0.2 remote-port=500 remote-id=sun.strongswan.org initiator=yes.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*child-sas.*net-net.*state=INSTALLED mode=TUNNEL.*ESP.*per-cpu-sas=yes.*encr-alg=AES_GCM_16 encr-keysize=128.*local-ts=\[10.1.0.0/16] remote-ts=\[10.2.0.0/16]::YES +sun:: swanctl --list-sas --raw 2> /dev/null::gw-gw.*version=2 state=ESTABLISHED local-host=192.168.0.2 local-port=500 local-id=sun.strongswan.org remote-host=192.168.0.1 remote-port=500 remote-id=moon.strongswan.org.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*child-sas.*net-net.*state=INSTALLED mode=TUNNEL.*ESP.*per-cpu-sas=yes.*encr-alg=AES_GCM_16 encr-keysize=128.*local-ts=\[10.2.0.0/16] remote-ts=\[10.1.0.0/16]::YES +# this triggers a per-CPU SA for CPU 1 and creates one for CPU 3 as responder, +# the packet is sent and received via fallback SA +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::cat /var/log/daemon.log::creating acquire job for policy 10.1.0.1/32\[icmp/8] === 10.2.0.10/32\[icmp/8].*cpu {1}::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=1::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=0::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=0.*packets-out=0::YES +# this takes the per-CPU SA created above, the response most likely the one +# created as responder +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=1::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=1.*packets-out=0::YES +# trigger another SA for CPU 0, request is sent via fallback SA, received via sub SA +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::cat /var/log/daemon.log::creating acquire job for policy 10.1.0.1/32\[icmp/8] === 10.2.0.10/32\[icmp/8].*cpu {0}::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=2::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=2.*packets-out=0::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=0.*packets-out=0::YES +# create a final SA for CPU 2, request is sent via fallback SA, response via one of the +# sub SAs (depends on the CPU assignment on the responder as it has to assign multiple +# SAs to the same CPU, so it could be either the one with unique ID 5, as it might +# be the newer one for that CPU, or it could be the original SA with unique ID 4) +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::cat /var/log/daemon.log::creating acquire job for policy 10.1.0.1/32\[icmp/8] === 10.2.0.10/32\[icmp/8].*cpu {2}::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=2.*packets-out=0::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=1.*packets-out=0::YES +moon::swanctl --list-sas --child-id 6 --raw 2> /dev/null::child-sas.*net-net.*cpu=2.*packets-in=0.*packets-out=0::YES +# all these pings must be sent via their respective SAs, never the fallback SA +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 3 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=2::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=2.*packets-out=1::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=1.*packets-out=1::YES +moon::swanctl --list-sas --child-id 6 --raw 2> /dev/null::child-sas.*net-net.*cpu=2.*packets-in=4.*packets-out=1::YES +# rekey an SA as initiator +moon::swanctl --rekey --child-id 5 +moon::sleep .5 +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 7 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=1.*packets-out=1::YES +# rekey an SA as responder +sun::swanctl --rekey --child-id 6 +moon::sleep .5 +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 8 --raw 2> /dev/null::child-sas.*net-net.*cpu=2.*packets-in=1.*packets-out=1::YES +# rekey the fallback SA +moon::swanctl --rekey --child-id 2 +moon::sleep .5 +moon::swanctl --list-sas --child-id 9 --raw 2> /dev/null::child-sas.*net-net.*packets-in=0.*packets-out=0::YES +# all these pings must be sent via their respective SAs, never the fallback SA and not +# the old ones that remain to process delayed inbound packets +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 3 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=1.*packets-in=0.*packets-out=3::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=3.*packets-in=2.*packets-out=2::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*cpu=0.*packets-in=1.*packets-out=1::YES +moon::swanctl --list-sas --child-id 6 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*cpu=2.*packets-in=4.*packets-out=1::YES +moon::swanctl --list-sas --child-id 7 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=0.*packets-in=1.*packets-out=2::YES +moon::swanctl --list-sas --child-id 8 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=2.*packets-in=5.*packets-out=2::YES +moon::swanctl --list-sas --child-id 9 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*packets-in=0.*packets-out=0::YES +# also test forwarding (we don't know which SA this takes, but never the fallback SA) +alice::ping -c 1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 9 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*packets-in=0.*packets-out=0::YES +sun::tcpdump::IP moon.strongswan.org > sun.strongswan.org: ESP::YES +sun::tcpdump::IP sun.strongswan.org > moon.strongswan.org: ESP::YES diff --git a/testing/tests/ikev2/per-cpu-sas/hosts/moon/etc/strongswan.conf b/testing/tests/ikev2/per-cpu-sas/hosts/moon/etc/strongswan.conf new file mode 100755 index 000000000..8af0dabb2 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas/hosts/moon/etc/strongswan.conf @@ -0,0 +1,15 @@ +# /etc/strongswan.conf - strongSwan configuration file + +swanctl { + load = pem pkcs1 revocation constraints pubkey openssl random +} + +charon-systemd { + load = random nonce openssl pem pkcs1 revocation curl kernel-netlink socket-default updown vici + + syslog { + daemon { + knl = 2 + } + } +} diff --git a/testing/tests/ikev2/per-cpu-sas/hosts/moon/etc/swanctl/swanctl.conf b/testing/tests/ikev2/per-cpu-sas/hosts/moon/etc/swanctl/swanctl.conf new file mode 100755 index 000000000..e80e172c8 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas/hosts/moon/etc/swanctl/swanctl.conf @@ -0,0 +1,33 @@ +connections { + + gw-gw { + local_addrs = 192.168.0.1 + remote_addrs = 192.168.0.2 + + local { + auth = pubkey + certs = moonCert.pem + id = moon.strongswan.org + } + remote { + auth = pubkey + id = sun.strongswan.org + } + children { + net-net { + local_ts = 10.1.0.0/16 + remote_ts = 10.2.0.0/16 + + per_cpu_sas = yes + + start_action = trap + updown = /usr/local/libexec/ipsec/_updown iptables + hostaccess = yes + esp_proposals = aes128gcm128-x25519 + } + } + version = 2 + mobike = no + proposals = aes128-sha256-x25519 + } +} diff --git a/testing/tests/ikev2/per-cpu-sas/hosts/sun/etc/strongswan.conf b/testing/tests/ikev2/per-cpu-sas/hosts/sun/etc/strongswan.conf new file mode 100755 index 000000000..8af0dabb2 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas/hosts/sun/etc/strongswan.conf @@ -0,0 +1,15 @@ +# /etc/strongswan.conf - strongSwan configuration file + +swanctl { + load = pem pkcs1 revocation constraints pubkey openssl random +} + +charon-systemd { + load = random nonce openssl pem pkcs1 revocation curl kernel-netlink socket-default updown vici + + syslog { + daemon { + knl = 2 + } + } +} diff --git a/testing/tests/ikev2/per-cpu-sas/hosts/sun/etc/swanctl/swanctl.conf b/testing/tests/ikev2/per-cpu-sas/hosts/sun/etc/swanctl/swanctl.conf new file mode 100755 index 000000000..d5b3caf62 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas/hosts/sun/etc/swanctl/swanctl.conf @@ -0,0 +1,33 @@ +connections { + + gw-gw { + local_addrs = 192.168.0.2 + remote_addrs = 192.168.0.1 + + local { + auth = pubkey + certs = sunCert.pem + id = sun.strongswan.org + } + remote { + auth = pubkey + id = moon.strongswan.org + } + children { + net-net { + local_ts = 10.2.0.0/16 + remote_ts = 10.1.0.0/16 + + per_cpu_sas = yes + + start_action = trap + updown = /usr/local/libexec/ipsec/_updown iptables + hostaccess = yes + esp_proposals = aes128gcm128-x25519 + } + } + version = 2 + mobike = no + proposals = aes128-sha256-x25519 + } +} diff --git a/testing/tests/ikev2/per-cpu-sas/posttest.dat b/testing/tests/ikev2/per-cpu-sas/posttest.dat new file mode 100755 index 000000000..cc6a5bff7 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas/posttest.dat @@ -0,0 +1,5 @@ +moon::swanctl --terminate --ike gw-gw 2> /dev/null +moon::systemctl stop strongswan +sun::systemctl stop strongswan +moon::iptables-restore < /etc/iptables.flush +sun::iptables-restore < /etc/iptables.flush diff --git a/testing/tests/ikev2/per-cpu-sas/pretest.dat b/testing/tests/ikev2/per-cpu-sas/pretest.dat new file mode 100755 index 000000000..273643c48 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas/pretest.dat @@ -0,0 +1,11 @@ +sun::iptables-restore < /etc/iptables.rules +moon::iptables-restore < /etc/iptables.rules +sun::systemctl start strongswan +moon::systemctl start strongswan +sun::expect-connection gw-gw +moon::expect-connection gw-gw +# triggering packet apparently goes via lo +moon::iptables -A OUTPUT -o lo -d 10.2.0.0/16 -j ACCEPT +# trigger the creation of the fallback SA, use -I so no UDP socket is used to +# determine the source address and trigger the acqurie (this packet is lost) +moon::ping -c 1 -W 1 -I PH_IP_MOON1 PH_IP_BOB diff --git a/testing/tests/ikev2/per-cpu-sas/test.conf b/testing/tests/ikev2/per-cpu-sas/test.conf new file mode 100755 index 000000000..07a3b247a --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas/test.conf @@ -0,0 +1,25 @@ +#!/bin/bash +# +# This configuration file provides information on the +# guest instances used for this test + +# All guest instances that are required for this test +# +VIRTHOSTS="alice moon winnetou sun bob" + +# Corresponding block diagram +# +DIAGRAM="a-m-w-s-b.png" + +# Guest instances on which tcpdump is to be started +# +TCPDUMPHOSTS="sun" + +# Guest instances on which IPsec is started +# Used for IPsec logging purposes +# +IPSECHOSTS="moon sun" + +# charon controlled by swanctl +# +SWANCTL=1 From d594171d9e63cfa471fa43119e21cf636148fb79 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 15 Jun 2021 09:46:31 +0200 Subject: [PATCH 27/32] child-cfg: Add flag to enable UDP encapsulation for per-CPU SAs --- src/libcharon/config/child_cfg.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libcharon/config/child_cfg.h b/src/libcharon/config/child_cfg.h index c8a7fefb2..cf13328a9 100644 --- a/src/libcharon/config/child_cfg.h +++ b/src/libcharon/config/child_cfg.h @@ -417,6 +417,9 @@ enum child_cfg_option_t { /** Enable per-CPU CHILD_SAs */ OPT_PER_CPU_SAS = (1<<9), + + /** Enable UDP encapsulation for per-CPU CHILD_SAs */ + OPT_PER_CPU_SAS_ENCAP = (1<<10), }; /** From 73083503f2b6e3873ef6bad7ac0ed8865e825eef Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 15 Jun 2021 11:10:40 +0200 Subject: [PATCH 28/32] vici: Make UDP encapsulation for per-CPU SAs configurable --- src/libcharon/plugins/vici/vici_config.c | 14 +++++++++++++- src/swanctl/swanctl.opt | 17 ++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/libcharon/plugins/vici/vici_config.c b/src/libcharon/plugins/vici/vici_config.c index 146c07db0..a85cccd9d 100644 --- a/src/libcharon/plugins/vici/vici_config.c +++ b/src/libcharon/plugins/vici/vici_config.c @@ -583,7 +583,9 @@ static void log_child_data(child_data_t *data, char *name) DBG2(DBG_CFG, " proposals = %#P", data->proposals); DBG2(DBG_CFG, " local_ts = %#R", data->local_ts); DBG2(DBG_CFG, " remote_ts = %#R", data->remote_ts); - DBG2(DBG_CFG, " per_cpu_sas = %u", has_opt(cfg, OPT_PER_CPU_SAS)); + DBG2(DBG_CFG, " per_cpu_sas = %s", + has_opt(cfg, OPT_PER_CPU_SAS_ENCAP) ? "encap" : + has_opt(cfg, OPT_PER_CPU_SAS) ? "1" : "0"); DBG2(DBG_CFG, " hw_offload = %N", hw_offload_names, cfg->hw_offload); DBG2(DBG_CFG, " sha256_96 = %u", has_opt(cfg, OPT_SHA256_96)); DBG2(DBG_CFG, " copy_df = %u", !has_opt(cfg, OPT_NO_COPY_DF)); @@ -1067,6 +1069,16 @@ CALLBACK(parse_opt_copy_ecn, bool, CALLBACK(parse_opt_cpus, bool, child_cfg_option_t *out, chunk_t v) { + enum_map_t map[] = { + { "encap", OPT_PER_CPU_SAS|OPT_PER_CPU_SAS_ENCAP }, + }; + int d; + + if (parse_map(map, countof(map), &d, v)) + { + *out |= d; + return TRUE; + } return parse_option(out, OPT_PER_CPU_SAS, v, TRUE); } diff --git a/src/swanctl/swanctl.opt b/src/swanctl/swanctl.opt index 4c60c0d0b..cabc90f8c 100644 --- a/src/swanctl/swanctl.opt +++ b/src/swanctl/swanctl.opt @@ -162,7 +162,7 @@ connections..fragmentation = yes Use IKE UDP datagram fragmentation (_yes_, _accept_, _no_ or _force_). Use IKE fragmentation (proprietary IKEv1 extension or RFC 7383 IKEv2 - fragmentation). Acceptable values are _yes_ (the default), _accept_, + fragmentation). Acceptable values are _yes_ (the default), _accept_, _force_ and _no_. If set to _yes_, and the peer supports it, oversized IKE messages will be sent in fragments. If set to _accept_, support for fragmentation is announced to the peer but the daemon does not send its own @@ -833,7 +833,7 @@ connections..children..rekey_time = 1h or life_time - 10% lifetime. If **life_time** is explicitly configured, **rekey_time** defaults to 10% - less than that, otherwise, CHILD_SA rekeying is scheduled every hour, minus + less than that, otherwise, CHILD_SA rekeying is scheduled every hour, minus **rand_time**. connections..children..life_time = rekey_time + 10% @@ -1128,6 +1128,17 @@ connections..children..replay_window = 32 connections..children..per_cpu_sas = no Enable per-CPU CHILD_SAs. Requires _trap_ in **start_action**. + Enable per-CPU CHILD_SAs. Requires _trap_ in **start_action**. + + The value _encap_ enables a special type of UDP encapsulation (requires + enabling **encap** for the connection if there is no NAT), where a random + source port is used for each outbound per-CPU SA (the destination port for + all of them remains 4500). This allows using the port for RSS if the SPI + can't be used. Note that this type of behavior is not standardized and not + negotiated. So regardless of whether the option is enabled, inbound per-CPU + SAs with UDP-encapsulation always have the source port set to 0 as the + peer's random port is unknown if it has this option enabled. + connections..children..hw_offload = no Enable hardware offload for this CHILD_SA, if supported by the IPsec implementation. @@ -1291,7 +1302,7 @@ secrets.ppk { # } secrets.ppk.secret = Value of the PPK. - Value of the PPK. It may either be an ASCII string, a hex encoded string if + Value of the PPK. It may either be an ASCII string, a hex encoded string if it has a _0x_ prefix or a Base64 encoded string if it has a _0s_ prefix in its value. Should have at least 256 bits of entropy for 128-bit security. From 14e1ec2b77a8979195fefc865503b52cd9444a4c Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 15 Jun 2021 11:11:14 +0200 Subject: [PATCH 29/32] child-sa: Configure UDP encapsulation for per-CPU SAs As the kernel does not support processing UDP-encapsulated and plain ESP for the same SA, we require forcing UDP encapsulation if there is no NAT. --- src/libcharon/sa/child_sa.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/libcharon/sa/child_sa.c b/src/libcharon/sa/child_sa.c index d5c09c1da..2c0ef08ed 100644 --- a/src/libcharon/sa/child_sa.c +++ b/src/libcharon/sa/child_sa.c @@ -988,6 +988,14 @@ static status_t install_internal(private_child_sa_t *this, chunk_t encr, this->my_cpi = cpi; dst_ts = my_ts; src_ts = other_ts; + + if (this->per_cpu && this->encap) + { + src = src->clone(src); + /* accept inbound traffic from any port as we don't know if the + * peer uses random ports or not */ + src->set_port(src, 0); + } } else { @@ -1002,6 +1010,14 @@ static status_t install_internal(private_child_sa_t *this, chunk_t encr, { tfc = this->config->get_tfc(this->config); } + if (this->per_cpu && this->encap && + this->config->has_option(this->config, OPT_PER_CPU_SAS_ENCAP)) + { + src = src->clone(src); + /* use a random source port between 49152 and 65535. doesn't matter + * if it's free or not as we don't receive traffic on it */ + src->set_port(src, 0xc000 | (random() & 0xffff)); + } } DBG2(DBG_CHD, "adding %s %N SA", inbound ? "inbound" : "outbound", @@ -1106,6 +1122,10 @@ static status_t install_internal(private_child_sa_t *this, chunk_t encr, status = charon->kernel->add_sa(charon->kernel, &id, &sa); + if (src != this->my_addr && src != this->other_addr) + { + src->destroy(src); + } my_ts->destroy(my_ts); other_ts->destroy(other_ts); free(lifetime); From d83fbe82e44e224b744e6b4c752638269e93e89e Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 22 Apr 2025 11:19:34 +0200 Subject: [PATCH 30/32] kernel-netlink: Suppress NAT mapping updates for per-CPU SAs As we set the remote port to 0, we'd get a mapping change message with every packet. Setting the threshold avoids all kernel messages after the first, which we suppress explicitly as well. --- .../kernel_netlink/kernel_netlink_ipsec.c | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c index cf3d2e1ae..01d873646 100644 --- a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c +++ b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c @@ -1161,13 +1161,23 @@ static void process_mapping(private_kernel_netlink_ipsec_t *this, dst = xfrm2host(mapping->id.family, &mapping->id.daddr, 0); if (dst) { - new = xfrm2host(mapping->id.family, &mapping->new_saddr, - mapping->new_sport); - if (new) + if (!mapping->old_sport) { - charon->kernel->mapping(charon->kernel, IPPROTO_ESP, spi, dst, - new); - new->destroy(new); + /* ignore mappings for per-CPU SAs with 0 source port */ + DBG1(DBG_KNL, "ignore NAT mapping change for per-resource " + "CHILD_SA %N/0x%08x/%H", protocol_id_names, PROTO_ESP, + htonl(spi), dst); + } + else + { + new = xfrm2host(mapping->id.family, &mapping->new_saddr, + mapping->new_sport); + if (new) + { + charon->kernel->mapping(charon->kernel, IPPROTO_ESP, spi, dst, + new); + new->destroy(new); + } } dst->destroy(dst); } @@ -2053,6 +2063,15 @@ METHOD(kernel_ipsec_t, add_sa, status_t, * No. The reason the kernel ignores NAT-OA is that it recomputes * (or, rather, just ignores) the checksum. If packets pass the IPsec * checks it marks them "checksum ok" so OA isn't needed. */ + + /* if the remote port is set to 0 for UDP-encapsulated per-CPU SAs, we + * increase the treshold for mapping changes as it gets otherwise + * triggered with every packet */ + if (data->inbound && !id->src->get_port(id->src) && + !add_uint32(hdr, sizeof(request), XFRMA_MTIMER_THRESH, UINT32_MAX)) + { + goto failed; + } } if (!add_mark(hdr, sizeof(request), id->mark)) From 3b2f8cf282bd677da64b7dddafb02e064cb94abb Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 15 Jun 2021 11:13:35 +0200 Subject: [PATCH 31/32] testing: Add ikev2/per-cpu-sas-encap scenario Basically the same as the one without UDP encapsulation, but here the outbound SAs use random source ports. --- .../ikev2/per-cpu-sas-encap/description.txt | 13 +++ .../ikev2/per-cpu-sas-encap/evaltest.dat | 80 +++++++++++++++++++ .../hosts/moon/etc/strongswan.conf | 15 ++++ .../hosts/moon/etc/swanctl/swanctl.conf | 34 ++++++++ .../hosts/sun/etc/strongswan.conf | 15 ++++ .../hosts/sun/etc/swanctl/swanctl.conf | 34 ++++++++ .../ikev2/per-cpu-sas-encap/posttest.dat | 5 ++ .../tests/ikev2/per-cpu-sas-encap/pretest.dat | 16 ++++ .../tests/ikev2/per-cpu-sas-encap/test.conf | 25 ++++++ 9 files changed, 237 insertions(+) create mode 100755 testing/tests/ikev2/per-cpu-sas-encap/description.txt create mode 100755 testing/tests/ikev2/per-cpu-sas-encap/evaltest.dat create mode 100755 testing/tests/ikev2/per-cpu-sas-encap/hosts/moon/etc/strongswan.conf create mode 100755 testing/tests/ikev2/per-cpu-sas-encap/hosts/moon/etc/swanctl/swanctl.conf create mode 100755 testing/tests/ikev2/per-cpu-sas-encap/hosts/sun/etc/strongswan.conf create mode 100755 testing/tests/ikev2/per-cpu-sas-encap/hosts/sun/etc/swanctl/swanctl.conf create mode 100755 testing/tests/ikev2/per-cpu-sas-encap/posttest.dat create mode 100755 testing/tests/ikev2/per-cpu-sas-encap/pretest.dat create mode 100755 testing/tests/ikev2/per-cpu-sas-encap/test.conf diff --git a/testing/tests/ikev2/per-cpu-sas-encap/description.txt b/testing/tests/ikev2/per-cpu-sas-encap/description.txt new file mode 100755 index 000000000..3c2f11073 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap/description.txt @@ -0,0 +1,13 @@ +The two gateways moon and sun are configured to use per-CPU +CHILD_SAs in order to improve performance. Using the taskset utility +pings are sent from different CPUs triggering the creation of additional SA +via the installed trap policy. The first ping triggers the creation of a +fallback SA that's used while per-CPU SAs are created for later packets. Note +that responses sent from the peer may create per-CPU SAs that are not triggered +by local acquires. +

+UDP encapsulation is forced and the special value encap is used when +enabling per-CPU SAs to force random source ports for the outbound SAs. +

+The updown script automatically inserts iptables-based firewall rules +that let pass the tunneled traffic. diff --git a/testing/tests/ikev2/per-cpu-sas-encap/evaltest.dat b/testing/tests/ikev2/per-cpu-sas-encap/evaltest.dat new file mode 100755 index 000000000..8b653a2ff --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap/evaltest.dat @@ -0,0 +1,80 @@ +moon::swanctl --list-pols --raw 2> /dev/null::net-net.*mode=TUNNEL local-ts=\[10.1.0.0/16] remote-ts=\[10.2.0.0/16]::YES +moon::cat /var/log/daemon.log::creating acquire job for policy 10.1.0.1/32\[icmp/8] === 10.2.0.10/32\[icmp/8]::YES +moon::cat /var/log/daemon.log::creating acquire job for policy 10.1.0.1/32\[icmp/8] === 10.2.0.10/32\[icmp/8].*cpu::NO +moon::swanctl --list-sas --raw 2> /dev/null::gw-gw.*version=2 state=ESTABLISHED local-host=192.168.0.1 local-port=4500 local-id=moon.strongswan.org remote-host=192.168.0.2 remote-port=4500 remote-id=sun.strongswan.org initiator=yes.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*child-sas.*net-net.*state=INSTALLED mode=TUNNEL.*ESP.*per-cpu-sas=yes.*encr-alg=AES_GCM_16 encr-keysize=128.*local-ts=\[10.1.0.0/16] remote-ts=\[10.2.0.0/16]::YES +sun:: swanctl --list-sas --raw 2> /dev/null::gw-gw.*version=2 state=ESTABLISHED local-host=192.168.0.2 local-port=4500 local-id=sun.strongswan.org remote-host=192.168.0.1 remote-port=4500 remote-id=moon.strongswan.org.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*child-sas.*net-net.*state=INSTALLED mode=TUNNEL.*ESP.*per-cpu-sas=yes.*encr-alg=AES_GCM_16 encr-keysize=128.*local-ts=\[10.2.0.0/16] remote-ts=\[10.1.0.0/16]::YES +# this triggers a per-CPU SA for CPU 1 and creates one for CPU 3 as responder, +# the packet is sent and received via fallback SA +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::cat /var/log/daemon.log::creating acquire job for policy 10.1.0.1/32\[icmp/8] === 10.2.0.10/32\[icmp/8].*cpu {1}::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=1::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=0::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=0.*packets-out=0::YES +# this takes the per-CPU SA created above, the response most likely the one +# created as responder +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=1::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=1.*packets-out=0::YES +# trigger another SA for CPU 0, request is sent via fallback SA, received via sub SA +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::cat /var/log/daemon.log::creating acquire job for policy 10.1.0.1/32\[icmp/8] === 10.2.0.10/32\[icmp/8].*cpu {0}::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=2::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=2.*packets-out=0::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=0.*packets-out=0::YES +# create a final SA for CPU 2, request is sent via fallback SA, response via one of the +# sub SAs (depends on the CPU assignment on the responder as it has to assign multiple +# SAs to the same CPU, so it could be either the one with unique ID 5, as it might +# be the newer one for that CPU, or it could be the original SA with unique ID 4) +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::cat /var/log/daemon.log::creating acquire job for policy 10.1.0.1/32\[icmp/8] === 10.2.0.10/32\[icmp/8].*cpu {2}::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=2.*packets-out=0::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=1.*packets-out=0::YES +moon::swanctl --list-sas --child-id 6 --raw 2> /dev/null::child-sas.*net-net.*cpu=2.*packets-in=0.*packets-out=0::YES +# all these pings must be sent via their respective SAs, never the fallback SA +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 3 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=2::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=2.*packets-out=1::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=1.*packets-out=1::YES +moon::swanctl --list-sas --child-id 6 --raw 2> /dev/null::child-sas.*net-net.*cpu=2.*packets-in=4.*packets-out=1::YES +# rekey an SA as initiator +moon::swanctl --rekey --child-id 5 +moon::sleep .5 +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 7 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=1.*packets-out=1::YES +# rekey an SA as responder +sun::swanctl --rekey --child-id 6 +moon::sleep .5 +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 8 --raw 2> /dev/null::child-sas.*net-net.*cpu=2.*packets-in=1.*packets-out=1::YES +# rekey the fallback SA +moon::swanctl --rekey --child-id 2 +moon::sleep .5 +moon::swanctl --list-sas --child-id 9 --raw 2> /dev/null::child-sas.*net-net.*packets-in=0.*packets-out=0::YES +# all these pings must be sent via their respective SAs, never the fallback SA and not +# the old ones that remain to process delayed inbound packets +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::taskset -c 3 ping -c 1 -I PH_IP_MOON1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=1.*packets-in=0.*packets-out=3::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=3.*packets-in=2.*packets-out=2::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*cpu=0.*packets-in=1.*packets-out=1::YES +moon::swanctl --list-sas --child-id 6 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*cpu=2.*packets-in=4.*packets-out=1::YES +moon::swanctl --list-sas --child-id 7 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=0.*packets-in=1.*packets-out=2::YES +moon::swanctl --list-sas --child-id 8 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=2.*packets-in=5.*packets-out=2::YES +moon::swanctl --list-sas --child-id 9 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*packets-in=0.*packets-out=0::YES +# also test forwarding (we don't know which SA this takes, but never the fallback SA) +alice::ping -c 1 PH_IP_BOB::64 bytes from PH_IP_BOB: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 9 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*packets-in=0.*packets-out=0::YES +sun::tcpdump::IP moon.strongswan.org.* > sun.strongswan.org.ipsec-nat-t: UDP-encap: ESP::YES +sun::tcpdump::IP sun.strongswan.org.* > moon.strongswan.org.ipsec-nat-t: UDP-encap: ESP::YES diff --git a/testing/tests/ikev2/per-cpu-sas-encap/hosts/moon/etc/strongswan.conf b/testing/tests/ikev2/per-cpu-sas-encap/hosts/moon/etc/strongswan.conf new file mode 100755 index 000000000..8af0dabb2 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap/hosts/moon/etc/strongswan.conf @@ -0,0 +1,15 @@ +# /etc/strongswan.conf - strongSwan configuration file + +swanctl { + load = pem pkcs1 revocation constraints pubkey openssl random +} + +charon-systemd { + load = random nonce openssl pem pkcs1 revocation curl kernel-netlink socket-default updown vici + + syslog { + daemon { + knl = 2 + } + } +} diff --git a/testing/tests/ikev2/per-cpu-sas-encap/hosts/moon/etc/swanctl/swanctl.conf b/testing/tests/ikev2/per-cpu-sas-encap/hosts/moon/etc/swanctl/swanctl.conf new file mode 100755 index 000000000..3dddf48dd --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap/hosts/moon/etc/swanctl/swanctl.conf @@ -0,0 +1,34 @@ +connections { + + gw-gw { + local_addrs = 192.168.0.1 + remote_addrs = 192.168.0.2 + + local { + auth = pubkey + certs = moonCert.pem + id = moon.strongswan.org + } + remote { + auth = pubkey + id = sun.strongswan.org + } + children { + net-net { + local_ts = 10.1.0.0/16 + remote_ts = 10.2.0.0/16 + + per_cpu_sas = encap + + start_action = trap + updown = /usr/local/libexec/ipsec/_updown iptables + hostaccess = yes + esp_proposals = aes128gcm128-x25519 + } + } + version = 2 + mobike = no + encap = yes + proposals = aes128-sha256-x25519 + } +} diff --git a/testing/tests/ikev2/per-cpu-sas-encap/hosts/sun/etc/strongswan.conf b/testing/tests/ikev2/per-cpu-sas-encap/hosts/sun/etc/strongswan.conf new file mode 100755 index 000000000..8af0dabb2 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap/hosts/sun/etc/strongswan.conf @@ -0,0 +1,15 @@ +# /etc/strongswan.conf - strongSwan configuration file + +swanctl { + load = pem pkcs1 revocation constraints pubkey openssl random +} + +charon-systemd { + load = random nonce openssl pem pkcs1 revocation curl kernel-netlink socket-default updown vici + + syslog { + daemon { + knl = 2 + } + } +} diff --git a/testing/tests/ikev2/per-cpu-sas-encap/hosts/sun/etc/swanctl/swanctl.conf b/testing/tests/ikev2/per-cpu-sas-encap/hosts/sun/etc/swanctl/swanctl.conf new file mode 100755 index 000000000..f29f86cc7 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap/hosts/sun/etc/swanctl/swanctl.conf @@ -0,0 +1,34 @@ +connections { + + gw-gw { + local_addrs = 192.168.0.2 + remote_addrs = 192.168.0.1 + + local { + auth = pubkey + certs = sunCert.pem + id = sun.strongswan.org + } + remote { + auth = pubkey + id = moon.strongswan.org + } + children { + net-net { + local_ts = 10.2.0.0/16 + remote_ts = 10.1.0.0/16 + + per_cpu_sas = encap + + start_action = trap + updown = /usr/local/libexec/ipsec/_updown iptables + hostaccess = yes + esp_proposals = aes128gcm128-x25519 + } + } + version = 2 + mobike = no + encap = yes + proposals = aes128-sha256-x25519 + } +} diff --git a/testing/tests/ikev2/per-cpu-sas-encap/posttest.dat b/testing/tests/ikev2/per-cpu-sas-encap/posttest.dat new file mode 100755 index 000000000..cc6a5bff7 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap/posttest.dat @@ -0,0 +1,5 @@ +moon::swanctl --terminate --ike gw-gw 2> /dev/null +moon::systemctl stop strongswan +sun::systemctl stop strongswan +moon::iptables-restore < /etc/iptables.flush +sun::iptables-restore < /etc/iptables.flush diff --git a/testing/tests/ikev2/per-cpu-sas-encap/pretest.dat b/testing/tests/ikev2/per-cpu-sas-encap/pretest.dat new file mode 100755 index 000000000..594837de7 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap/pretest.dat @@ -0,0 +1,16 @@ +sun::iptables-restore < /etc/iptables.rules +moon::iptables-restore < /etc/iptables.rules +sun::systemctl start strongswan +moon::systemctl start strongswan +sun::expect-connection gw-gw +moon::expect-connection gw-gw +# allow UDP encap from any source to 4500 +moon::iptables -A INPUT -i eth0 -p udp --dport 4500 -j ACCEPT +moon::iptables -A OUTPUT -o eth0 -p udp --dport 4500 -j ACCEPT +sun:: iptables -A INPUT -i eth0 -p udp --dport 4500 -j ACCEPT +sun:: iptables -A OUTPUT -o eth0 -p udp --dport 4500 -j ACCEPT +# triggering packet apparently goes via lo +moon::iptables -A OUTPUT -o lo -d 10.2.0.0/16 -j ACCEPT +# trigger the creation of the fallback SA, use -I so no UDP socket is used to +# determine the source address and trigger the acqurie (this packet is lost) +moon::ping -c 1 -W 1 -I PH_IP_MOON1 PH_IP_BOB diff --git a/testing/tests/ikev2/per-cpu-sas-encap/test.conf b/testing/tests/ikev2/per-cpu-sas-encap/test.conf new file mode 100755 index 000000000..07a3b247a --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap/test.conf @@ -0,0 +1,25 @@ +#!/bin/bash +# +# This configuration file provides information on the +# guest instances used for this test + +# All guest instances that are required for this test +# +VIRTHOSTS="alice moon winnetou sun bob" + +# Corresponding block diagram +# +DIAGRAM="a-m-w-s-b.png" + +# Guest instances on which tcpdump is to be started +# +TCPDUMPHOSTS="sun" + +# Guest instances on which IPsec is started +# Used for IPsec logging purposes +# +IPSECHOSTS="moon sun" + +# charon controlled by swanctl +# +SWANCTL=1 From b7d3349000f70c250ccb4cf2b9e158376ca3339a Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 16 Jun 2021 09:45:57 +0200 Subject: [PATCH 32/32] testing: Add ikev2/per-cpu-sas-encap-transport scenario Tests transport mode and UDP encapsulation with random source ports. Interestingly, the responder always uses the same SA to respond (maybe due to the cache on the policy). --- .../description.txt | 13 ++++ .../per-cpu-sas-encap-transport/evaltest.dat | 78 +++++++++++++++++++ .../hosts/moon/etc/strongswan.conf | 15 ++++ .../hosts/moon/etc/swanctl/swanctl.conf | 32 ++++++++ .../hosts/sun/etc/strongswan.conf | 15 ++++ .../hosts/sun/etc/swanctl/swanctl.conf | 32 ++++++++ .../per-cpu-sas-encap-transport/posttest.dat | 5 ++ .../per-cpu-sas-encap-transport/pretest.dat | 14 ++++ .../per-cpu-sas-encap-transport/test.conf | 25 ++++++ 9 files changed, 229 insertions(+) create mode 100755 testing/tests/ikev2/per-cpu-sas-encap-transport/description.txt create mode 100755 testing/tests/ikev2/per-cpu-sas-encap-transport/evaltest.dat create mode 100755 testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/moon/etc/strongswan.conf create mode 100755 testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/moon/etc/swanctl/swanctl.conf create mode 100755 testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/sun/etc/strongswan.conf create mode 100755 testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/sun/etc/swanctl/swanctl.conf create mode 100755 testing/tests/ikev2/per-cpu-sas-encap-transport/posttest.dat create mode 100755 testing/tests/ikev2/per-cpu-sas-encap-transport/pretest.dat create mode 100755 testing/tests/ikev2/per-cpu-sas-encap-transport/test.conf diff --git a/testing/tests/ikev2/per-cpu-sas-encap-transport/description.txt b/testing/tests/ikev2/per-cpu-sas-encap-transport/description.txt new file mode 100755 index 000000000..d10f563f8 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap-transport/description.txt @@ -0,0 +1,13 @@ +The two hosts moon and sun are configured to use per-CPU +CHILD_SAs in transport mode in order to improve performance. Using the +taskset utility pings are sent from different CPUs triggering the +creation of additional SA via the installed trap policy. The first ping triggers +the creation of a fallback SA that's used while per-CPU SAs are created for +later packets. Note that responses sent from the peer may create per-CPU SAs +that are not triggered by local acquires. +

+UDP encapsulation is forced and the special value encap is used when +enabling per-CPU SAs to force random source ports for the outbound SAs. +

+The updown script automatically inserts iptables-based firewall rules +that let pass the tunneled traffic. diff --git a/testing/tests/ikev2/per-cpu-sas-encap-transport/evaltest.dat b/testing/tests/ikev2/per-cpu-sas-encap-transport/evaltest.dat new file mode 100755 index 000000000..e4ea4cfaa --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap-transport/evaltest.dat @@ -0,0 +1,78 @@ +moon::swanctl --list-pols --raw 2> /dev/null::net-net.*mode=TRANSPORT local-ts=\[PH_IP_MOON/32] remote-ts=\[PH_IP_SUN/32]::YES +moon::cat /var/log/daemon.log::creating acquire job for policy PH_IP_MOON/32\[icmp/8] === PH_IP_SUN/32\[icmp/8]::YES +moon::cat /var/log/daemon.log::creating acquire job for policy PH_IP_MOON/32\[icmp/8] === PH_IP_SUN/32\[icmp/8].*cpu::NO +moon::swanctl --list-sas --raw 2> /dev/null::gw-gw.*version=2 state=ESTABLISHED local-host=192.168.0.1 local-port=4500 local-id=moon.strongswan.org remote-host=192.168.0.2 remote-port=4500 remote-id=sun.strongswan.org initiator=yes.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*child-sas.*net-net.*state=INSTALLED mode=TRANSPORT.*ESP.*per-cpu-sas=yes.*encr-alg=AES_GCM_16 encr-keysize=128.*local-ts=\[PH_IP_MOON/32] remote-ts=\[PH_IP_SUN/32]::YES +sun:: swanctl --list-sas --raw 2> /dev/null::gw-gw.*version=2 state=ESTABLISHED local-host=192.168.0.2 local-port=4500 local-id=sun.strongswan.org remote-host=192.168.0.1 remote-port=4500 remote-id=moon.strongswan.org.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*child-sas.*net-net.*state=INSTALLED mode=TRANSPORT.*ESP.*per-cpu-sas=yes.*encr-alg=AES_GCM_16 encr-keysize=128.*local-ts=\[PH_IP_SUN/32] remote-ts=\[PH_IP_MOON/32]::YES +# this triggers a per-CPU SA for CPU 1 and creates one for CPU 3 as responder, +# the packet is sent and received via fallback SA +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::cat /var/log/daemon.log::creating acquire job for policy PH_IP_MOON/32\[icmp/8] === PH_IP_SUN/32\[icmp/8].*cpu {1}::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=1::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=0::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=0.*packets-out=0::YES +# this takes the per-CPU SA created above, the response most likely the one +# created as responder +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=1::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=1.*packets-out=0::YES +# trigger another SA for CPU 0, request is sent via fallback SA, received via sub SA +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::cat /var/log/daemon.log::creating acquire job for policy PH_IP_MOON/32\[icmp/8] === PH_IP_SUN/32\[icmp/8].*cpu {0}::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=2::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=2.*packets-out=0::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=0.*packets-out=0::YES +# create a final SA for CPU 2, request is sent via fallback SA, response via one of the +# sub SAs (depends on the CPU assignment on the responder as it has to assign multiple +# SAs to the same CPU, so it could be either the one with unique ID 5, as it might +# be the newer one for that CPU, or it could be the original SA with unique ID 4) +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::cat /var/log/daemon.log::creating acquire job for policy PH_IP_MOON/32\[icmp/8] === PH_IP_SUN/32\[icmp/8].*cpu {2}::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=3.*packets-out=0::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=0.*packets-out=0::YES +moon::swanctl --list-sas --child-id 6 --raw 2> /dev/null::child-sas.*net-net.*cpu=2.*packets-in=0.*packets-out=0::YES +# all these pings must be sent via their respective SAs, never the fallback SA +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::taskset -c 3 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*cpu=1.*packets-in=0.*packets-out=2::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=7.*packets-out=1::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 6 --raw 2> /dev/null::child-sas.*net-net.*cpu=2.*packets-in=0.*packets-out=1::YES +# rekey an SA as initiator +moon::swanctl --rekey --child-id 5 +moon::sleep .5 +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=8.*packets-out=1::YES +moon::swanctl --list-sas --child-id 7 --raw 2> /dev/null::child-sas.*net-net.*cpu=0.*packets-in=0.*packets-out=1::YES +# rekey an SA as responder +sun::swanctl --rekey --child-id 6 +moon::sleep .5 +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*cpu=3.*packets-in=9.*packets-out=1::YES +moon::swanctl --list-sas --child-id 8 --raw 2> /dev/null::child-sas.*net-net.*cpu=2.*packets-in=0.*packets-out=1::YES +# rekey the fallback SA +moon::swanctl --rekey --child-id 2 +moon::sleep .5 +moon::swanctl --list-sas --child-id 9 --raw 2> /dev/null::child-sas.*net-net.*packets-in=0.*packets-out=0::YES +# all these pings must be sent via their respective SAs, never the fallback SA and not +# the old ones that remain to process delayed inbound packets +moon::taskset -c 0 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::taskset -c 1 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::taskset -c 2 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::taskset -c 3 ping -c 1 -I PH_IP_MOON PH_IP_SUN::64 bytes from PH_IP_SUN: icmp_.eq=1::YES +moon::swanctl --list-sas --child-id 2 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*packets-in=1.*packets-out=3::YES +moon::swanctl --list-sas --child-id 3 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=1.*packets-in=0.*packets-out=3::YES +moon::swanctl --list-sas --child-id 4 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=3.*packets-in=13.*packets-out=2::YES +moon::swanctl --list-sas --child-id 5 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*cpu=0.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 6 --raw 2> /dev/null::child-sas.*net-net.*state=DELETED.*cpu=2.*packets-in=0.*packets-out=1::YES +moon::swanctl --list-sas --child-id 7 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=0.*packets-in=0.*packets-out=2::YES +moon::swanctl --list-sas --child-id 8 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*cpu=2.*packets-in=0.*packets-out=2::YES +moon::swanctl --list-sas --child-id 9 --raw 2> /dev/null::child-sas.*net-net.*state=INSTALLED.*packets-in=0.*packets-out=0::YES +sun::tcpdump::IP moon.strongswan.org.* > sun.strongswan.org.ipsec-nat-t: UDP-encap: ESP::YES +sun::tcpdump::IP sun.strongswan.org.* > moon.strongswan.org.ipsec-nat-t: UDP-encap: ESP::YES diff --git a/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/moon/etc/strongswan.conf b/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/moon/etc/strongswan.conf new file mode 100755 index 000000000..8af0dabb2 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/moon/etc/strongswan.conf @@ -0,0 +1,15 @@ +# /etc/strongswan.conf - strongSwan configuration file + +swanctl { + load = pem pkcs1 revocation constraints pubkey openssl random +} + +charon-systemd { + load = random nonce openssl pem pkcs1 revocation curl kernel-netlink socket-default updown vici + + syslog { + daemon { + knl = 2 + } + } +} diff --git a/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/moon/etc/swanctl/swanctl.conf b/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/moon/etc/swanctl/swanctl.conf new file mode 100755 index 000000000..c63b3eb88 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/moon/etc/swanctl/swanctl.conf @@ -0,0 +1,32 @@ +connections { + + gw-gw { + local_addrs = 192.168.0.1 + remote_addrs = 192.168.0.2 + + local { + auth = pubkey + certs = moonCert.pem + id = moon.strongswan.org + } + remote { + auth = pubkey + id = sun.strongswan.org + } + children { + net-net { + mode = transport + per_cpu_sas = encap + + start_action = trap + updown = /usr/local/libexec/ipsec/_updown iptables + hostaccess = yes + esp_proposals = aes128gcm128-x25519 + } + } + version = 2 + mobike = no + encap = yes + proposals = aes128-sha256-x25519 + } +} diff --git a/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/sun/etc/strongswan.conf b/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/sun/etc/strongswan.conf new file mode 100755 index 000000000..8af0dabb2 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/sun/etc/strongswan.conf @@ -0,0 +1,15 @@ +# /etc/strongswan.conf - strongSwan configuration file + +swanctl { + load = pem pkcs1 revocation constraints pubkey openssl random +} + +charon-systemd { + load = random nonce openssl pem pkcs1 revocation curl kernel-netlink socket-default updown vici + + syslog { + daemon { + knl = 2 + } + } +} diff --git a/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/sun/etc/swanctl/swanctl.conf b/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/sun/etc/swanctl/swanctl.conf new file mode 100755 index 000000000..3bdee38f4 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap-transport/hosts/sun/etc/swanctl/swanctl.conf @@ -0,0 +1,32 @@ +connections { + + gw-gw { + local_addrs = 192.168.0.2 + remote_addrs = 192.168.0.1 + + local { + auth = pubkey + certs = sunCert.pem + id = sun.strongswan.org + } + remote { + auth = pubkey + id = moon.strongswan.org + } + children { + net-net { + mode = transport + per_cpu_sas = encap + + start_action = trap + updown = /usr/local/libexec/ipsec/_updown iptables + hostaccess = yes + esp_proposals = aes128gcm128-x25519 + } + } + version = 2 + mobike = no + encap = yes + proposals = aes128-sha256-x25519 + } +} diff --git a/testing/tests/ikev2/per-cpu-sas-encap-transport/posttest.dat b/testing/tests/ikev2/per-cpu-sas-encap-transport/posttest.dat new file mode 100755 index 000000000..cc6a5bff7 --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap-transport/posttest.dat @@ -0,0 +1,5 @@ +moon::swanctl --terminate --ike gw-gw 2> /dev/null +moon::systemctl stop strongswan +sun::systemctl stop strongswan +moon::iptables-restore < /etc/iptables.flush +sun::iptables-restore < /etc/iptables.flush diff --git a/testing/tests/ikev2/per-cpu-sas-encap-transport/pretest.dat b/testing/tests/ikev2/per-cpu-sas-encap-transport/pretest.dat new file mode 100755 index 000000000..f3538357b --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap-transport/pretest.dat @@ -0,0 +1,14 @@ +sun::iptables-restore < /etc/iptables.rules +moon::iptables-restore < /etc/iptables.rules +sun::systemctl start strongswan +moon::systemctl start strongswan +sun::expect-connection gw-gw +moon::expect-connection gw-gw +# allow UDP encap from any source to 4500 +moon::iptables -A INPUT -i eth0 -p udp --dport 4500 -j ACCEPT +moon::iptables -A OUTPUT -o eth0 -p udp --dport 4500 -j ACCEPT +sun:: iptables -A INPUT -i eth0 -p udp --dport 4500 -j ACCEPT +sun:: iptables -A OUTPUT -o eth0 -p udp --dport 4500 -j ACCEPT +# trigger the creation of the fallback SA, use -I so no UDP socket is used to +# determine the source address and trigger the acqurie (this packet is lost) +moon::ping -c 1 -W 1 -I PH_IP_MOON PH_IP_SUN diff --git a/testing/tests/ikev2/per-cpu-sas-encap-transport/test.conf b/testing/tests/ikev2/per-cpu-sas-encap-transport/test.conf new file mode 100755 index 000000000..07a3b247a --- /dev/null +++ b/testing/tests/ikev2/per-cpu-sas-encap-transport/test.conf @@ -0,0 +1,25 @@ +#!/bin/bash +# +# This configuration file provides information on the +# guest instances used for this test + +# All guest instances that are required for this test +# +VIRTHOSTS="alice moon winnetou sun bob" + +# Corresponding block diagram +# +DIAGRAM="a-m-w-s-b.png" + +# Guest instances on which tcpdump is to be started +# +TCPDUMPHOSTS="sun" + +# Guest instances on which IPsec is started +# Used for IPsec logging purposes +# +IPSECHOSTS="moon sun" + +# charon controlled by swanctl +# +SWANCTL=1