From patchwork Mon Jun 2 10:34:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 893784 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CBDD01A8F60; Mon, 2 Jun 2025 10:36:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748860614; cv=none; b=rzFH+BT4xl7ul7VJEkXm9yZUtujARxVQnLbvvDIzYqbhN3IHH9QIK8oukVs+92VgHcfXZwNZ9/gvqtg5JBKhQDy9gDf6Jfs4lpJNWOSxbiupR6PCp9+ih1nptnxuPYE5SkwefzpcILMlqN3HqYWutfOaSZOw2ILjUZwpUYuzVhE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748860614; c=relaxed/simple; bh=nvE9yPETJ0cMSZMbyble0XWiAJ5+Ig2FHrelAm52G1A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qZXClDHebtDhufzA/xReawGplSRXYU69L7AbIxNar8x0laAWYB6IEI5YyWQ+HuIUo1OM4a2Oabp0R3hy/lALVyWjde+rgthKaXwYvKl8s8Ku1A37InmS/jtzVTnSqVyci5qQhIoH56xtpzDDda8XkI6WXEAnmAe+/EEhqDl08hE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.218.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-ad89d8a270fso1101740866b.1; Mon, 02 Jun 2025 03:36:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748860611; x=1749465411; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N6K5ax7dZlM1ceqO80t37SY5RGau3fBKg0lIDvsG7A4=; b=MSpaJ80YjOXlxc4rXDA1kUijIV4wBgymAtZ4DpCK8ac8X+jJpzXz2+i3+ECeE9mIcO 00gT49FwBR5LUoAlUNrEeaOuaOxdk9nRWhsWTVn6/oRbUyhke5Ro5EW1s/RK8lsaV90t luC0I+SSQpP+ldY5uTb/4/HdY9X9gTwWVX4DXnkuYyU7ZnTsJkQuFk265y8bXLm3Eui0 mzXdAp141+9JU30k6stehBtdkJywCS407EeBGMjPCO0XPSbZTYVvysUIw+NIHDPBQwNj tzrLZDhGc/wvrj1KPHe9fPR2UqFeWOlbSe+xh8pfnex7V+iQlQifvkefl+ykpF9gBC1n RaWw== X-Forwarded-Encrypted: i=1; AJvYcCUoDrHqfmWzYu+f8foVPaML89hw8RGc806JKSaL5ojtNir2mfbFCfxdiE61XPTSsOZGMquQhQaSW4rV2/Y=@vger.kernel.org, AJvYcCWxK8vPBS7/cIEZ0KVqdjO4pkI4AAxprC8j0u2cHfGL0/cHOxVathuekfB0Mx4PnL39NbnVe5+AsOr6NkF4cMNE@vger.kernel.org X-Gm-Message-State: AOJu0YwX2Ud5qfof/moXpAhAvGwVhqKg3rSMjZcLpFeK3MsZG75wgtbe qXw7qvmlYpeP5t0w+zDoW/444O+HunWY4iiU5lFHOvGAU+ilhOXV05OP X-Gm-Gg: ASbGncscACZUpR6CwAtfHE8rwDk2WOOKn3GE5yxGMmXjhAdPYa3YYley5tVqVj37K6X 71cJ18i6GLLdCGWjzkcn55MF7P1ODzB63CPvgGkymF/wuNUDY8Kq0NIbWqKEFraEFI9p0oQcZkH p9HGwObXB2bSzKe399k+O2+nreXV67ZQQgdUu0ixXJHUuxdfQP8Y6jnp54wEmgebihjIe8sc0fn mORjrWBTEFsp3fxe6VtnHz9bb2a+0JfKXLpk4JQE8IdrSZS0dE+E8VUo3lc7WWHXQbDEV+y7BWz DNorkT9aMtTM7HjykEKst3lhF53kYn2ugRi1lA/vhA== X-Google-Smtp-Source: AGHT+IEwQQmGG7JmanYi87opGtIkboqE4/2lSSj8MW9omCOguF2wAB+ABqXp7QIZHS0yFQUlknSPwg== X-Received: by 2002:a17:906:c103:b0:ad8:741c:c527 with SMTP id a640c23a62f3a-adb328eca22mr1253781466b.6.1748860610879; Mon, 02 Jun 2025 03:36:50 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:3::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5d82d6fdsm772618166b.49.2025.06.02.03.36.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Jun 2025 03:36:50 -0700 (PDT) From: Breno Leitao Date: Mon, 02 Jun 2025 03:34:41 -0700 Subject: [PATCH net-next v2 1/4] netconsole: Only register console drivers when targets are configured Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250602-netcons_ext-v2-1-ef88d999326d@debian.org> References: <20250602-netcons_ext-v2-0-ef88d999326d@debian.org> In-Reply-To: <20250602-netcons_ext-v2-0-ef88d999326d@debian.org> To: Breno Leitao , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Tejun Heo , Andrew Morton , Shuah Khan , horms@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, gustavold@gmail.com, Usama Arif , linux-kselftest@vger.kernel.org, kernel-team@meta.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=4242; i=leitao@debian.org; h=from:subject:message-id; bh=nvE9yPETJ0cMSZMbyble0XWiAJ5+Ig2FHrelAm52G1A=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoPX6/q3dg41fc1Rwz0Jt3W6QWkdSlDXNqTODPi lYehKSg/oiJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaD1+vwAKCRA1o5Of/Hh3 bRHED/4yceVRRbgMWjujBTzXh/hPqv4DOjexxQ8uzdHE5H2wg5vV8HigfT5i2uFnlek72GOFmum spw2WEteAt6WCSkAXrUgiM/iaaERSSd5BVLQvxyemqJKY1+/BwLmOH/NcBt87t0lJOm/NdqB6iP er4zEzx/y8itP14SZXAI8CMymqTcA3OQ59jFQMxXvv6MUHU2hcS7DH7tq4dWtrWvhG/U+ERVeom DK6Sw4OkTHyxeSr9bbr4WCEUnmXmNkUBtQESvpMTBrjyJykTFTuNAKky66VJARaxH/P/DvXxrmf Sahnl4SPgOPprwO3LD3iD6q/EWzUD56Bs+fAPVeWYHhZA0hfCg7lCnUX+y9/nRLkJzqUp+T80EY koMhwcrEslmd0W2HVegKNIDFDUX5MBNEohtUHf6dl2FOZu0QkdUEHFrCcGLR3g08cR2//PBCIZO dYHIk3up7GXtLNLrdCfV4fBDlnGVoWQh2Zpd6yWMlZAJOiatN0vAfptjHMdeF12XBGlHygZe6im l1UeQRu45v/nSVT9emFpcqxnidgY8iTQZ9i6/Rs2dVXD/bn3uWsGDnhO6sfwANnwAz07nzRmS6Q naGmYN8HW0URxbsrI+9+1S78XPj31nK/u+l3qAPJtIfUUmwU2z56k6QPpLmgaRvUNpip+Ze2r0z 5ntGgo46p/Y/Iaw== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D The netconsole driver currently registers the basic console driver unconditionally during initialization, even when only extended targets are configured. This results in unnecessary console registration and performance overhead, as the write_msg() callback is invoked for every log message only to return early when no matching targets are found. Optimize the driver by conditionally registering console drivers based on the actual target configuration. The basic console driver is now registered only when non-extended targets exist, same as the extended console. The implementation also handles dynamic target creation through the configfs interface. This change eliminates unnecessary console driver registrations, redundant write_msg() callbacks for unused console types, and associated lock contention and target list iterations. The optimization is particularly beneficial for systems using only the most common extended console type. Fixes: e2f15f9a79201 ("netconsole: implement extended console support") Signed-off-by: Breno Leitao --- drivers/net/netconsole.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 4289ccd3e41bf..01baa45221b4b 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -86,10 +86,10 @@ static DEFINE_SPINLOCK(target_list_lock); static DEFINE_MUTEX(target_cleanup_list_lock); /* - * Console driver for extended netconsoles. Registered on the first use to - * avoid unnecessarily enabling ext message formatting. + * Console driver for netconsoles. Register only consoles that have + * an associated target of the same type. */ -static struct console netconsole_ext; +static struct console netconsole_ext, netconsole; struct netconsole_target_stats { u64_stats_t xmit_drop_count; @@ -97,6 +97,11 @@ struct netconsole_target_stats { struct u64_stats_sync syncp; }; +enum console_type { + CONS_BASIC = BIT(0), + CONS_EXTENDED = BIT(1), +}; + /* Features enabled in sysdata. Contrary to userdata, this data is populated by * the kernel. The fields are designed as bitwise flags, allowing multiple * features to be set in sysdata_fields. @@ -491,6 +496,12 @@ static ssize_t enabled_store(struct config_item *item, if (nt->extended && !console_is_registered(&netconsole_ext)) register_console(&netconsole_ext); + /* User might be enabling the basic format target for the very + * first time, make sure the console is registered. + */ + if (!nt->extended && !console_is_registered(&netconsole)) + register_console(&netconsole); + /* * Skip netpoll_parse_options() -- all the attributes are * already configured via configfs. Just print them out. @@ -1691,8 +1702,8 @@ static int __init init_netconsole(void) { int err; struct netconsole_target *nt, *tmp; + u32 console_type_needed = 0; unsigned int count = 0; - bool extended = false; unsigned long flags; char *target_config; char *input = config; @@ -1708,9 +1719,10 @@ static int __init init_netconsole(void) } /* Dump existing printks when we register */ if (nt->extended) { - extended = true; + console_type_needed |= CONS_EXTENDED; netconsole_ext.flags |= CON_PRINTBUFFER; } else { + console_type_needed |= CONS_BASIC; netconsole.flags |= CON_PRINTBUFFER; } @@ -1729,9 +1741,10 @@ static int __init init_netconsole(void) if (err) goto undonotifier; - if (extended) + if (console_type_needed & CONS_EXTENDED) register_console(&netconsole_ext); - register_console(&netconsole); + if (console_type_needed & CONS_BASIC) + register_console(&netconsole); pr_info("network logging started\n"); return err; @@ -1761,7 +1774,8 @@ static void __exit cleanup_netconsole(void) if (console_is_registered(&netconsole_ext)) unregister_console(&netconsole_ext); - unregister_console(&netconsole); + if (console_is_registered(&netconsole)) + unregister_console(&netconsole); dynamic_netconsole_exit(); unregister_netdevice_notifier(&netconsole_netdev_notifier); From patchwork Mon Jun 2 10:34:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 893947 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3C59A202C34; Mon, 2 Jun 2025 10:36:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748860615; cv=none; b=UCmP3q6cFw4WX7tdLvf25UVYbk6NdoxuSuiiYq3cvLF1Yq7Kpo2KMJwZ3cLd8GXhpM0JBCZeoG0rprOBwZtOQzbQ7aPKZ30JZdThBB9BUiKJfgVlUfTXV/rTGy0HLYezeuhmXGo9MYdnH20HNb5hfsZJhA8Risx2SXYaKtNd51g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748860615; c=relaxed/simple; bh=4fD26MgQ5lb4J157h0MaYK6UsFfxmQwlwDbLF3g5O2U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fjQjJEM3tvAdmtDAODsLtypR+VJX0q8dv6qF6T8tYLxSIXQL+CPr6k8sieCnf6NvmgG45wN4/gBE17CTZCfIM2igUHIACNjWIPBMxxFt7/c7a7lt5yJwg8Y/3U+s25xclSQzHxWG+jws5ktmTnUsDvJVzZ69jcYIfojlqMlWuLs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.208.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-60410a9c6dcso8703805a12.1; Mon, 02 Jun 2025 03:36:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748860612; x=1749465412; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cx81AE+yKh5cQqt3R1DXjYj022vNRnA5zaqxXKNyhHs=; b=twDYCStcOm3MRQneRAkSswmgumpsa93S+DFpm6DQQtqho+a7Ok0l1KrhKSIAh7TIrF OUskWtIVafz5BN9uJBwlWfVx+EuogrcG0PfXiYPTnZvoF+WLae4urdbQvsv8uW9SicY0 6MsK5fkm5E6Fi01OdBIg1PZTDDXAvomgxmdYTEeKn8xP3lDIAWTyG6HM4GpPlu3ELBtP f4LWyYsKa19UcQ8hGRhZ2SuGI4Y/oYYp6B3PYVDz5J+R2nytWWa+o1X5pI/m1Kc1EY61 RgX58yF149oftcl+jyBdFqm3YcH/DAkKYkI65CKKy6kTKsj0SpxWuolT5WmJFSSR9dij 7gCQ== X-Forwarded-Encrypted: i=1; AJvYcCWx2M/AK/RIKQ6fdMjvoQMLXSkxcEXyccgMt/iQbFWL90luqkIAqGs0tPFKgAPbV20cSqkWbyuShR4q5sc=@vger.kernel.org, AJvYcCX/vX38OSrsCAk76PAgJttizxsF/DFOkp60CNglonxmTKWKkCmiUypq9xfXMtPZuiv2c99aOEPo+j5+q6aM0SsX@vger.kernel.org X-Gm-Message-State: AOJu0YzHfL0CaHbSU+Qc0EhB0WfmzHDMCeoYlzWhr9LJ8VNFo0EZBjaD +7gXBUod2gu5HbtoDkO2BaQMdoHVuWQKAgRjH/BJ0EMuS9SZPCtFGJzq X-Gm-Gg: ASbGncu0dQqLnQXkjMCZ7WHqGPKaOnlg0D8Qi0LIL3MkBWt5uzo94Qy7RDuKYCo4l/l QoXPSB9VibDBLn1zeX7org3JRKdGCNMyqxkZy4LJf7KT4VRGByETFkpy+Mf9qrKNQxj7Lha2Dgp x5wjQH+I2+FHw3BVH460I5qEvi8YigPu4/ha1i6ie/EyHSlgyyqPvxpYITX9cQyKbKOCQsMCkBQ OPgZlO/q+v4+2g90Q57mnzOIdz9Z5cN1dHYFYZaQJYonRflUgzaO6P1JZbZ2+OoE4c3vIP4k97K 0KmdVDsURK9BkDqhBsKEiz6w0JPUIrldhleG8mXdFw== X-Google-Smtp-Source: AGHT+IF09qxRKkGFS3XgMXHPACO1RFby7HBxhKRCrh2dpHrPZwLFYB8SEJpeAppJlzb7IjuyqXNQow== X-Received: by 2002:a17:907:934a:b0:ad8:8529:4f7e with SMTP id a640c23a62f3a-adb3243a48fmr1228517066b.53.1748860612240; Mon, 02 Jun 2025 03:36:52 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:2::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5dd045b0sm783593566b.101.2025.06.02.03.36.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Jun 2025 03:36:51 -0700 (PDT) From: Breno Leitao Date: Mon, 02 Jun 2025 03:34:42 -0700 Subject: [PATCH net-next v2 2/4] netconsole: Add automatic console unregistration on target removal Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250602-netcons_ext-v2-2-ef88d999326d@debian.org> References: <20250602-netcons_ext-v2-0-ef88d999326d@debian.org> In-Reply-To: <20250602-netcons_ext-v2-0-ef88d999326d@debian.org> To: Breno Leitao , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Tejun Heo , Andrew Morton , Shuah Khan , horms@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, gustavold@gmail.com, Usama Arif , linux-kselftest@vger.kernel.org, kernel-team@meta.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=2422; i=leitao@debian.org; h=from:subject:message-id; bh=4fD26MgQ5lb4J157h0MaYK6UsFfxmQwlwDbLF3g5O2U=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoPX6/qORt/303IseM1rl9g9kJT94I4tFJ2i1z6 pJXzcoAYrWJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaD1+vwAKCRA1o5Of/Hh3 bXGBD/0XgIVhEA3toroMJIQ5gHlKW3k3NqWIhIUGXalhTD4Lmx86w394y8SH+WUA/OEdm5uFxbt +NvwFY+68ao/JRTXoYxYfF3G5/+qNsf5yJ9b6YomoDBys2kBBc2zJOezu0Q6C0h6xQTpTmXc4rG Tqy3y4DSGa8R1CO0K9IBXyXBOgo8sQNA21J9ILaltJLfmXYGNP8jwCPmNHCftehwsBM6o2y9y5C N+ZKGZoX455kJCk8vvHRvlxwgqHXAYtJQomL9HQK73uLG6B7asqoEvZsBGKJsMJcB3zdUJofEX9 2dgeVPdihjn7p5d9dTuOLomel6DEOufflwbxCT5VxWByugtaeK4OMr5/MOX4DZ42oftZ5GiCK54 pJMCAdff3W6qpluGGoRJEiap2bSQ/rdh9OXbenRL8fQI90edgFGbcmwfmnAMiDwRlMzDmk/4va6 fyJ4oXH7JrgIzuwOwoeMt3LBFWFYkOslnV1YrE4s3EKo1foNeHeHHhlIFBJo5YXwSzXYMhrGaXi Cwy4/cAAUC12lEpER90sIpuR8DeE0/tgLQMNWNRq3VIbjQp35/cCmz6hQFs8rnVPzlKGW/hnlJL qYkDBzH78qjXJ+Ey3MUKAl8fmZNu0FcOFKiJfVIU7+Tmln7moslyjSDvk8FDHuGq4RTOlOotDEz INdBMTzPao2NL6g== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Add unregister_netcons_consoles() function to automatically unregister console handlers when no targets of the corresponding type remain active. The function iterates through the target list to determine which console types (basic vs extended) are still needed, and unregisters any console handlers that are no longer required. This prevents having registered console handlers without corresponding active targets. The function is called when a target is disabled and moved to the cleanup list, ensuring proper cleanup of unused console registrations. Signed-off-by: Breno Leitao --- drivers/net/netconsole.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 01baa45221b4b..524e717a71e8e 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -460,6 +460,33 @@ static ssize_t sysdata_release_enabled_show(struct config_item *item, return sysfs_emit(buf, "%d\n", release_enabled); } +/* Iterate in the list of target, and make sure we don't have any console + * register without targets of the same type + */ +static void unregister_netcons_consoles(void) +{ + struct netconsole_target *nt; + u32 console_type_needed = 0; + unsigned long flags; + + spin_lock_irqsave(&target_list_lock, flags); + list_for_each_entry(nt, &target_list, list) { + if (nt->extended) + console_type_needed |= CONS_EXTENDED; + else + console_type_needed |= CONS_BASIC; + } + spin_unlock_irqrestore(&target_list_lock, flags); + + if (!(console_type_needed & CONS_EXTENDED) && + console_is_registered(&netconsole_ext)) + unregister_console(&netconsole_ext); + + if (!(console_type_needed & CONS_BASIC) && + console_is_registered(&netconsole)) + unregister_console(&netconsole); +} + /* * This one is special -- targets created through the configfs interface * are not enabled (and the corresponding netpoll activated) by default. @@ -528,6 +555,10 @@ static ssize_t enabled_store(struct config_item *item, list_move(&nt->list, &target_cleanup_list); spin_unlock_irqrestore(&target_list_lock, flags); mutex_unlock(&target_cleanup_list_lock); + /* Unregister consoles, whose the last target of that type got + * disabled. + */ + unregister_netcons_consoles(); } ret = strnlen(buf, count); From patchwork Mon Jun 2 10:34:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 893783 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9215B207DFD; Mon, 2 Jun 2025 10:36:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748860617; cv=none; b=EyzAJbR+q9Dvm+ydcXJeE1O44L2WfOmresPC2nLshxNaDrIqas00MhjldkAhMV+PQ86cejq4i7m2fQX4nQd3Tyc1fsEmCXAm2DpaEl9VcJkdd5VAR8bWhZubjweO3c51d9d+eB37O+yLVtCOkElc3Z3I5gNN6OcN4CWlyDyp5Ug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748860617; c=relaxed/simple; bh=jHYy7SRVw8kOsoUP3YbbqWHPWND2uFc9ZoIIi+7t6Ro=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ncur2epffZKS6O+ZcC/0R0n7xH03B4PU3qmtT4BZbSIivqYOZNfkwysUSOYKcKxKeabB2cV5UJThNF6JyhjRajeHD+0Z1Ac/e0Mtm+mFrAjUfVM9C6LwCrAhOZLKyiq5yIMFbXxIsOicb5gWeqILBBihtMHKQ8CNrSSFloBjuV0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.218.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-ad69e4f2100so632589566b.2; Mon, 02 Jun 2025 03:36:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748860614; x=1749465414; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PNyaaF3I5Jl5gayWQ4TRrlN27mA7lyoB8qwWinq5u+c=; b=wUsIwwF/DAhnbKj8bVWaIY/h7f3KzRVNN07jknHaX5l/gce8W3udsNbJ8R7sTLCUjE 7sCaTl/PwnJkWa5q1GRNJYL3tr2rrZyftv3eVeCmxwOkX9J1YN/X8jtRm4fbpMfA0oyX hDMyIF9TL+tQQY3eSzaX26838Oba98hOxs3KdUlopH0wMKC3Xo81d6DIEw0+OcGijRCJ C/vIQhMMB61WYdMKhBXA06GKIKSdK1+mfgeWDSAvaDrwfL13ldsWeik7ManATunJfBoi zHSV85EtAxjSmsQ5yecxZy6ydOjlNIm8kuuj129wL3vQ8FE6/ag7xVodk5lJKDSf010d l/lw== X-Forwarded-Encrypted: i=1; AJvYcCWmJAmfkaWxCSkGXTJJDd+imKcxjAF8lzcPgwvlGtFyf4+OQmxHCpUNeOpFIOUYUSBpyLcAJ/kUiAELvLE=@vger.kernel.org, AJvYcCXCbm7agkr3pJVBiqyajSB37wm0xF0NWAZf3PEmIH4S279z/CYW+NhB5YtJcvKue2LRiZhZifq+AHrzR/7mRCi3@vger.kernel.org X-Gm-Message-State: AOJu0YzA5IyMbnQWsJDK0XZgjea0D5P/VbomRx8LEpqneS87VW7zpdtP OrmphVmKnmo6MDal4veXSHG8+Bm/b4uq/DRlq7gDa+2z9eR41X4VxVKc X-Gm-Gg: ASbGncuhsaWk3FM6HeBePESQBqshSrI0ubzNV3TA/S2B3eg8gA8nKRbqmzaMw478biE 0fIJoaGBH3w9NI/IrzIDHlNlGNGbIFJ1+cSjLqPu0nQTttGrXGr4ag+B8Jsdj2bdvRod4cqD51h 3GRPstrUS+iyjPa3KDQbu7NmLB68fp+opgDZbDaEkIIYLzta+T9Yy7DVP0LCu0vJYeQJ4zCNCKo xE+iGilfsT1hFrsB5qlFBmlNf36ULqC8LU8n0zSrPduAWonYRJRGiICWR8K0rQk7c+7i73jTTzV aJs8V2Qy573RXBOmRTBv53JedCPQLpKFcTqwA1E79pk= X-Google-Smtp-Source: AGHT+IEErZsEJ+3LgEt1erTRdszgY0LxPb4vNqMSUTo+55ma6tkZjHzCI17HovLcnMSbILIu7u0hUQ== X-Received: by 2002:a17:907:9692:b0:ad8:8621:924f with SMTP id a640c23a62f3a-adb36c28fe2mr1149327066b.56.1748860613569; Mon, 02 Jun 2025 03:36:53 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:40::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ada5dd045bbsm769909866b.118.2025.06.02.03.36.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Jun 2025 03:36:53 -0700 (PDT) From: Breno Leitao Date: Mon, 02 Jun 2025 03:34:43 -0700 Subject: [PATCH net-next v2 3/4] selftests: netconsole: Do not exit from inside the validation function Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250602-netcons_ext-v2-3-ef88d999326d@debian.org> References: <20250602-netcons_ext-v2-0-ef88d999326d@debian.org> In-Reply-To: <20250602-netcons_ext-v2-0-ef88d999326d@debian.org> To: Breno Leitao , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Tejun Heo , Andrew Morton , Shuah Khan , horms@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, gustavold@gmail.com, Usama Arif , linux-kselftest@vger.kernel.org, kernel-team@meta.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=1841; i=leitao@debian.org; h=from:subject:message-id; bh=jHYy7SRVw8kOsoUP3YbbqWHPWND2uFc9ZoIIi+7t6Ro=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoPX6/Vvh+kKzqbAn1lZ8ia6lgWyhg1tBA6YG6R 4NBCybhWIeJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaD1+vwAKCRA1o5Of/Hh3 bVucD/4tRKVUN9jzvtPi5g+YocIQhGCqZGl59sEJdJavc7BbIXkSHmBdp9xS6K96sVFxh0nSBlE qVj/XeK358zTNqpKw+kolGKN3eSlDxiLES3g9jnyMYUzCUwmlVx0IaXtbGOhKYa9I7LK4hgxXly rm167sd79ay0blMBiN/UOGZA2XzFueBwIsKUBiLaFILTvaR+kzbwlK35vacCgl6dAu/iqTa2LKV sbwRWz4ToDNtTLgHOz7lw0+2T5SuAYWx+RKuFpnw3PXtf67VaGbve4Mqzp8MBxkreAD4WmV+MOA TsiFS76DKBS1seYskxyaIa5xSTRPIF7nfoAQ6g4bh5nJrLlndJ2kJbQv/fSoSXfoIENWd129zPi icwipyEiCLVBaZRatgfXUhZV0FlqLaOh9u90sZV4FpEC8bItEc0hBJJ0V+B4U3XedP/TWksH4in F5BTevKpeH7BcfI57/kmANONvG+0iEBNBtiwWYyQnTFoAILRbLhTDTivQ0W+ihejabPxCv/ZNaC koO3oVpnb5iuAyKePzVdj17hwtOxjiaxSosohRtDKUnhdOZxboDI9yn/SIaSDEmStEJUXBvUAG2 MZ57RMlTlIIeK9INRTSRKNCFZs6xbsDHNoMpPmr2dF7YFB0RWZKndmBFcFqsBMR19CoUjtDVNTp qxfiSgC1lHB87tA== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Remove the exit call from validate_result() function and move the test exit logic to the main script. This allows the function to be reused in scenarios where the test needs to continue execution after validation, rather than terminating immediately. The validate_result() function should focus on validation logic only, while the calling script maintains control over program flow and exit conditions. This change improves code modularity and prepares for potential future enhancements where multiple validations might be needed in a single test run. Signed-off-by: Breno Leitao --- tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh | 1 - tools/testing/selftests/drivers/net/netcons_basic.sh | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh b/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh index 3c96b022954db..1b508131a6461 100644 --- a/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh +++ b/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh @@ -186,7 +186,6 @@ function validate_result() { # Delete the file once it is validated, otherwise keep it # for debugging purposes rm "${TMPFILENAME}" - exit "${ksft_pass}" } function check_for_dependencies() { diff --git a/tools/testing/selftests/drivers/net/netcons_basic.sh b/tools/testing/selftests/drivers/net/netcons_basic.sh index fe765da498e84..ada6b899c5282 100755 --- a/tools/testing/selftests/drivers/net/netcons_basic.sh +++ b/tools/testing/selftests/drivers/net/netcons_basic.sh @@ -50,3 +50,5 @@ busywait "${BUSYWAIT_TIMEOUT}" test -s "${OUTPUT_FILE}" # Make sure the message was received in the dst part # and exit validate_result "${OUTPUT_FILE}" + +exit "${ksft_pass} From patchwork Mon Jun 2 10:34:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 893946 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EFDC420F063; Mon, 2 Jun 2025 10:36:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748860618; cv=none; b=ldkdcwz0j/jECoxgKB1kHC2p0U/gbORDSlUvLX/7hLEztmfd/LyL6rc3kF+oRr/RzHj8PCXp0QsfHWJL34KskJ2BcWSqKVfPyGx95zcczwSd9yFY1AyUfQA4ToaLAMrwpunsw3o9KaTeZtUeJQs+6JWhGgf3FE2Vq0lzLohkx2w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748860618; c=relaxed/simple; bh=U1HRi5BPIfFqWuEI1MGDrOmrCChwD+M8uPEKP9QFZug=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qspQAFoXTYTXjn5VVUozxc9f3QgKn5uTtj16Yp0rS6eXPP2+v/7sWZCKw9HeX4eaZKeSexCA1DaNE9a3yN/xPcGkXezFWhKHijCYCn+KH9JWzj7ZzvYEDvDpk4i4lyuLITJEtTjqark9LJ57fLpNQXq85RPqS6bFoU4qlLZ4uAI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.218.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-ad89d8a270fso1101750866b.1; Mon, 02 Jun 2025 03:36:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748860615; x=1749465415; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pXeB4IhrYE0giS9euV0gxoGa7fI1ChwrCarbpGdkqKU=; b=W2X2D6rzLiZRoHgJwfocMwwmfheTloiorS8VUTjWa2/+URCX5mvATbT+toEUTLdAxW a/SR4VruU/Wa2g5x61zNfaqi1zH4m0HBMYYuj2i+lTVdRHQqLeBAo9jnnE33Kp9YACZu QwJEAGWqeYD0SeApreWNRhdKp4SmRjpYoxHx1CIKwQY/kJdfI2/bjxAIeuQBH4NiK4YT iiI9g1EIbVZVONdix1NwrU6zUI6I9qRqkLw6mr6oFe/c6GSvZrbtYHuR6v9fftiJ33al oS2PwmCES4b7gXJmf+MZUKudKbn7xzFYNXuWE8FpFIoKx1O7omHlEZ8Yn/tfCJhP9QnP MskQ== X-Forwarded-Encrypted: i=1; AJvYcCVvrMkqqijH1tSQs9eem9juxL4zgJshAb8dHmR5pno4PtK2RCJWzGPq1VbZFD54FDtLp5jMqBIgnko7/micCtEL@vger.kernel.org, AJvYcCW9QfmqbY4csKjyUVRkjWBIuTruoGM5pvzHxSC/yFNOjXj1VvRLizebYRIwokwbqQ9zBLkhUGEEjn675jE=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+tMxvgOb3cA5CDj+wsK6Y6CWYm33pzhh/zvO/MAtlCj+exJHE VJqDynjscoixzLRkiuA4SoOwHqmCkAn3cdj5bC15K0AzW3xMftmBc8Np X-Gm-Gg: ASbGnctQq+leNlJJySR27f2jiCv+9gk1PA1WbyKtyjhEr4/uPbYZXTk5uuLjqyaiElY hmnVIVipk5dkN78h/Zd6FjVbV37dFi4quW0EFQfRmKmSh7Op5V4j3ALvAbnqmyuIolflhQ+bjTp x08cDFAcBRUidB9s2j1RgnCPcqAs0cGjIpC1zQyCtYLUiNJj8GOemTITIdURTQK9lYYEqt78Aki UI4YPSYD59ntj+VPzzZxIX1TKcLQznSNvXjtelCkO5LSTHjzVXApEUeyZZuMGscOSrX5mEl87HS p4hYf6/9QtDtspuAtPjVxGZcwlib+a0fP8p7p8YFY9E6Bl7d8dXh X-Google-Smtp-Source: AGHT+IHn7vU+rBvLSZJm7s0hF8MXiLY+JAT6UWKfMBWvYyDb9oZWYaTqMmosPAzqCMBa+OTNp6ZXiw== X-Received: by 2002:a17:907:da5:b0:ac7:81b0:62c9 with SMTP id a640c23a62f3a-adb32ca4d4fmr1263874766b.20.1748860614976; Mon, 02 Jun 2025 03:36:54 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:6::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adb35af4456sm573655066b.182.2025.06.02.03.36.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Jun 2025 03:36:54 -0700 (PDT) From: Breno Leitao Date: Mon, 02 Jun 2025 03:34:44 -0700 Subject: [PATCH net-next v2 4/4] selftests: netconsole: Add support for basic netconsole target format Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250602-netcons_ext-v2-4-ef88d999326d@debian.org> References: <20250602-netcons_ext-v2-0-ef88d999326d@debian.org> In-Reply-To: <20250602-netcons_ext-v2-0-ef88d999326d@debian.org> To: Breno Leitao , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Tejun Heo , Andrew Morton , Shuah Khan , horms@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, gustavold@gmail.com, Usama Arif , linux-kselftest@vger.kernel.org, kernel-team@meta.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=4802; i=leitao@debian.org; h=from:subject:message-id; bh=U1HRi5BPIfFqWuEI1MGDrOmrCChwD+M8uPEKP9QFZug=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoPX6/0lNBDPzKUPIPKW+fhdJYu2fn3q4XyfN/P 6rgj/GrqOGJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaD1+vwAKCRA1o5Of/Hh3 bSZUEACuQNdin2wZExk20BPJGCtDxGDmtAuRzo0y/3B1t9xkNJMgHegTXA+/azHZ1Gf/4tZv68i r/m+bMJkJolGLB9jeZMwwJ2kZ5IdqXgmwRGySmsx80+uYVRJnkyrLbGoZ2o4bPKwJTa1Uf2aXGR IHZBsZ/2vNfiQo5LxojMBRur5GgveJ85NHj/hl+MBoaOQBpna7nLdYlUHmvS9ISe8bBB8NiOssE bGsQaEbAumFtK8utoa79js0qAWVwswCktUi7rRBVDUOtg/Huq+m5HxmjUhyXBUDwsIzITa/xWbk hrppjyvGMY6Zb/vCwfw9k+37ObWvtHo8xZ/uPeMLAt97hjgRCyMSQ2g0lTzeurpVX8izavHKVau FaS8FHROtKOHELyAbfP54G/cSyOICIl/VBuSH5fCILOKcpq5rY9DDgq61OZ0n0fUgVo5TfZuKI8 QeyAHwM6NQcRsKTnsI3kxXE7e6dqfBu8ec9XZK0gaKJCvU/WxYRoFyK/MOB3vI7717z5QIqzNzX RPT8MTiUL2jUM1qjJDdjPvkQizX4GB5/z6dPkBNZo49bTICMlFSc+550maPxWbkiKE7D2UVh+5v vIQn332CwwjowQWGNznfpakZS/O65tZdlOb8DO26JVeehTs7L2SeAWmkr7pnR88v57sox5Fl2LT p6qlzl7i+6mthQA== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Extend the netconsole selftest to validate both basic and extended target formats. The basic format is a simpler variant that doesn't support userdata or release functionality. The test now validates that netconsole works correctly in both configurations, improving test coverage for different netconsole deployment scenarios. Signed-off-by: Breno Leitao --- .../selftests/drivers/net/lib/sh/lib_netcons.sh | 26 +++++++++-- .../testing/selftests/drivers/net/netcons_basic.sh | 52 +++++++++++++--------- 2 files changed, 54 insertions(+), 24 deletions(-) diff --git a/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh b/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh index 1b508131a6461..e0bc5927e83d5 100644 --- a/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh +++ b/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh @@ -96,6 +96,8 @@ function set_network() { } function create_dynamic_target() { + local FORMAT=${1:-"extended"} + DSTMAC=$(ip netns exec "${NAMESPACE}" \ ip link show "${DSTIF}" | awk '/ether/ {print $2}') @@ -107,6 +109,16 @@ function create_dynamic_target() { echo "${DSTMAC}" > "${NETCONS_PATH}"/remote_mac echo "${SRCIF}" > "${NETCONS_PATH}"/dev_name + if [ "${FORMAT}" == "basic" ] + then + # Basic target does not support release + echo 0 > "${NETCONS_PATH}"/release + echo 0 > "${NETCONS_PATH}"/extended + elif [ "${FORMAT}" == "extended" ] + then + echo 1 > "${NETCONS_PATH}"/extended + fi + echo 1 > "${NETCONS_PATH}"/enabled } @@ -160,6 +172,7 @@ function listen_port_and_save_to() { function validate_result() { local TMPFILENAME="$1" + local FORMAT=${2:-"extended"} # TMPFILENAME will contain something like: # 6.11.1-0_fbk0_rc13_509_g30d75cea12f7,13,1822,115075213798,-;netconsole selftest: netcons_gtJHM @@ -177,10 +190,15 @@ function validate_result() { exit "${ksft_fail}" fi - if ! grep -q "${USERDATA_KEY}=${USERDATA_VALUE}" "${TMPFILENAME}"; then - echo "FAIL: ${USERDATA_KEY}=${USERDATA_VALUE} not found in ${TMPFILENAME}" >&2 - cat "${TMPFILENAME}" >&2 - exit "${ksft_fail}" + # userdata is not supported on basic format target, + # thus, do not validate it. + if [ "${FORMAT}" != "basic" ]; + then + if ! grep -q "${USERDATA_KEY}=${USERDATA_VALUE}" "${TMPFILENAME}"; then + echo "FAIL: ${USERDATA_KEY}=${USERDATA_VALUE} not found in ${TMPFILENAME}" >&2 + cat "${TMPFILENAME}" >&2 + exit "${ksft_fail}" + fi fi # Delete the file once it is validated, otherwise keep it diff --git a/tools/testing/selftests/drivers/net/netcons_basic.sh b/tools/testing/selftests/drivers/net/netcons_basic.sh index ada6b899c5282..40a6ac6191b8b 100755 --- a/tools/testing/selftests/drivers/net/netcons_basic.sh +++ b/tools/testing/selftests/drivers/net/netcons_basic.sh @@ -32,23 +32,35 @@ check_for_dependencies echo "6 5" > /proc/sys/kernel/printk # Remove the namespace, interfaces and netconsole target on exit trap cleanup EXIT -# Create one namespace and two interfaces -set_network -# Create a dynamic target for netconsole -create_dynamic_target -# Set userdata "key" with the "value" value -set_user_data -# Listed for netconsole port inside the namespace and destination interface -listen_port_and_save_to "${OUTPUT_FILE}" & -# Wait for socat to start and listen to the port. -wait_local_port_listen "${NAMESPACE}" "${PORT}" udp -# Send the message -echo "${MSG}: ${TARGET}" > /dev/kmsg -# Wait until socat saves the file to disk -busywait "${BUSYWAIT_TIMEOUT}" test -s "${OUTPUT_FILE}" - -# Make sure the message was received in the dst part -# and exit -validate_result "${OUTPUT_FILE}" - -exit "${ksft_pass} + +# Run the test twice, with different format modes +for FORMAT in "basic" "extended" +do + echo "Running with target mode: ${FORMAT}" + # Create one namespace and two interfaces + set_network + # Create a dynamic target for netconsole + create_dynamic_target "${FORMAT}" + # Only set userdata for extended format + if [ "$FORMAT" == "extended" ] + then + # Set userdata "key" with the "value" value + set_user_data + fi + # Listed for netconsole port inside the namespace and destination interface + listen_port_and_save_to "${OUTPUT_FILE}" & + # Wait for socat to start and listen to the port. + wait_local_port_listen "${NAMESPACE}" "${PORT}" udp + # Send the message + echo "${MSG}: ${TARGET}" > /dev/kmsg + # Wait until socat saves the file to disk + busywait "${BUSYWAIT_TIMEOUT}" test -s "${OUTPUT_FILE}" + + # Make sure the message was received in the dst part + # and exit + validate_result "${OUTPUT_FILE}" "${FORMAT}" + cleanup +done + +trap - EXIT +exit "${ksft_pass}"