From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3BD3CD1297 for ; Tue, 9 Apr 2024 16:18:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E4DC26B0092; Tue, 9 Apr 2024 12:17:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DFE4D6B0093; Tue, 9 Apr 2024 12:17:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CC6516B0095; Tue, 9 Apr 2024 12:17:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AD8A66B0092 for ; Tue, 9 Apr 2024 12:17:59 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 68D811203E7 for ; Tue, 9 Apr 2024 16:17:59 +0000 (UTC) X-FDA: 81990499878.13.616D152 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by imf14.hostedemail.com (Postfix) with ESMTP id 8308410000B for ; Tue, 9 Apr 2024 16:17:55 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Q6KhNzdj; spf=pass (imf14.hostedemail.com: domain of keescook@chromium.org designates 209.85.210.174 as permitted sender) smtp.mailfrom=keescook@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712679475; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=VlcmHNsCwSvCc74TrBcs49hXKJM0udmD4CNSlCrF+Lo=; b=PZvwJ6q175+4/YlJ3mE6BoqrG9vILrArhew+7P2fwL+h0HoPutN4mt2yaauPtIdGOgD0FC BYj1gBFyyoPgzI7+titjnwgD6k2H5HgnDL9PIGXW7+B4/5QKJc0T/ESHt5VYdZO1kSKy4d ds90AxkZMGgUL9HIL2XuFcxFz8fhOXI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712679475; a=rsa-sha256; cv=none; b=0cojG2SvubO6k/cEPpHYcoKgBycyOK8gQRVtGudX7sqoGuKrFwb4Sx6MGhDDnOH+wZ/Inx FCzUeK3sHVK9fECDZ2ejs+o8GOKikCrNbz3MeL5VWe7MxaY+p4oCdKMfNO5HY8lkZTWOvG 5I8PiElHKRBisBpl0udzVAkaZPniAUU= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Q6KhNzdj; spf=pass (imf14.hostedemail.com: domain of keescook@chromium.org designates 209.85.210.174 as permitted sender) smtp.mailfrom=keescook@chromium.org; dmarc=pass (policy=none) header.from=chromium.org Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-6ed04c91c46so3932324b3a.0 for ; Tue, 09 Apr 2024 09:17:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1712679474; x=1713284274; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=VlcmHNsCwSvCc74TrBcs49hXKJM0udmD4CNSlCrF+Lo=; b=Q6KhNzdjWWammUKLjLZf+wlQj5RcZ31qbskhXydamAz7WSnvi/1sFaWJXkT4YLv7qY z/2p95dj1vN2f6qllTgmJL5DHUQGPQ6mPIxXvHfHGwy3sPoqac1Ndb8Q3/tNJaAm/Ta4 2Sx8KPV32LMVaOsHRyUqqQoIYNnpbBJa7R7tM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712679474; x=1713284274; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=VlcmHNsCwSvCc74TrBcs49hXKJM0udmD4CNSlCrF+Lo=; b=YPRskpAdbxMZbgGhxKRHblA9pTT1Tbrnxk+fcGu0ftxeSZbBdd8Q0gvxEj5SiOgAFb uwg0dXRqf+esaBDiKaytyZ/WVttzxmYJcSFL25vGKYL3XCgtHqLD38mpt3y+Y14FFyXQ GjXW8FUTKkKgDfoYk8EN3hF7ygkVx+bXh8SSJ+fzrfD7NG1m9pGMuLEurqlmsot5pywd mzt29noDCtnG8avnpT7qE4OvoSQ7+eqaXD0s7aTwjExydNRv/ptm9SiC+SFMMP5Y6ZzU GlXos3o1oIEHiEhMN+0u9BzhU2r+O9km0tUPkpSzHbwbAGRBlsDnYJr8q7kKKYZujLrM Z9mg== X-Forwarded-Encrypted: i=1; AJvYcCWlGXE4s8/Pen9W70IYW6dNAen68AIoyNV63WX1JyTrIkxERJWVsk44Pvs9XWXgULAdm7RYZTw+W/IGfvBLllGDG3o= X-Gm-Message-State: AOJu0YzkW7ePAbvX+FBaKqq4ULUDcCHQVTOCvaDelpg9rZeAh9QSQI/V 9Go3xtGfMrGRndACwEa972QO4gsgWA91HVMcJbY6tKTsAotvkH4BY7RIaca4sA== X-Google-Smtp-Source: AGHT+IF+HuccTfimdnMNYhgaM6Pzx7wcEOoErnnFz7FQkS1gRTkWP5q8FoX5RgQ6dGyVfovJAJRQEA== X-Received: by 2002:a05:6a20:244d:b0:1a7:a3ba:2bc1 with SMTP id t13-20020a056a20244d00b001a7a3ba2bc1mr405903pzc.15.1712679474281; Tue, 09 Apr 2024 09:17:54 -0700 (PDT) Received: from www.outflux.net ([198.0.35.241]) by smtp.gmail.com with ESMTPSA id y16-20020aa78550000000b006ecda086db2sm8483699pfn.110.2024.04.09.09.17.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Apr 2024 09:17:53 -0700 (PDT) Date: Tue, 9 Apr 2024 09:17:53 -0700 From: Kees Cook To: Alexander Lobakin Cc: Jakub Kicinski , "David S. Miller" , Eric Dumazet , Paolo Abeni , Alexander Duyck , Yunsheng Lin , Jesper Dangaard Brouer , Ilias Apalodimas , Christoph Lameter , Vlastimil Babka , Andrew Morton , nex.sw.ncis.osdt.itp.upstreaming@intel.com, netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH net-next v9 7/9] libeth: add Rx buffer management Message-ID: <202404090909.51BAC81A6@keescook> References: <20240404154402.3581254-1-aleksander.lobakin@intel.com> <20240404154402.3581254-8-aleksander.lobakin@intel.com> <20240405212513.0d189968@kernel.org> <1dda8fd5-233b-4b26-95cc-f4eb339a7f88@intel.com> <755c17b2-0ec2-49dd-9352-63e5d2f1ba4c@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <755c17b2-0ec2-49dd-9352-63e5d2f1ba4c@intel.com> X-Rspamd-Queue-Id: 8308410000B X-Rspam-User: X-Stat-Signature: 6cjbjrr99mr1kbbxuu6hhu6w78i7ricn X-Rspamd-Server: rspam03 X-HE-Tag: 1712679475-353779 X-HE-Meta: U2FsdGVkX19o0H0f3yfT8nyztpN8c7NDHw1X8cTywcZVVVl2vWMsSt6Pm+ZjIUe98XDs9W5yBhNbpVCUgowlw8+vN64lvLC+Y0mrK95JAwhAFPRolOv7wcCcRECYwU21dZEzDfVAXt3mS9r+TOehtltT5GmG/yWQLULB56MLP1BuDDj6JWv8rkQQ/pLH/MKfzw4M1blOaYBo+pjN329jhwxirJDXvr8prW0DUv8z0EYfqFFTcSI2r46b5yvbcwkURoTuTV+uxZVVIJgZOBotgpyaxLlEV5uXMDBHp7Z8Zon6Ajj9gJHa9gDudLxKS/nYv523V0Q+hYRrS5ZaKfeKQ95QzfQpf2ls5hWpFR0XpoVTJ4hABPoGNUrdIoNLMKVTVnQG6Wwbuco50Jp2Ygju9xLSmcRR8mThDWbEmaWt+4ssBBi+HQSN2hDjVOJ4yIbm6hM9SXGlWVQjIg0UhupWfijQaRo7hWERg3mM8xwxLFQAUjQ/izHU34XYh988jfxWGuGizS7F3xX6SCSZzm86WIcHnc7bVa2DkVClfMMYR5sqxzb8h5fjY8lYb2B208Ki+EBILseG+1firWD+fo0sZtypapquscPMYPz/VOFF+3d83uv0EJHkOj6UJrcMWwitXy9E9WAjklW9PT8Y+1CuQAgLm1jozSoOZA4JBCMd12XbYNNCC+cz0BBhTAO/0YsHafUyyC1uNIdknR/5In0L3sDYKp+yrn+9WwFssMPJCag8egskfQLlYpxU49S99Kc6xoiwgSGIpXbQzt4UhJ9Z0EzfKilSLxr8jQMZY5xlc1aiKuXMySZu+lakX5fgBnPPYqMqRnAvc78LcBmWD2D+5zAelqTYT+tgfPrjABnS6jFlu8yhdOAhlMd1I+/ZfyC5PAxCCQp2M9mNi3i1OuJm2RpFEmihU1ZgbIlDqmxINcsNDuUj6hjGxID7kGZNogHS/w96g8zdifaoIqGJsgn u8KH1Uoo 6hbe+tgGndW3Lkh4q6Qi5BF7bdedkzjpfC8cfAsYkprvxo9v+S5xCzKHDQVKoLi3sxSm4zJB/KNY3xcl63NtKZYCHrA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, Apr 08, 2024 at 11:45:32AM +0200, Alexander Lobakin wrote: > From: Alexander Lobakin > Date: Mon, 8 Apr 2024 11:11:12 +0200 > > > From: Jakub Kicinski > > Date: Fri, 5 Apr 2024 21:25:13 -0700 > > > >> On Thu, 4 Apr 2024 17:44:00 +0200 Alexander Lobakin wrote: > >>> +/** > >>> + * struct libeth_fq - structure representing a buffer queue > >>> + * @fp: hotpath part of the structure > >> > >> Second time this happens this week, so maybe some tooling change in 6.9 > >> but apparently kdoc does not want to know about the tagged struct: > >> > >> include/net/libeth/rx.h:69: warning: Excess struct member 'fp' description in 'libeth_fq' > > > > Oh no, maybe we should teach kdoc to parse struct_group*()? > > scripts/kernel-doc apparently can handle them... > > + Kees > Ah, hm, scripts/kernel-doc throws away the early arguments of struct_group_tagged, but I suspect it needs to create a synthetic member for the tag. i.e. instead of: struct_group_tagged(tag, name, members...) becoming members... it needs to become struct tag name; members... It seems this is the first place anyone has tried to document the tagged struct name! :) Does this work? I haven't tested it... diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 967f1abb0edb..64a19228d5dd 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1151,7 +1151,8 @@ sub dump_struct($$) { # - first eat non-declaration parameters and rewrite for final match # - then remove macro, outer parens, and trailing semicolon $members =~ s/\bstruct_group\s*\(([^,]*,)/STRUCT_GROUP(/gos; - $members =~ s/\bstruct_group_(attr|tagged)\s*\(([^,]*,){2}/STRUCT_GROUP(/gos; + $members =~ s/\bstruct_group_attr\s*\(([^,]*,){2}/STRUCT_GROUP(/gos; + $members =~ s/\bstruct_group_tagged\s*\(([^,]*,)([^,]*,)/struct $1 $2; STRUCT_GROUP(/gos; $members =~ s/\b__struct_group\s*\(([^,]*,){3}/STRUCT_GROUP(/gos; $members =~ s/\bSTRUCT_GROUP(\(((?:(?>[^)(]+)|(?1))*)\))[^;]*;/$2/gos; > > > >> > >>> + * @pp: &page_pool for buffer management > >>> + * @fqes: array of Rx buffers > >>> + * @truesize: size to allocate per buffer, w/overhead > >>> + * @count: number of descriptors/buffers the queue has > >>> + * @buf_len: HW-writeable length per each buffer > >>> + * @nid: ID of the closest NUMA node with memory > >>> + */ > >>> +struct libeth_fq { > >>> + struct_group_tagged(libeth_fq_fp, fp, > >>> + struct page_pool *pp; > >>> + struct libeth_fqe *fqes; > >>> + > >>> + u32 truesize; > >>> + u32 count; > >>> + ); > >>> + > >>> + /* Cold fields */ > >>> + u32 buf_len; > >>> + int nid; > >>> +}; > > Thanks, > Olek -- Kees Cook