Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp87141iof; Sun, 5 Jun 2022 21:58:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzWFM4214B214CVXgifm7MIcrH3o8Z43wcpd+gNbsUo1MCLrqgP3kVKQGRDBAPVAj4uSagC X-Received: by 2002:a05:6a00:855:b0:51c:27dc:b5c0 with SMTP id q21-20020a056a00085500b0051c27dcb5c0mr1053838pfk.47.1654491506237; Sun, 05 Jun 2022 21:58:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654491506; cv=none; d=google.com; s=arc-20160816; b=Xq2Ztzua53eEFTd6KrX7FxeYOoQDrQRPrX3+BSpsMbVTjr6mOmU4sNFCLU3Nri/MlH BeeHg1htrYq6kZbLUHJHvlgrbRWEIAFLaAFuFkflp99UPMlyvPVMLbdeh48VkfVjdwig b54IlbjePj+VEY/kY6JaUfNMGMe5sd6gBrhgMgR0hqraB6nG9Thbo2iT9IZYGVxrxv+8 TinjCzZhhZCB8gnzfFaIQJDTzPtY5IXRoPALkmf1AopkDcWJsUTHdAK3sh0meCZhugkP Ncw/Lv38kcNvqzsX6bBgqJTo1AQxxKDXneRsIz2x3lOml1kaSzXXRXOfEmmpQkMYpJ1K ahwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=9d7m1DB2JYorAFcfrJRCyYngv/Ipyhp23NdS37Fbtxg=; b=wZ1DJb8kT3swcy9r5mmXL3B9lMg2DHoQc1DD0DILHoxGYyWV6nTn+41CHU6WzjjK53 Qo6HYLBA+exDfAIgxvYnQNzU1Q7IWopXRjx24QJEvKrAhiOQflwxDfdeKv961V7dccub BtNT8jaf1eelhjZdAv826HTAo49eMZWis4+rWnzv2Ui9rcK6aXyMLCq7ePV1VQ83SNTn b+UoG9suJJwD6M3j/yx8uN3EhJ5W172WLXxY8Gayajtzlo/HL945THVV1TS5EvcPM45w rLAfD08uOmCTfoT3jT8MdUTTVjQwcb4f7vKfd2IrjhX+K/jXjwXyVXMVkymvQQ5lZV4p l32Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=URVQb1Jk; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id l16-20020a170902f69000b00161888ee6fesi23053680plg.474.2022.06.05.21.58.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Jun 2022 21:58:26 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=URVQb1Jk; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 74C8A1053C6; Sun, 5 Jun 2022 21:11:54 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344444AbiFCRZb (ORCPT + 99 others); Fri, 3 Jun 2022 13:25:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43732 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344443AbiFCRZa (ORCPT ); Fri, 3 Jun 2022 13:25:30 -0400 Received: from mail-yb1-xb2a.google.com (mail-yb1-xb2a.google.com [IPv6:2607:f8b0:4864:20::b2a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96C2C52B1C for ; Fri, 3 Jun 2022 10:25:28 -0700 (PDT) Received: by mail-yb1-xb2a.google.com with SMTP id z186so14888436ybz.3 for ; Fri, 03 Jun 2022 10:25:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9d7m1DB2JYorAFcfrJRCyYngv/Ipyhp23NdS37Fbtxg=; b=URVQb1JkqaW1ZxUmYQ5sQlIodWx8/3heQ74G3ifWb6OpIziXlv8ER/kur16b8WoQp4 Lc75UyQ3wEz6iiXKQ8UhcNPavNi5XJQbcreWYMbvM5B1SvdDeRX2QhDybf7QiVx3ovoa P9UtVL9f2yrR7ABjofsD/R/Wawv52H4VhdVBY2dYjjOPRr2oet+wr58sqTAgUHoYjoUb QpvYsttsm2TqMFvOve3llhXgR+a3j2q2nJMOxhNJOScXi11csrk7F00sVwfpQAJ//JqB un16nZdFbn+rv+2qfdYf+R1Xsx8fbDZo0yOXaVS9L05xFbaYKY8IaFxLUs5lR0uGl7zz ZZhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9d7m1DB2JYorAFcfrJRCyYngv/Ipyhp23NdS37Fbtxg=; b=f1plc624e3s4p8/jnmtD63LhRLgZEDYrG+AdoOV8EoNSsUw7GhTqUXO3fE0Fe43x6y NqV0BX1afdl2OtypyAY0fyGlrYDSnGLzJjFQ0RVyWF8+SJ91fzB5qRswsxYsfLBToN6R fue3jLa0wda1AZI6ghtFSQWttZtnp5KXNuYoJLfENhAzOsKu7Iud4m68at7HV1tWG5Vt Dr4atcMKDzwy7hkSjH/d7WJehBrA1D1eATsMXCeee8I/2bxSHYzB4oCBGz4xhfMKBiLv /Zvg6S1VKjHnKnHfWqGPqUgrEmlnq7zsPrlnGfceKfcWNqWCdRWykq+copK0ZT0mTkvJ ItSw== X-Gm-Message-State: AOAM531aYZXHulJ//ReBU7zQaY11vmFM5KPWRoLCJJ2YDWsMG0I2ANut 1kGqfvAKvcc4MWpUacmcRLalouvoqmdnj2GzggXAhg== X-Received: by 2002:a25:aa32:0:b0:65c:af6a:3502 with SMTP id s47-20020a25aa32000000b0065caf6a3502mr12290545ybi.598.1654277127473; Fri, 03 Jun 2022 10:25:27 -0700 (PDT) MIME-Version: 1.0 References: <2997c5b0-3611-5e00-466c-b2966f09f067@nbd.name> <1654245968-8067-1-git-send-email-chen45464546@163.com> In-Reply-To: <1654245968-8067-1-git-send-email-chen45464546@163.com> From: Eric Dumazet Date: Fri, 3 Jun 2022 10:25:16 -0700 Message-ID: Subject: Re: [PATCH v2] net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface netdev[napi]_alloc_frag To: Chen Lin Cc: Felix Fietkau , Jakub Kicinski , john@phrozen.org, sean.wang@mediatek.com, Mark-MC.Lee@mediatek.com, David Miller , Paolo Abeni , Matthias Brugger , netdev , Linux ARM , linux-mediatek@lists.infradead.org, LKML , Alexander Duyck Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL 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 On Fri, Jun 3, 2022 at 1:46 AM Chen Lin wrote: > > When rx_flag == MTK_RX_FLAGS_HWLRO, > rx_data_len = MTK_MAX_LRO_RX_LENGTH(4096 * 3) > PAGE_SIZE. > netdev_alloc_frag is for alloction of page fragment only. > Reference to other drivers and Documentation/vm/page_frags.rst > > Branch to use alloc_pages when ring->frag_size > PAGE_SIZE. > > Signed-off-by: Chen Lin ... > goto release_desc; > @@ -1914,7 +1923,16 @@ static int mtk_rx_alloc(struct mtk_eth *eth, int ring_no, int rx_flag) > return -ENOMEM; > > for (i = 0; i < rx_dma_size; i++) { > - ring->data[i] = netdev_alloc_frag(ring->frag_size); Note aside, calling netdev_alloc_frag() in a loop like that is adding GFP_ATOMIC pressure. mtk_rx_alloc() being in process context, using GFP_KERNEL allocations would be less aggressive and have more chances to succeed. We probably should offer a generic helper. This could be used from driver/net/tun.c and others.