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 7F21CC3DA64 for ; Mon, 5 Aug 2024 01:32:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BE9916B007B; Sun, 4 Aug 2024 21:32:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B99D46B0082; Sun, 4 Aug 2024 21:32:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A3A1E6B0085; Sun, 4 Aug 2024 21:32:33 -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 871CA6B007B for ; Sun, 4 Aug 2024 21:32:33 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 09B1741B4B for ; Mon, 5 Aug 2024 01:32:33 +0000 (UTC) X-FDA: 82416466986.02.E7F6BF8 Received: from mail-ua1-f47.google.com (mail-ua1-f47.google.com [209.85.222.47]) by imf14.hostedemail.com (Postfix) with ESMTP id 4F38610001C for ; Mon, 5 Aug 2024 01:32:31 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XDiYDFGR; spf=pass (imf14.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.47 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722821503; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9N5glQdSVR2RR0Hk5zcwnQYnTX6UnuAlGQrqOAoIES8=; b=3YHNLpnHAvPJU1MbuCxXaGd8J62b4F9a9F55U5wS0Spf+GR9q647n7AKHLm1ZNdBephufN e0xkrmidnDgg1rPPUh+tY207KGwmMFzgSSjTC9NM84IAQWYfZyfM361AHFfwyOCIDw4WxI eLaoV2FGRCaq7uogynzx9BdFkKgSUkM= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XDiYDFGR; spf=pass (imf14.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.47 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722821503; a=rsa-sha256; cv=none; b=jlEtOweuWE9a4wMF16ZyrIVhY1m+G2DJUj59RANRCDzEi43vWJIvr0NubWYuysGU7vsOSU ZmijBE4kaNuux/iGANzE5FnLyyf5JWAcVQkodo1vXKouWfzu1unvKC47uUIZ+Dm9CUr2jc gvolqwS5yxgbFoLHIuBcUdC02WSIedI= Received: by mail-ua1-f47.google.com with SMTP id a1e0cc1a2514c-820f7c6eaa5so2452847241.3 for ; Sun, 04 Aug 2024 18:32:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722821550; x=1723426350; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=9N5glQdSVR2RR0Hk5zcwnQYnTX6UnuAlGQrqOAoIES8=; b=XDiYDFGRp09pkeQ+HI/yqXP/PXnsXUzowSmzSr3mrUl49OoF1sg0WsqJP53wfoxPkB s/gQD4In2GU0C3wX8LcXc9dNxntTv3i7+a91fAAfZWEZsH0KmQ2ud56DejWRG0ONj73r jKgt1I6M19RCtllzhT0kDxXQRoaQVAbE8vWxNvpj2JlVC8TXhTTHrn2KphhAnrtS1WZS +oMLCVDICvmVb81zcbhBBzJkipYG2W1KRkk7n5wZyqwF5w6t5JbkyFH3T8tmZTdOLnF3 X9FR8HTSyeeZ5X0uNYCpN4CFzALuXZXIY+q/2ukBHWLMxWERRQix+y79GiVXN2XKskaw u3mA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722821550; x=1723426350; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9N5glQdSVR2RR0Hk5zcwnQYnTX6UnuAlGQrqOAoIES8=; b=SHCTQs+mHmRF0uwAZiPJ+c9SX0r2M9tCwn0ZghTfo4eGiZvCKLzKQfW8RkqqOYtidt L3fe5/d1aqnS7p7vfmHT/oGQHi+c4kUdSiKg/JSV3EYUjUX146KFsCw/DFrh5Fqt1U2N aFxpj2UFr+zjNCOidpw9d7eUQ/PUKx17aQvkHuoH+goF+UoxFJKh+4r5520dJGscfvPR kgLJQTc9wbcEVuowgVgtPXRmp2hxWD1rv2Kj4xTHnABWOllmpFc0iIuQ2vV/COV8bhB1 ycHyAixFwbYgK1leFvekkoVnXemVGU/0ylJ3OIW3KHGKInmatrbpWACJz3MLsnMZ5HW8 uGog== X-Forwarded-Encrypted: i=1; AJvYcCWXAG0koAnje8VtOTAq7drsodpLHS7bqU4V5umEfqcb9O28Rj0wab6dc7lYRsf6ZLKiWcmGNFiZzw==@kvack.org X-Gm-Message-State: AOJu0YzmGhtvermRxzoYBi0E6xxlqxIXkNMVVgWzogFsvsKiG1+XIF3+ 0ehgPFyTdsyBmbFJKyH2ZrGICaGZBH7tZrqtM2C2ptGyJ8/QsVPgcdCpq8UGLauMP3VqFgdQl0d vU3zlFzwnDaWIlC0Ck+uwythfBSk= X-Google-Smtp-Source: AGHT+IHlZ3rFD3g/29XAaqNiQcBTtkHVtg/oK1Vbw8GOa/ClL3c2Z1ULbHrxc5nNLGqMSoO1GysdyfJ90pMhY9vzhV8= X-Received: by 2002:a05:6102:c8d:b0:48f:b1d3:4890 with SMTP id ada2fe7eead31-4945bf33391mr9330717137.31.1722821550250; Sun, 04 Aug 2024 18:32:30 -0700 (PDT) MIME-Version: 1.0 References: <20240731000155.109583-1-21cnbao@gmail.com> <20240731000155.109583-2-21cnbao@gmail.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Mon, 5 Aug 2024 13:32:19 +1200 Message-ID: Subject: Re: [PATCH RFT v2 1/4] vpda: try to fix the potential crash due to misusing __GFP_NOFAIL To: Jason Wang Cc: Tetsuo Handa , akpm@linux-foundation.org, linux-mm@kvack.org, 42.hyeyoo@gmail.com, cl@linux.com, hailong.liu@oppo.com, hch@infradead.org, iamjoonsoo.kim@lge.com, lstoakes@gmail.com, mhocko@suse.com, penberg@kernel.org, rientjes@google.com, roman.gushchin@linux.dev, torvalds@linux-foundation.org, urezki@gmail.com, v-songbaohua@oppo.com, vbabka@suse.cz, virtualization@lists.linux.dev, "Michael S. Tsirkin" , Xuan Zhuo , =?UTF-8?Q?Eugenio_P=C3=A9rez?= , Maxime Coquelin Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: jhdsxrcd1u1ziu6iae3pmfu6d5o8q8ki X-Rspam-User: X-Rspamd-Queue-Id: 4F38610001C X-Rspamd-Server: rspam02 X-HE-Tag: 1722821551-224230 X-HE-Meta: U2FsdGVkX18TvjWrkSV6jQnQt+J8ss+HuKRKXo0LEgseUE3LM1TJPga+HuMMpyHQVlrmhrOvr83bGE7aQHu1OzxqVGkoqQiGxxj+Qhehe3ZJlZK98JgEm/H6ayiPS1fTg1TegbGAShZ0bmoBIz7NMH6LNSAn8X7MGMY16t/WF2/DPWIMgzA13z1s0/xqFLCRFZgrGBqpr0ufJ2iCMTc+/qnmVWBNlhyt6FGhBQx967qgT3RKMkBzjGuUVTTH57E+x9okAo54+0VIOkDdH7X8NiCDCBqq/ZzkkKjgZXYO5E/WT4FPJ1kiQp8FYLARN6b5+OgBtGFFWJybmVJASCGiNyQE9xt1J92/RwB9UV9sQcO6UKZiFe7vhTRjohQrNmfZedjVL8XP/KKhKRuuxoX8PTkePhPZ4GLbnJVAKAlLSghoA5DpmMX3ymkbb4jpO4PvdkrbqyjAqx5v5zAC4SAtvuRHSxFGPkSjB2ENJzGC+6B4SthwRuBTGdjS3LHPVq995yjDjqxNpX8T6Fn8CEjDhtixRI4CFUjnKdkY1oWK0AbCcmqVLm5jPLiYrSGPBXRdgJB8BajyyjI3Ma2uzLi+gtXXpnkOd3UDKndmhc7QkzDXgD6hf77vjlokE+l6CC2gat3balQtGYvfjtc992H7Zq9iWBfrorWoQg+AfSO3HvTyeGoP1fX+kAvJrQP/e10zkfDCnIZjfU4L6P7r0BQlXEL2VfnCYesRjjqCzKNwa+WzKSiHGRltv9xPqd0dlO6r95hSmC0Oj/YzSC0sqgPGTJ0bTyB5JIhMgr6xyBMhdEITpbX2O0GjNNEBRm4mYhF6ZfGsMoeTZEsiREN1kFyGcwVQpqYrag0cWAwZbv8PpZCUQwEfChgzw+WQkA/hCLvoEN0OrLSbUTX+aH0pEt/Jk4fltLl4yt8uqxQQZeJ9Pz2wMyMcIYqXO1WUB5qA4qda5+LDIB+/0EnRXWBOJJd 8Hlmf5e6 klkVOLm0WxUkBVoAE1ghVS6k8OVw/mDtTuXbO2fu4+iarqNoO2as1+m4gdv6ikrUGCpnYMJRcAucVS6O8+yg87X9iYVqLnsLAy2z6kKK1Aq9QzzGIlMv+6+sGQAXcPh7JN/Kycjm7dYr2y/OoTTuOV7xA4F8DubuNLaf7FG2ObdeV6yX57crIT3MNZlIAPWC2rA1x4ZpGACW6Yo5VxFK/NSnX7EYaDttwYUQ2ghTpc6QjzXhHcj9qq/dnwEW7uRFXDlrGULkNMGUn72WH66x+d0GTMLbw39W69zwLJ9Za/2/EJ0M0Qb0aO56hypAnkp8Qh3d+TxtgDJCrhuo26aG2NjtOAC5vE0tWGyoHHt/QJ2oswDX8RrSl7okeVTO5M0294ZGIQQHXlGUtHjmlgIystDjTIHmAaJ1euYkpEyj/ykIRsclj0fg8DpqVExOAaueN6jVWtZTMyMS/lO07D+OI36EFWfbvScV0TNEsWXcH6EY4ZElxrig4buqDtJydY+URzcmlos7jCJBqpb2NK33mxk3kOQ== 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 Thu, Aug 1, 2024 at 2:37=E2=80=AFPM Jason Wang wro= te: > > On Wed, Jul 31, 2024 at 6:21=E2=80=AFPM Tetsuo Handa > wrote: > > > > On 2024/07/31 14:05, Barry Song wrote: > > > Jason, > > > Thank you very much. Also, Tetsuo reminded me that kmalloc_array() mi= ght be > > > problematic if the count is too large: > > > pages =3D kmalloc_array(count, sizeof(*pages), GFP_KERNEL | __GFP_NO= FAIL); > > > > If "count" is guaranteed to be count <=3D 16, this might be tolerable. > > It's not unfortunately, the maximum bounce buffer size is: > > #define VDUSE_MAX_BOUNCE_SIZE (1024 * 1024 * 1024) > > > > > Consider a situation where current thread was chosen as an global OOM v= ictim. > > Trying to allocate "count" pages using > > > > for (i =3D 0; i < count; i++) > > pages[i] =3D alloc_page(GFP_KERNEL | __GFP_NOFAIL); > > > > is not good. > > Right, I wonder if we need to add a shrink to reclaim the pages that > belong to VDUSE bounce pages. > > > > > > > > > You might want to consider using vmalloc_array() or kvmalloc_array() = instead > > > when you send a new version. > > > > There is a limitation at https://elixir.bootlin.com/linux/v6.11-rc1/sou= rce/mm/page_alloc.c#L3033 > > that you must satisfy count <=3D PAGE_SIZE * 2 / sizeof(*pages) if you = use __GFP_NOFAIL. > > > > But as already explained above, allocating 1024 pages (assuming PAGE_SI= ZE is 4096 and > > pointer size is 8) when current thread was chosen as an OOM victim is n= ot recommended. > > You should implement proper error handling instead of using __GFP_NOFAI= L if count can > > become large. > > I think I need to consider a way to avoid __GFP_NOFAIL. A easy way is > not to free the kernel bounce pages, then we don't need to allocate > them again. Let's try to do a fix for this patch as we are waiting for your official pa= tch in mm. I guess, further optimization can be a separate patch later in the driver's tree :-) > > Thanks > > > > > >