From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=209.85.218.70 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794248760; b=JWmT57HclVbso8hDpdAT0HWdCuLT3c6idhjs4jAMpmcyzyhABvqnvAobvK/SRekuCi97 +Ly1lYrK7tkraCbDqzmaThZMrEFXxexSvf8298sI4hoeO8P+xU351blN0Y8nybUySbJGx rNgOxtP/rV6cLGDEgHwl6LqSGlzM2OkR9fcWltWzgCUHwqIncYODouN3BRvTHsWKqWK3i SBYbBzhXJCpX3X544SurxkpWryzRHa5brzL9d+OnyVU48d1slUhjnlzu+QbFqq1xLomto hishMgEiGU5bvvKMbvkMAczutkNngsQA8DSzLz0L/etBNXWhIboTeTTeCxEPtNSNxSA== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794248760; h=DMARC-Filter:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Forwarded-Encrypted:X-Gm-Message-State:X-Received:Date:In-Reply-To: Mime-Version:References:X-Mailer:Message-ID:Subject:From:To:Cc: Content-Type; bh=QwEhXQGhncgxAenLKf9FgZtSttnofeN4/QkcfEPx9jk=; b=csnVHuY0tQLWMAa6XxdfMPkADtKPNSx7smSpiFmnAMzzWdesulfwxoqUUv1X24dhrB4D uQTnOTmQLsm+43S3tjWLZgXQXtC6HIQptV/BnbBdnAzMvBNoxYgrnJ1iofKEi2bSESBif AlySd/7kXzQmLZDNsH11XqYt05bpTN+d+tnIbW/YVY6dyWXakX6Q4oag8LkqQl2P59Y6d lF1n12qXs54UJ+X3gzjWiVsBxuDeEJZISJyp1J/Bcr6i1VgvgcJypOVV30RUqKEjPEgYu ZsQNGj0OlkWIcY+v3M8PQJaVWGEh6H3jTzczAUM6Dkz0UVhKoDCvCeDdlr6ruioYhLg== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=google.com; spf=pass smtp.mailfrom=flex--lrizzo.bounces.google.com; dkim=pass header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20260707 header.b=AvIo5Cen; arc=none smtp.remote-ip=209.85.218.70 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 624E7606F3AB for ; Mon, 9 Nov 2026 18:26:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 624E7606F3AB Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--lrizzo.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20260707 header.b=AvIo5Cen Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-c293e604f0eso114725466b.3 for ; Mon, 09 Nov 2026 10:26:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20260707; t=1794248759; x=1794853559; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=QwEhXQGhncgxAenLKf9FgZtSttnofeN4/QkcfEPx9jk=; b=AvIo5CenHwqJzR0/aJvWxFF16Sm33oH5itV/RnAWKoJNiKZaHyjmxs7yggU3oZzKS2 wo1L7TCp83gitouvSBciLM1T2iE0Pr27jaS5tvlvsvWE/8bmY9O7lGn35qsVCmUl/+VH I5e0hWUb8ycsB5gEjdjyvnncJJ/We9yLpkk4vY5KhGsyF6thkS8RNCkaQVvdO3dJrc/b o7npwPhhTJ0hpH91FBqWkuarog07XO6YdY44//RHEU8cWvmU6QGlL6Q2vQ0RYf80PkW2 sJ3DSGi1kV0jIofBK8rjXFVlow++yi4U9cK+y0urrlACc75yW+onGAj7erJHnYg4P/Ku dDNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794248759; x=1794853559; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=QwEhXQGhncgxAenLKf9FgZtSttnofeN4/QkcfEPx9jk=; b=xEaXa8hLDNLL5pLA5NPUd/bajGM5aqbH1GMgC8FC5Nufz86sPb52aIBO91k9n/sEwK UFTKewrA08Nu+dJ50RY4gyOcrCdh3EPgdrvM0BPqV5BvvDG341sdO+FHGsxWpB9mUYpf iM1dwwO3gkvlJR25Xw1YmlUMgDdi+PTqqLNApbnFZZOS1e8GURFCKoSZF8dmBm498A13 5GVzgQIbum+d/fMrRy0rzDpQ1z2St4S8wFXeuTRdCLU+er5l6B413icaSot6kuFcrGJk fi1W4k2TfQfUMHpuM9yceiHlfWx3hBGdM0VMAwXaxfl8a+9n7Kb6CPaEElD4yjmhLK/R YF5g== X-Forwarded-Encrypted: i=1; AL+hErH3bu7E9qp6mh1KY/guhl/AUnFr6o0O1uBJS6EQUgzGTXAbSUd27N1hLOW7oHrQITI+cbSYsniX8GmYYaI=@vger.kernel.org X-Gm-Message-State: APuU4Z+eMIGgMttVLXvGN5SxyD9Gb9RMTfcpm2pxAkUsvdLXJP0KKBFt EN9YbDVFy4OzKUxwcve1NGbs3fnuxiFHC09Yf9mT4Atf9yriJLJ+J7TAoz6pO4T/ZZki0RGlqBM x3+ig8Q== X-Received: from ejcxk8.prod.google.com ([2002:a17:907:d808:b0:c4d:1c8b:9299]) (user=lrizzo job=prod-delivery.src-stubby-dispatcher) by 2002:a17:906:2f06:b0:c41:5e31:5184 with SMTP id a640c23a62f3a-c504951eb65mr12737766b.13.1794248758596; Mon, 09 Nov 2026 10:25:58 -0800 (PST) Date: Mon, 9 Nov 2026 18:25:29 +0000 In-Reply-To: <20261003212241.3432303-1-lrizzo@google.com> X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list Mime-Version: 1.0 References: <20261003212241.3432303-1-lrizzo@google.com> X-Mailer: git-send-email 2.56.0.542.g3ef89b7020-goog Message-ID: <20261109182533.3594984-22-lrizzo@google.com> Subject: [RFC PATCH v2 21/25] net/gve: Use GFP_KERNEL when pre-filling RX rings From: Luigi Rizzo To: Luigi Rizzo , Joerg Roedel , Will Deacon , Robin Murphy , Christoph Hellwig , Marek Szyprowski , Andrew Morton , Vlastimil Babka , David Hildenbrand , Jens Axboe , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Jonathan Corbet , Matthew Wilcox , Lorenzo Stoakes , Jesper Dangaard Brouer , Ilias Apalodimas , Willem de Bruijn , Kuniyuki Iwashima , Joshua Washington , Harshitha Ramamurthy , Alexander Lobakin , iommu@lists.linux.dev, netdev@vger.kernel.org, linux-mm@kvack.org, linux-block@vger.kernel.org, driver-core@lists.linux.dev, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Luigi Rizzo Content-Type: text/plain; charset="UTF-8" When pre-filling DQO and GQI RX rings in process context before NAPI is enabled (e.g. gve_open), use GFP_KERNEL instead of GFP_ATOMIC so page allocation (and CoCo page decryption) can sleep instead of dipping into atomic reserves. Signed-off-by: Luigi Rizzo --- drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c | 7 ++++++- drivers/net/ethernet/google/gve/gve_rx.c | 8 ++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c b/drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c index 6880d1531ba5e..3b13aa4999ae5 100644 --- a/drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c +++ b/drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c @@ -223,13 +223,18 @@ void gve_free_to_page_pool(struct gve_rx_ring *rx, static int gve_alloc_from_page_pool(struct gve_rx_ring *rx, struct gve_rx_buf_state_dqo *buf_state) { + /* + * Use GFP_KERNEL when pre-filling RX rings in process context (e.g. + * gve_open) so PISA metadata init and CoCo page decryption can sleep. + */ + gfp_t gfp = gve_get_napi_enabled(rx->gve) ? GFP_ATOMIC : GFP_KERNEL; netmem_ref netmem; buf_state->page_info.buf_size = rx->packet_buffer_truesize; netmem = page_pool_alloc_netmem(rx->dqo.page_pool, &buf_state->page_info.page_offset, &buf_state->page_info.buf_size, - GFP_ATOMIC); + gfp); if (!netmem) return -ENOMEM; diff --git a/drivers/net/ethernet/google/gve/gve_rx.c b/drivers/net/ethernet/google/gve/gve_rx.c index 81ea800e66e94..89f287b678bf0 100644 --- a/drivers/net/ethernet/google/gve/gve_rx.c +++ b/drivers/net/ethernet/google/gve/gve_rx.c @@ -161,12 +161,16 @@ static int gve_rx_alloc_buffer(struct gve_priv *priv, struct device *dev, union gve_rx_data_slot *data_slot, struct gve_rx_ring *rx) { + /* + * Use GFP_KERNEL when pre-filling RX rings in process context (e.g. + * gve_open) so PISA metadata init and CoCo page decryption can sleep. + */ + gfp_t gfp = gve_get_napi_enabled(priv) ? GFP_ATOMIC : GFP_KERNEL; struct page *page; dma_addr_t dma; int err; - err = gve_alloc_page(priv, dev, &page, &dma, DMA_FROM_DEVICE, - GFP_ATOMIC); + err = gve_alloc_page(priv, dev, &page, &dma, DMA_FROM_DEVICE, gfp); if (err) { u64_stats_update_begin(&rx->statss); rx->rx_buf_alloc_fail++; -- 2.56.0.542.g3ef89b7020-goog