From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E203B242D97 for ; Sun, 5 Jul 2026 06:24:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783232664; cv=none; b=H1hdbtgkukki1Nn9O8vVuYPgtBVpr8f6/0p+Q9GFY/9PquRNTok4gUyKqRBBIATdo/vB7HqB8h69U9Tgotfe7Q8XsEftzK64xgTYGcUvJYit0HsA090hV5g/+DPIGbVnaDypauSzvw9UiHvkiQpjnFT4KUq7uiBrEKkeYdqZ2gs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783232664; c=relaxed/simple; bh=+9TAWvzTWO9WfLyoBHbX3BhLS7xPUomJ2jlxAuDHGcw=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=djW487nlQ/lckDksWKkD5p5j4E9dSCtpTdAeMeKiMffNPhD5UgBgMZqlE5z974NG2cvjrmKKmY+MBcM4MumYE2yInI1OzQ5Gy4IOCVK6BEOjRb9h0AeKPj3kF8/+cgU7SLYG9EVPXTjoXg5Vs4FVTsD0F99SiggoO63KUEzaBiA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=HbNhih7a; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=sfQ4TyRY; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="HbNhih7a"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="sfQ4TyRY" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1783232661; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=5WqTwcoPJ/WtCkm4g0TXXc5S2VvR0zVaXDnmLSXwkNM=; b=HbNhih7aK5rCvwUW7ZvzSO+xl8XtHh7EtZTGD/MxO2igO8oJ7NyHzUbHGOSvANWtw6ZZV1 tZNADDMgPNSEUMthlWMegmq0dV0Hjt1Fi9T3FZj1bA0GlXAKUnW8ojP5LdSm/g87qkZBl0 8+6hDCX4j7BOwUBRJgS7bF233ojlgzI= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-536-g2y2-JfmMtica6OzJau8Fw-1; Sun, 05 Jul 2026 02:24:20 -0400 X-MC-Unique: g2y2-JfmMtica6OzJau8Fw-1 X-Mimecast-MFC-AGG-ID: g2y2-JfmMtica6OzJau8Fw_1783232659 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-475e540a0ffso1091971f8f.3 for ; Sat, 04 Jul 2026 23:24:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1783232659; x=1783837459; darn=vger.kernel.org; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=5WqTwcoPJ/WtCkm4g0TXXc5S2VvR0zVaXDnmLSXwkNM=; b=sfQ4TyRYH8tSxWOIzFgs0MFM6J/PnMcO3Oocc4oSEkKuXtWU8aoU1BPdy3UOfYoTq4 V+sQUanoXNv6neaRISlpLsZsA6oi+ctfXepExmp47NtAqsceQwwBY6DbXvHaY4lEk4lY 9FOj7oQO8Nc+YnPnur/nYWQQEzWgCRZS6k334ifSzprtG8nGHU/wuazu3HMD+LCSAZJ4 Pc1afqSXbYEs/dITpT4CI3noJDpvxZEKWZ3v/CrYrAqcKdqfIzNAdk1YIKgHSBhGGqvh G6lokCW+g6oTLzUOAEVfg9oBgsJnV+wTM6oIiKhc1aI+qDx84vBKcU8VAoq9QAGLuJWW sI6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783232659; x=1783837459; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5WqTwcoPJ/WtCkm4g0TXXc5S2VvR0zVaXDnmLSXwkNM=; b=FQ1hNmLO1mfd9tb70+rVZpZuihr5PbkRSEeoNGHQK5fNqpnl7kssg2c7U/JN74AyBe /cjsFr9jWdGEpe3N6LMRGzr7Lrxzfk9icPxUaa2jnUQ82fCqr9aoW0sJWo0UioF8fvlF 1usxogAhiZg/UkP/XpVLpIuFmDyC2NAcgFKhX5BwFT83XDmzPPUDxNU1a9NQe8RYbyau H6esFPLuL8iXa/qxYELZ5DBW6MVxPXVwI6flv1SaSrXY5z0GWQYgsD7XPqU1pp+LQxsh 1iYe4yvPbe3wMaHzJtwT5R0KiL4eo0oipAJZzA4YJaS5J1YHQyA6HDzEDt2fUzdKJhWk R8HQ== X-Gm-Message-State: AOJu0YyOjMzk06wtj2mHLNWgo1o4DwROAi1JQxHGLe4MTKH4PncKYjbh lgYg+yR5I0vaBwkePD1TYWGtg2vdbIhJioJyWx9nGYdEYeZg2FhrblXcVOKZfuKEamRxpej7QIf ri6MgxYCFDEm4kEy55D+Mi27PdRa19PclTAVgmIPdg3ZPHWS+kUTHT0oieUvU1wiEGMH9KwAUBD +2iTdTwyckf/CUOuq/v9zrgOeKYwlkXsMTw0bLz98bURU= X-Gm-Gg: AfdE7cmz4Xv81oiWSGH+SrlhiYUQJkFT7cDt+CQIB5zySjT2ks5jLVae7I8eK4u/9JS Quhk7XcuQw7rC9ncCX3VdUvCzA9iES+lmT7ZshFxzA107D0Dd+Xv3q4i19AuXIjq4wfUHy9y16m Y/ylylRLx1umeEaQfMKJKqoiSAnL/cQRxFHKFEkixytCAqUyCPApbGfoxDR9dIjaDlEN8Zi792C mSZucjbo4mCJFUTKL5W1GicMch3d5ms+SyoKls0UCxjtJE3vE5LCyy62oH8etybAAyP+aPHmHM2 u3d/xaUeCu0J1XJpsLKWHHRJQxsrSVKUQ/H6ymHjwf+1PUK3nADNcr46rcwy8AB/orfBZBvDHy+ 8KRNJIlV9c3ZJzTbDDjOy8umDHs/EkWCT X-Received: by 2002:a05:6000:718:b0:473:a74d:34d7 with SMTP id ffacd0b85a97d-47aaa60de9emr5468870f8f.2.1783232659124; Sat, 04 Jul 2026 23:24:19 -0700 (PDT) X-Received: by 2002:a05:6000:718:b0:473:a74d:34d7 with SMTP id ffacd0b85a97d-47aaa60de9emr5468837f8f.2.1783232658499; Sat, 04 Jul 2026 23:24:18 -0700 (PDT) Received: from redhat.com (IGLD-80-230-68-31.inter.net.il. [80.230.68.31]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47aa0960b06sm12725497f8f.28.2026.07.04.23.24.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 Jul 2026 23:24:18 -0700 (PDT) Date: Sun, 5 Jul 2026 02:24:16 -0400 From: "Michael S. Tsirkin" To: linux-kernel@vger.kernel.org Cc: "David Hildenbrand (Arm)" , Jason Wang , Xuan Zhuo , Eugenio =?utf-8?B?UMOpcmV6?= , Andrew Morton , Alexander Duyck , virtualization@lists.linux.dev Subject: [PATCH v2] virtio_balloon: disable indirect descriptors Message-ID: <73fac8a629fd9aca7bb3265ac243a769c28af25d.1783232420.git.mst@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Mailer: git-send-email 2.51.2.2891.g4157995a80.dirty X-Mutt-Fcc: =sent The page reporting callback submits an sg list to the reporting virtqueue. With VIRTIO_RING_F_INDIRECT_DESC negotiated and total_sg > 1 (which it typically is), virtqueue_add reports it to the host by allocating an indirect descriptor via kmalloc(GFP_KERNEL). This is not pretty: the reporting worker isolates potentially hundreds of MB of free pages from the buddy allocator (reported pages are at least pageblock_order, and the sg can contain up to PAGE_REPORTING_CAPACITY entries of varying orders). As the result, very theoretically, the kmalloc might trigger OOM when we have in fact a ton of free memory. Clear VIRTIO_RING_F_INDIRECT_DESC, to avoid using indirect descriptors. Fixes: b0c504f15471 ("virtio-balloon: add support for providing free page reports to host") Assisted-by: Claude:claude-opus-4-6 Acked-by: David Hildenbrand (Arm) Signed-off-by: Michael S. Tsirkin --- I assume I'm the one merging this? Changes in v2: - Qualified OOM scenario as "very theoretically" (David Hildenbrand) drivers/virtio/virtio_balloon.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 581ac799d974..69160da9cd5d 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -7,6 +7,7 @@ */ #include +#include #include #include #include @@ -1165,6 +1166,11 @@ static int virtballoon_validate(struct virtio_device *vdev) else if (!virtio_has_feature(vdev, VIRTIO_BALLOON_F_PAGE_POISON)) __virtio_clear_bit(vdev, VIRTIO_BALLOON_F_REPORTING); + /* + * Disable indirect descriptors to avoid memory allocation in + * virtqueue_add during page reporting. + */ + __virtio_clear_bit(vdev, VIRTIO_RING_F_INDIRECT_DESC); __virtio_clear_bit(vdev, VIRTIO_F_ACCESS_PLATFORM); return 0; } -- MST