From patchwork Fri Aug 11 09:31:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 134389 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp975020vqi; Fri, 11 Aug 2023 03:02:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE+FETIDqSOpsGf/+nOVXtqeiCTnYMI01jFeghHTdDQtp3A69j9J2LwJe7JgkgYtlZiuBXn X-Received: by 2002:a17:907:7634:b0:992:6064:f32b with SMTP id jy20-20020a170907763400b009926064f32bmr1297075ejc.46.1691748146134; Fri, 11 Aug 2023 03:02:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691748146; cv=none; d=google.com; s=arc-20160816; b=vzy6TFM+GxVMNzTwwFO0rGo8rm6IukTsSSri8TQ/19wDIZ9bfU9EorAo5WWakNBZE2 UY+B95kyNNFAfA1Jqbxr3xjE1YUAAHkXWhujj6+hwSVzZpkhwJILLSWjmE/8BAEFzOZa FT/lz3cN0lP37x7G2VlQPH7g6iAXhPeZKpTvd2Xp3sFObWMpY200JkBLwBHC46CxaoBI NFI0YzitfdguyfBmRWQc7AadpuzbQRemyYY/7STgiGSj4ArvYjmlk9Xb6A2aMzhhbx6E 8ovgF/KGihQC3Hz6MiNosayg0KFfxbdT9VNKyIsoaY3BjlO3LgvqYUkMjAZgQTu4eHe9 o+dQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=L43YRbWhwTIYcqfCAzVUnGP7Ck0Q4Q4ph/jffCizGaA=; fh=lARNQKgH/A2N7L5h0DESovdojDlDpCOkKF5WdZqq0Y8=; b=fTGiZIqH/9NyPMkeIYXogce9PxV68QKOaTD1y9Im2wcuxkTSm4T8l017VtCs9CgG0H kX+31Ug9DgxrAGiyGE7ZC5McUSbdx3hk88jEMIhmoDx7VMEwu9Iuj8Hr2d4JXMr9ueRg EoqpczQsxL6YF/b3/TvtdYuSQJHr/guMo+KpDKpOZKVUsB26X7K7UptA0vJoOw4Np8ZM h8dZLCOoE8O9eTyysu+Tkck1nMamVEl+KANFCEpRczkV6C2gkq5fbenGiL7L5GpYnt0g jhSQL8uumFJoXD8NbnmmkocaaO9xxNA2sRwl5zUiVYbroeeECLw/OxB/O3cfl7eaVxGf iC0w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pv25-20020a170907209900b0099cb29f4087si3164189ejb.264.2023.08.11.03.01.42; Fri, 11 Aug 2023 03:02:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235067AbjHKJcU (ORCPT + 99 others); Fri, 11 Aug 2023 05:32:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38560 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233677AbjHKJcI (ORCPT ); Fri, 11 Aug 2023 05:32:08 -0400 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 56A7130E8; Fri, 11 Aug 2023 02:32:08 -0700 (PDT) Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-9936b3d0286so255805366b.0; Fri, 11 Aug 2023 02:32:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691746326; x=1692351126; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=L43YRbWhwTIYcqfCAzVUnGP7Ck0Q4Q4ph/jffCizGaA=; b=MRgK0cKOFsY5D/MsUUoeGvkSXsRqCLc2vUVPXNHYzNLqc+DCnagH7SHPOvpaPPSrs1 w5VZRslEt2cMFuh4j80P/44x2U4N+Gn12vrJxQuZvQZCzjXHLrUTOzdmwd1PAMiU0JcJ BCstCh6NYC/xYYFFZb4n1EBE+KqG1nsZowzo5quLPQZLARx3jSGK5QsgwuCFZYsyC1tQ 8jx0knjPd8PkR0j/mrFspdgQmLloyRtMTv/iWLbJ7iBdgZK4Cw9RWDI3OTBoGKQJFHWo NFEPrhJldPkQVUE4af/DqwIJwK4lhjJvexrvr725NJkdVi0NQ4ahRiULXWsIl5R4K8dH hCqg== X-Gm-Message-State: AOJu0YxVo8F5gXwzXgtbxsNt86/Puov1TUHCnF9gfmhvqSR52zTDTTUs EsWLYsAVwf2joCA/cMRPne0= X-Received: by 2002:a17:906:2252:b0:991:fef4:bb9 with SMTP id 18-20020a170906225200b00991fef40bb9mr1262660ejr.58.1691746326514; Fri, 11 Aug 2023 02:32:06 -0700 (PDT) Received: from localhost (fwdproxy-cln-007.fbsv.net. [2a03:2880:31ff:7::face:b00c]) by smtp.gmail.com with ESMTPSA id h24-20020a1709063c1800b0098e78ff1a87sm1994148ejg.120.2023.08.11.02.32.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Aug 2023 02:32:06 -0700 (PDT) From: Breno Leitao To: rdunlap@infradead.org, benjamin.poirier@gmail.com, davem@davemloft.net, kuba@kernel.org, edumazet@google.com, Paolo Abeni Cc: netdev@vger.kernel.org, horms@kernel.org, linux-kernel@vger.kernel.org (open list) Subject: [PATCH net-next v6 1/2] netconsole: Create a allocation helper Date: Fri, 11 Aug 2023 02:31:57 -0700 Message-Id: <20230811093158.1678322-2-leitao@debian.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230811093158.1678322-1-leitao@debian.org> References: <20230811093158.1678322-1-leitao@debian.org> MIME-Version: 1.0 X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773926504071113802 X-GMAIL-MSGID: 1773926504071113802 De-duplicate the initialization and allocation code for struct netconsole_target. The same allocation and initialization code is duplicated in two different places in the netconsole subsystem, when the netconsole target is initialized by command line parameters (alloc_param_target()), and dynamically by sysfs (make_netconsole_target()). Create a helper function, and call it from the two different functions. Suggested-by: Eric Dumazet Signed-off-by: Breno Leitao --- drivers/net/netconsole.c | 43 +++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 87f18aedd3bd..670b6f0a054c 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -167,19 +167,16 @@ static void netconsole_target_put(struct netconsole_target *nt) #endif /* CONFIG_NETCONSOLE_DYNAMIC */ -/* Allocate new target (from boot/module param) and setup netpoll for it */ -static struct netconsole_target *alloc_param_target(char *target_config) +/* Allocate and initialize with defaults. + * Note that these targets get their config_item fields zeroed-out. + */ +static struct netconsole_target *alloc_and_init(void) { - int err = -ENOMEM; struct netconsole_target *nt; - /* - * Allocate and initialize with defaults. - * Note that these targets get their config_item fields zeroed-out. - */ nt = kzalloc(sizeof(*nt), GFP_KERNEL); if (!nt) - goto fail; + return nt; nt->np.name = "netconsole"; strscpy(nt->np.dev_name, "eth0", IFNAMSIZ); @@ -187,6 +184,21 @@ static struct netconsole_target *alloc_param_target(char *target_config) nt->np.remote_port = 6666; eth_broadcast_addr(nt->np.remote_mac); + return nt; +} + +/* Allocate new target (from boot/module param) and setup netpoll for it */ +static struct netconsole_target *alloc_param_target(char *target_config) +{ + struct netconsole_target *nt; + int err; + + nt = alloc_and_init(); + if (!nt) { + err = -ENOMEM; + goto fail; + } + if (*target_config == '+') { nt->extended = true; target_config++; @@ -195,6 +207,7 @@ static struct netconsole_target *alloc_param_target(char *target_config) if (*target_config == 'r') { if (!nt->extended) { pr_err("Netconsole configuration error. Release feature requires extended log message"); + err = -EINVAL; goto fail; } nt->release = true; @@ -664,23 +677,13 @@ static const struct config_item_type netconsole_target_type = { static struct config_item *make_netconsole_target(struct config_group *group, const char *name) { - unsigned long flags; struct netconsole_target *nt; + unsigned long flags; - /* - * Allocate and initialize with defaults. - * Target is disabled at creation (!enabled). - */ - nt = kzalloc(sizeof(*nt), GFP_KERNEL); + nt = alloc_and_init(); if (!nt) return ERR_PTR(-ENOMEM); - nt->np.name = "netconsole"; - strscpy(nt->np.dev_name, "eth0", IFNAMSIZ); - nt->np.local_port = 6665; - nt->np.remote_port = 6666; - eth_broadcast_addr(nt->np.remote_mac); - /* Initialize the config_item member */ config_item_init_type_name(&nt->item, name, &netconsole_target_type); From patchwork Fri Aug 11 09:31:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 134385 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp969045vqi; Fri, 11 Aug 2023 02:47:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEQUZzRI58dL88AgOFSSG7Czmqz4kfCyicO1/tzajUDQaWz+edN+BOoa6NakF8Ie0UEUCjX X-Received: by 2002:a17:902:e848:b0:1bc:1b01:8961 with SMTP id t8-20020a170902e84800b001bc1b018961mr1501169plg.1.1691747228043; Fri, 11 Aug 2023 02:47:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691747228; cv=none; d=google.com; s=arc-20160816; b=ZOrV+lAX6PlZCgh2yJUP3+MBQxlf7eWhaoLrZffYeEOWn6P8bOokyiFJbRvA+exxeR lEEZF9dqnhIyugftOrZsZ3UOzuqVuY59ed7YqeINE8yb/p7b1+COqb3xIs7v1zKnrx7e jpWDrXc2GW+qsy9x3qe9gzv42PAmzULwm+c3ZP96TFP6smSX/mkbfM2iynoXpn61XMZA k8QFV+iOVJzs2s1GN6KJ1u7J9IW6bdUBZMVapXyZh4BN8hjrtfL+h92D5cRqkHHyjdwF /jMCPgQzbmuJ6CYBuwPgou2PzGSCgwPbVbI5CzNRvh04MbAEqCxMte8Jfpb/bbxAt6/p Webg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=sIQTnICAWyIOt1Hgjl/8UKT20avhM9A3DXCdWfcHe0s=; fh=lARNQKgH/A2N7L5h0DESovdojDlDpCOkKF5WdZqq0Y8=; b=JomrElS83IelgFOOxoSOA8cKaTDFwzj0xaZ60tZb3jDuIXf6OAIP5K/loQv6eIDfHl Pxjj2I3p0AvFdpG3fG9RLaLHF8EKcl1fEh9eJjuBR4owesXThBPtop47f8nrMtnIyYuB FhEG1dkCVDmY3fybs81/fiKX3OoGSoRj0hCQIl9K6lNhKNievJ9ObNxcQwCUnisPzLzj NmTavhMwDji1JiKJ1meqxI1iTVvS6nhokyQiQzhvB9Jp+VCoduNwnCFtFlVSMVBxWS0T sXmh4GNvDy+OvtmKn4peB28yyRz2GWzJ2uj+pAFOF7TY5iIz2g/7u+klfiX7uzoeVCHk 2hKA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y10-20020a17090322ca00b001bbdb34628bsi3206992plg.289.2023.08.11.02.46.54; Fri, 11 Aug 2023 02:47:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235056AbjHKJcX (ORCPT + 99 others); Fri, 11 Aug 2023 05:32:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45498 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235098AbjHKJcK (ORCPT ); Fri, 11 Aug 2023 05:32:10 -0400 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B48302D79; Fri, 11 Aug 2023 02:32:09 -0700 (PDT) Received: by mail-ej1-f50.google.com with SMTP id a640c23a62f3a-99c93638322so368856766b.1; Fri, 11 Aug 2023 02:32:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691746328; x=1692351128; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sIQTnICAWyIOt1Hgjl/8UKT20avhM9A3DXCdWfcHe0s=; b=WzARiaOWZZK5OzzbZepHRTLwIXGt/TxDu7fP57JAmQ6+s7juPQjn/cSBbyLwJ5Tr72 C2B9Nxi3gEYxQYdYrzBfYeSJbmq8ziulAB/tlQj8uFNeYbjf+gLj6hjcS50asKpcuPP7 kWQJjRRcJsI2cDXuJl/feYLzbW1CHbaBciyHrH8rqSAdLDV+98tilNSzdUNaS3ty0tnx tIqZCD9qWq0udTo2oA24KBV+2GQLateZkSOZb5U1ds2VRP5PDqrQxQhpRSLOSD2WpO7H 9fWcj06fJckvLTQZ2zfBCH56s+dedUwNxb1QrpF4KdKYUSuTcbFfHV6zcDpFBOwzus+6 MF4A== X-Gm-Message-State: AOJu0YwCJGdVSEy+zxnuUUZG/clUD9sM6PE87n6RJ5xg4tUe6Vy2DZhO lwCLOt0NbgCA2HasBjVmfzY= X-Received: by 2002:a17:907:2724:b0:994:1eb4:6896 with SMTP id d4-20020a170907272400b009941eb46896mr1644514ejl.25.1691746327975; Fri, 11 Aug 2023 02:32:07 -0700 (PDT) Received: from localhost (fwdproxy-cln-000.fbsv.net. [2a03:2880:31ff::face:b00c]) by smtp.gmail.com with ESMTPSA id b12-20020a170906660c00b00992c92af6f4sm2029350ejp.144.2023.08.11.02.32.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Aug 2023 02:32:07 -0700 (PDT) From: Breno Leitao To: rdunlap@infradead.org, benjamin.poirier@gmail.com, davem@davemloft.net, kuba@kernel.org, edumazet@google.com, Paolo Abeni Cc: netdev@vger.kernel.org, horms@kernel.org, linux-kernel@vger.kernel.org (open list) Subject: [PATCH net-next v6 2/2] netconsole: Enable compile time configuration Date: Fri, 11 Aug 2023 02:31:58 -0700 Message-Id: <20230811093158.1678322-3-leitao@debian.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230811093158.1678322-1-leitao@debian.org> References: <20230811093158.1678322-1-leitao@debian.org> MIME-Version: 1.0 X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773925541296567674 X-GMAIL-MSGID: 1773925541296567674 Enable netconsole features to be set at compilation time. Create two Kconfig options that allow users to set extended logs and release prepending features at compilation time. Right now, the user needs to pass command line parameters to netconsole, such as "+"/"r" to enable extended logs and version prepending features. With these two options, the user could set the default values for the features at compile time, and don't need to pass it in the command line to get them enabled, simplifying the command line. Signed-off-by: Breno Leitao --- drivers/net/Kconfig | 22 ++++++++++++++++++++++ drivers/net/netconsole.c | 5 +++++ 2 files changed, 27 insertions(+) diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 368c6f5b327e..55fb9509bcae 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -332,6 +332,28 @@ config NETCONSOLE_DYNAMIC at runtime through a userspace interface exported using configfs. See for details. +config NETCONSOLE_EXTENDED_LOG + bool "Set kernel extended message by default" + depends on NETCONSOLE + default n + help + Set extended log support for netconsole message. If this option is + set, log messages are transmitted with extended metadata header in a + format similar to /dev/kmsg. See + for details. + +config NETCONSOLE_PREPEND_RELEASE + bool "Prepend kernel release version in the message by default" + depends on NETCONSOLE_EXTENDED_LOG + default n + help + Set kernel release to be prepended to each netconsole message by + default. If this option is set, the kernel release is prepended into + the first field of every netconsole message, so, the netconsole + server/peer can easily identify what kernel release is logging each + message. See for + details. + config NETPOLL def_bool NETCONSOLE diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 670b6f0a054c..3111e1648592 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -178,6 +178,11 @@ static struct netconsole_target *alloc_and_init(void) if (!nt) return nt; + if (IS_ENABLED(CONFIG_NETCONSOLE_EXTENDED_LOG)) + nt->extended = true; + if (IS_ENABLED(CONFIG_NETCONSOLE_PREPEND_RELEASE)) + nt->release = true; + nt->np.name = "netconsole"; strscpy(nt->np.dev_name, "eth0", IFNAMSIZ); nt->np.local_port = 6665;