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 E5EA7C71136 for ; Fri, 13 Jun 2025 18:31:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 83FE76B007B; Fri, 13 Jun 2025 14:31:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7CAE26B0089; Fri, 13 Jun 2025 14:31:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 692436B008A; Fri, 13 Jun 2025 14:31:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 451416B007B for ; Fri, 13 Jun 2025 14:31:31 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id B82AF1A0FBA for ; Fri, 13 Jun 2025 18:31:30 +0000 (UTC) X-FDA: 83551220340.11.40064F6 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf13.hostedemail.com (Postfix) with ESMTP id 5A9BC20004 for ; Fri, 13 Jun 2025 18:31:28 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=BiD3JfXr; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf13.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749839488; 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=ABrGU8rVjmHN2cPq2PVD204TdB4R7E4BJeclzHtUZeU=; b=ezBLPuRLW00o69C9j0BCX/pEQN5izjaH6/JNIvYJgajODwRIPd3MqV1UC0O+9Rlss02vgA eQrGmy/M3rFCqVuSVXFSStd2cygmLz4PjLs4oOZwBlpMmkGscHyu4Q+S4h4BUVXgJhVbti x1gD1u1gtEu7rSCP2eSAsdBx5hSUQ4w= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749839488; a=rsa-sha256; cv=none; b=1OhPcvoQJJ60ylAY0zsSEEzMHP+qWgoXdyGG9kuNRxS6Hkhel7VHFCD8VjV0E+q/LzkQaR IHlyeKkMtCLioSEV8kKQn8kEZShRED9/hXj6C/HlZg0yCdGD1Z9K58laP+OSSpqgFEZBdU Tpe1Bd9JQL29ksNg/zJGV+vlVSkH2iU= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=BiD3JfXr; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf13.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1749839487; 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: in-reply-to:in-reply-to:references:references; bh=ABrGU8rVjmHN2cPq2PVD204TdB4R7E4BJeclzHtUZeU=; b=BiD3JfXraD/5dL3k5/Ekyq+qIAp5wcRkH1qxq2gkRBnFJUN/t1WU70SP8XF4jjInBicfis W2z68xG/JGyaPzxQh3M18rw8wB9YyNl0lYJoTBWq3t63+fjIImf6S3vw8NFXJ26SHOLIRf RMPB/gdyWRLn94a2gra7AKSP0OUuEP8= Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-303-3_6vri2WPtCsMfPd_DPVOg-1; Fri, 13 Jun 2025 14:31:26 -0400 X-MC-Unique: 3_6vri2WPtCsMfPd_DPVOg-1 X-Mimecast-MFC-AGG-ID: 3_6vri2WPtCsMfPd_DPVOg_1749839486 Received: by mail-qv1-f69.google.com with SMTP id 6a1803df08f44-6f0e2d30ab4so42988846d6.1 for ; Fri, 13 Jun 2025 11:31:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749839486; x=1750444286; 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=ABrGU8rVjmHN2cPq2PVD204TdB4R7E4BJeclzHtUZeU=; b=IxNz1pslDnOGMQw64sH6TzlAsL5Nv0yqFDx9BWI0QcJ6Y3hUs6xcQOdOH3mJwq6VxY RZddaP6H2Nx1pxL7GbUzn/MEKSoirNnuUfFt0M/828IuipZuPVH774CoX9nTK2C9vwS0 JjWEZvopvUYIV2/9wr1+cUFaJtd5erki3E9l+h6A0ABkkhUj7XLfpGmO34H15jRnMSf9 7sB41Qi9XBT4FNo6yAJ99EaFoDAv5PF80V6fjG0XdK5GAfwSMgoKAKlVaJ18Pl61+kur klfUbBz3cTsplQGdW1U65edTC97AWsua9UJ/dnRNlWowBkk5lJZRqixWlBSzRkWYI8b1 mQrQ== X-Forwarded-Encrypted: i=1; AJvYcCWYXcWv9zNpgWRgjaMfVucuhZynuCqfp24s6BEG+tQIB0Pv+uO443VbXPWMoTWhnwuCvD/zvLI3vA==@kvack.org X-Gm-Message-State: AOJu0YztqnVZwAOSQ+1ziglwOeZqIvF2etiZfjsFqwLhmTtsMlpSFNI9 q0MdJNOwmFaH3yvnV6tPjbBo0TL32Oc0u5xD1P3uRe0Ws4Bl3r8iFzVILBfJijJcTrs3m0qGLpM qJ4IVwWXAUB2rUcxwUlhi2xCABRlOXbJiJjKnoOpQ5bL5tD9lC/n5 X-Gm-Gg: ASbGncuQB1vWgYeUvMebUq6DrVypXtXBrCRMJxXDaqsxb1Ntyu9blA2ULwS+464q0O9 dFOewMPKpf92CA5UB3ZXZdxK27U7UHKmDaiZgWO4Jr1Pi2ITk3f94ltp1hCOfzP0pIBFDZULgne 0uHibtpzHhKXtYuCSiTFC9bw7naPN1iP3kSaoHIKlF3/dYpqI5TP9FWqu/qu3KCQCsEd9/r77Gs /i75mFNNZvbmzySTW7kTQE3MOoq8uv1bSCINQNwJRk2MpMVnnjDe4kmVx0XhOHYKXzyGi6DGYy4 m/01WkudM2NVNg== X-Received: by 2002:ad4:4ea7:0:b0:6fa:d956:243b with SMTP id 6a1803df08f44-6fb477926d9mr6788216d6.37.1749839485958; Fri, 13 Jun 2025 11:31:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHJOS9hRKQi3Bj5CwhVVbf6JvljFhJrSLc5HsQ6rHSGhKFYSvsg6Z6aF2Ee1Sxv4NazF/xpCQ== X-Received: by 2002:ad4:4ea7:0:b0:6fa:d956:243b with SMTP id 6a1803df08f44-6fb477926d9mr6787716d6.37.1749839485531; Fri, 13 Jun 2025 11:31:25 -0700 (PDT) Received: from x1.local ([85.131.185.92]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6fb35c315cbsm24603416d6.67.2025.06.13.11.31.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Jun 2025 11:31:24 -0700 (PDT) Date: Fri, 13 Jun 2025 14:31:21 -0400 From: Peter Xu To: Jason Gunthorpe Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, Andrew Morton , Alex Williamson , Zi Yan , Alex Mastro , David Hildenbrand , Nico Pache , Baolin Wang , Lorenzo Stoakes , "Liam R. Howlett" , Ryan Roberts , Dev Jain , Barry Song Subject: Re: [PATCH 3/5] mm: Rename __thp_get_unmapped_area to mm_get_unmapped_area_aligned Message-ID: References: <20250613134111.469884-1-peterx@redhat.com> <20250613134111.469884-4-peterx@redhat.com> <20250613141745.GJ1174925@nvidia.com> <20250613160020.GM1174925@nvidia.com> MIME-Version: 1.0 In-Reply-To: <20250613160020.GM1174925@nvidia.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: W0f-bQNkpf_PuilhPBPJJFe-rKnlG4NWCeyCe89pnU0_1749839486 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 5A9BC20004 X-Stat-Signature: z8wyx7ssp3gmoihf1np9bic1csinzwgr X-Rspam-User: X-HE-Tag: 1749839488-674927 X-HE-Meta: U2FsdGVkX1+NXQXk7MzWwKPWHqB2yS/NQs5o07+JlA96GNgacFcb039QlKbfo2iQ8+RqgH9kMeMAhL+13VTZPKcTIeh8oYmv5+GxMe5M7BTkGmmiHYfiYRwiJbmrVPTjUg6uxwmTcqcPzZHscjlvY+JLR6t1Ekn15M5m89smbteTmGTopiX8RbIo1746D21Nr9qtN7Zo8KSXYLwmUcvjMuQKOD6mJdvNjt2gHV8QSTYTymbC/6I12nQ8SEA9CEWXNxS92r+xgguWxIHO1kq5cEVu5+kbrMUuthyRIR9Yy+vikrytv0Oy2/I8EIBC8ZlCjNNQ8FSMc3NCLAMCxMSvANoQoCyY/Qfdde2kxVRbGEr9cAbV4oEZ5r9YIQFwMOfqv5Mh2oWB6Vu3AolsSo91WXlQnyfYlgQdsBFPsCCndhtVdANoORvVfQl7tU2svo6dM3n8xG8H49NCervNLISbgp61NjLMUbe6ql8Mk4stxy/3bw5EezCI/i16guPc5YzR+coGtqRb8SvZzO61RT+miAbllZYML+ieo5pkvUjlf4Eyo4gWYYesaJtnE8nfhOx3deeHvmdAcOwEFaRb2epkL4FfJ4jRHbNYldKkjD2ys7ks0CpqSxcVj/LB55DzLuCCRchoahG3p76gNbhRQX4whKD9TfkWYtu5DX9uejJIn3cpXoD/M32QJVdrIbz1ziSpEDEQKqI1THwOiFUO55WOHwHD0//mztfC2CnMsdl+125pPa8LsgyJLTsJ6bILCNwKfmaEFvR4Wuk6T8Nvrwb98fNTdcAGbBAhGt3CKUMEl3lZvTPcquodYsoyJKrv98ozJf9Zq02IqdGnf/ZHGrQEBi+7bw1k/YgA2eIIixNsdNsOI9a/GxQoAiDHbhc6a8hiIUhBxYxLO8LJTfuMg+GErCwKcpuEt7yR8HA0SOGsJiyEiUqiYwANS7+OckXCHP/9ZMFJD90h9JBD3WhM58P wc0zg3Pn 0+jrImIVCU4u4ayk0B6FTVpa3juZnIRSy4pIbsJMwpb6LWZDEcIpaj/EoidUBiliGk26vbskMfRuZJ6mjlEXBjG3OV02LvhjbrS1pAOpLzfY5qIU7vJtvN5ERC9Iymu7ERdjVNtMhicv0jNzgQ/ow3jFZY8ZweWnbe3LxwGy2Yd4ikYh3gZtDCL1i8edG3O4syh+yIyHcCuWCN+O15VKGEy2eXjbNqGWw4nfQLYS3iEWBmRekuqePmvQD9TIsDyorjcqTS8KANOaApGjtjcXub2OP+nCUyQH6mDqXRcPT70tFLauS0ER14hlVvhknJSmKz4LvDgXjC+ig0QJV2BYbLTmXEKFHhjD0OEZhjUBqooyoOdlmt9Wxb+CNc9Hub23p5MGw44Oq9D7DbCQ= 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 Fri, Jun 13, 2025 at 01:00:20PM -0300, Jason Gunthorpe wrote: > On Fri, Jun 13, 2025 at 11:13:58AM -0400, Peter Xu wrote: > > > I didn't intuitively guess how it works or why there are two > > > length/size arguments. It seems to have an exciting return code as > > > well. > > > > > > I suppose size is the alignment target? Maybe rename the parameter too? > > > > Yes, when the kdoc is there it'll be more obvious. So far "size" is ok to > > me, but if you have better suggestion please shoot - whatever I came up > > with so far seems to be too long, and maybe not necessary when kdoc will be > > available too. > > I would call it align not size Sure thing. > > > > For the purposes of VFIO do we need to be careful about math overflow here: > > > > > > loff_t off_end = off + len; > > > loff_t off_align = round_up(off, size); > > > > > > ? > > > > IIUC the 1st one was covered by the latter check here: > > > > (off + len_pad) < off > > > > Indeed I didn't see what makes sure the 2nd won't overflow. > > I'm not sure the < tests are safe in this modern world. I would use > the overflow helpers directly and remove the < overflow checks. Good to learn the traps, and I also wasn't aware of the helpers. I'll switch to that, thanks! > > > +/** > > + * mm_get_unmapped_area_aligned - Allocate an aligned virtual address > > + * @filp: file target of the mmap() request > > + * @addr: hint address from mmap() request > > + * @len: len of the mmap() request > > + * @off: file offset of the mmap() request > > + * @flags: flags of the mmap() request > > + * @size: the size of alignment the caller requests > > Just "the alignment the caller requests" Sure. > > > + * @vm_flags: the vm_flags passed from get_unmapped_area() caller > > + * > > + * This function should normally be used by a driver's specific > > + * get_unmapped_area() handler to provide a properly aligned virtual > > + * address for a specific mmap() request. The caller should pass in most > > + * of the parameters from the get_unmapped_area() request, but properly > > + * specify @size as the alignment needed. > > .. "The function willl try to return a VMA starting address such that > ret % size == 0" This is not true though when pgoff isn't aligned.. For example, an allocation with (len=32M, size=2M, pgoff=1M) will return an address that is N*2M+1M, so that starting from pgoff=2M it'll be completely aligned. In this case the returned mmap() address must not be aligned to make it happen, and the range within pgoff=1M-2M will be mapped with 4K. -- Peter Xu