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 C9383C6FD1F for ; Wed, 22 Mar 2023 18:37:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4E1F06B0071; Wed, 22 Mar 2023 14:37:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 491CE6B0072; Wed, 22 Mar 2023 14:37:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 332966B007B; Wed, 22 Mar 2023 14:37:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 20BC96B0071 for ; Wed, 22 Mar 2023 14:37:05 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id EFFE6A0489 for ; Wed, 22 Mar 2023 18:37:04 +0000 (UTC) X-FDA: 80597391168.29.23B0CD7 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by imf27.hostedemail.com (Postfix) with ESMTP id 23F2540011 for ; Wed, 22 Mar 2023 18:37:02 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=aU6w9ZbU; spf=pass (imf27.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=lstoakes@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=1679510223; 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=StzG7MvS76Lz0lBTU33p2jJvbMwPuAHgPRJM3LdxuNs=; b=eAabUwuaxbZWkGZwCPyBmXF1NSuF2SKi6VVxuPxAcngDlVdfJFM/DHMQNLWWDg2NZUXL9K y9UEVw+d1HJpK6Zu8KvB+yB2aJe9gNqYfy0kNsmL4MeFksexdjyWJW+A/cpzrdJKyrfQIM Q8OoakcmeWIiTPBMoMneWBSWc+3kr5s= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=aU6w9ZbU; spf=pass (imf27.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.41 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679510223; a=rsa-sha256; cv=none; b=64fNakrU4/ANprjCzmJv7gNDLez/Ju8UrqC+F72gJBLQ2WZt5Ncq6/npz4U9LWbY48xQJD TbHjJDG+Q3AIk3jSpPyBsbQR/YhgNDDvDBokDlxzuFOgyzHqPn3KKnFF10WNh13iTSVVoL nB6M22vWqimKzXQpEkNki3POom3n9ik= Received: by mail-wm1-f41.google.com with SMTP id bg16-20020a05600c3c9000b003eb34e21bdfso13626130wmb.0 for ; Wed, 22 Mar 2023 11:37:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679510221; 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=StzG7MvS76Lz0lBTU33p2jJvbMwPuAHgPRJM3LdxuNs=; b=aU6w9ZbUGKtdWGcoRQ56YUNSi0tRdOA9APCN7zpdjeqKl+bu6dBkgazF9AsWQvEkhE cNXKG7OV+BYiQwDI3dZARsofXPglM5HBiarE/j0Zq+8afO/Xj0a4mOHzL5qZWXUm5tBv gtV00qDhtPOAlEBU9e6bJ6Wdshde/99A9Qp7UkxvIOgRmlEBzspB6I6oU1e0huMHFYVk YsbgMAZV0eNAaEkaKMu10mcHh/Surpwm19K567I2iuGSEiK58cs57V0I6RhHtWs5NUOI NCFqNmm5p34nAipecCiAsCp10lH8Fe7pcgdV/t0xHzpM7yveh6wW+K6hguLsYwJ+vJ+7 HWtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679510221; 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=StzG7MvS76Lz0lBTU33p2jJvbMwPuAHgPRJM3LdxuNs=; b=R7j/z0SCBUB1C/qPSFf6QV7h5BufSTTsQRJq9fdgCwpNfAYxhnCMlSH0kRo+pQ5S9+ jlrMd7f46jtxX10igBiV2C+B8+7rg/PubzDThgNKooRhNMBHzUjIl663WpMO6dHBHMbU ohBf/3yWInYJU4beIIvqcUY9Tdygh8Mwplv5qcvPbNQTDrKAdF5XXtDT4GNlSQJUBjQm DaFFygTZuqKa2MhxkRA8NB5ISrcxnLGEVC8GhisLpeOzbYmh3YpAMOSllhO6HUlOVkbc IkbXRQxh8xA5hzQhoSTC4wxoS38WMzWuh2nYMGQLAgSXKKAPxIC21sM49rLm2tIezDIg dZ2A== X-Gm-Message-State: AO0yUKU9LlfDmKeOib6ScrPKtRomFHLYHpTwIER+1pQtUF6TFBpd1h0Q akFdGRvoQWQwHhG+nu8sBDI= X-Google-Smtp-Source: AK7set+hKMIITZa3MkGfMXD93+CnbtF/QA2NO2suRtRzNOKQkYMslJNwGhDl52TL2tdQ06VsoWUTSQ== X-Received: by 2002:a1c:7c18:0:b0:3ed:8bef:6a04 with SMTP id x24-20020a1c7c18000000b003ed8bef6a04mr393679wmc.27.1679510221426; Wed, 22 Mar 2023 11:37:01 -0700 (PDT) Received: from localhost ([2a00:23c5:dc8c:8701:1663:9a35:5a7b:1d76]) by smtp.gmail.com with ESMTPSA id g14-20020a05600c310e00b003eddf30bab6sm11699959wmo.27.2023.03.22.11.37.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Mar 2023 11:37:00 -0700 (PDT) Date: Wed, 22 Mar 2023 18:36:59 +0000 From: Lorenzo Stoakes To: David Hildenbrand Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Andrew Morton , Baoquan He , Uladzislau Rezki , Matthew Wilcox , Liu Shixin , Jiri Olsa , Jens Axboe , Alexander Viro Subject: Re: [PATCH v6 4/4] mm: vmalloc: convert vread() to vread_iter() Message-ID: References: <4f1b394f96a4d1368d9a5c3784ebee631fb8d101.1679496827.git.lstoakes@gmail.com> <3e2d1f69-5cd8-8824-0a2e-a1c2c9029f66@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3e2d1f69-5cd8-8824-0a2e-a1c2c9029f66@redhat.com> X-Rspamd-Queue-Id: 23F2540011 X-Stat-Signature: pw437b8y5b653ftx83mp7f9ox934xqmd X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1679510222-967954 X-HE-Meta: U2FsdGVkX1/GzlZdJh7gpadOdjv8wLlqWqWQmOVquXNdlPnrNej9m2VWd69xsETMWtRt+CjJcEsXS3MuDgxpDV7C17LOGMva2S4J7AXdZlYEWZJefM8to9aX+eBbPzKBr3bRAE8kfSEY5dcFQSaARBx0qGdJQ5yx8EstnmtVFjsK1/2OdhItsj78DZXqQgPgQwXHNaVjtprTWrREdyKxJDBO/190qEzAE/CmM6BHVYWHbGS2DLB0+Kk10sE6wFCnzRs/tiO3nlZbDTh9iU9iymrBdmQhCnQ57vo+EaIqCQfwv1kaGWMDr6/fR3ttfA7cM3R1jluTKH//rBNnFPwMkrsI+cdx+eNxrh2ptSMds4J2/e2d32EXpSBcpxwHOkzXVnG3AeR/Fi0UUWNAtHVf4Z6i6fv+vCL/vQI+MA92zu28Qsc3DE6Loty+fPskowCG05/YOdIvp5ufqfLUlBOzDlJdJ3HlA2coXywCzNQkNtNVSgCkGMUTM0lz0ARdXWQxdDgWCn0zeKe52TWVzro8XlZFz2fJsc5cZchGjNGVicdobnRIG3Mdzjawc4jKDdOOfRD4k/foF+kcFnN/24vR5XabLFLpYEDaFeRzVz0ll8HAP3ib2hOYo4EuboR+Yyv+UKfhkYMK1l+u6nvYrXO4UH7UFBl0YQFDW8M/U5Vi9erkmQTtXNvKs2feiTUdcngAjXIvf8UqL3DDj3L8skzIG4bcrVbviX7eUH+p4Aml/REjzGos7wVzi2+mweiGFIksRY6SlkvLnhaCGOOjvrGtycXoeROnvY6Ml9gI3soG3oCJ3Dj3uuscIdQAniC8mL3cshEIuaiK1FDKl+2HM+TWjUpDHTMnIlylm3i8cHHArM8YDRibveYr3bdWQOnm1x364S51E7y09MqSREGLNlHgg5a5vjCzDUjGIK+pbQUscu6rAlcq8LbI+LYTq5qLigIWO786MAFMpuz/VHyv/kh IVtenLV9 KcHIhmLJB2e2ktoUQse3QTpXz0mcbIQJKrDbbZVYMwz1G5dADde/3gcCt4jZv2liUgPrChDQJNrFBGernWLSJKotnkxM1rlx7kmPJmEAeCEp43NXyFDm/QZKKGWhDuzUST5R43KgEYBlGW2G9+kWOabk8DN9KaZws2R4h+Pv8WUXVTJ28qoxAdwJgYbvLnb/DSRg81Nc6/mUd8JRk62bu7MLSqjQG8Dm9rH73Ta756rdqrPH1MCPHIjYbNGt+ht+OJVJjwS1+VnT0J06VokVI9lLv7kTzScmv3fyHJxdKyvYn2zZEu64KRWUelF9OIbBzoHqxaAG9+HfqUYQJQdDG2pKSoQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000006, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Mar 22, 2023 at 06:02:34PM +0100, David Hildenbrand wrote: > On 22.03.23 15:55, Lorenzo Stoakes wrote: > > Having previously laid the foundation for converting vread() to an iterator > > function, pull the trigger and do so. > > > > This patch attempts to provide minimal refactoring and to reflect the > > existing logic as best we can, for example we continue to zero portions of > > memory not read, as before. > > > > Overall, there should be no functional difference other than a performance > > improvement in /proc/kcore access to vmalloc regions. > > > > Now we have eliminated the need for a bounce buffer in read_kcore_iter(), > > we dispense with it, and try to write to user memory optimistically but > > with faults disabled via copy_page_to_iter_nofault(). We already have > > preemption disabled by holding a spin lock. > > > > If this fails, we fault in and retry a single time. This is a conservative > > approach intended to avoid spinning on vread_iter() if we repeatedly > > encouter issues reading from it. > > I have to ask again: Can you comment why that is ok? You might end up > signaling -EFAULT to user space simply because swapping/page > migration/whatever triggered at the wrong time. > > That could break existing user space or which important part am I missing? > Actually you're right, this is not ok. I was being mistakenly overcautious about spinning but in actual fact I don't think this would be an issue here. I will respin with a while loop so under no odd timing circumstance do we break userland. > -- > Thanks, > > David / dhildenb >