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 352E1EE14D0 for ; Thu, 7 Sep 2023 09:33:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A0071440178; Thu, 7 Sep 2023 05:33:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9B0568E000F; Thu, 7 Sep 2023 05:33:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89F08440178; Thu, 7 Sep 2023 05:33:50 -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 792C48E000F for ; Thu, 7 Sep 2023 05:33:50 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 4DEFE1CAA15 for ; Thu, 7 Sep 2023 09:33:50 +0000 (UTC) X-FDA: 81209289420.01.B2AD8FD Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by imf27.hostedemail.com (Postfix) with ESMTP id 68F0840003 for ; Thu, 7 Sep 2023 09:33:48 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=WDN2pzc4; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.45 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1694079228; 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=fLX7Bq6wnbRD6/SdSFqqliM0JJEUO0FAMrqo0kqc5TI=; b=DG5X01kNFo+5JKjbpDwvWpyzlO6ReomdzC1UbBvG7TGX9xbExLYXlW+50+U1wkNWwDpWrO XRChX/OVv3OEe4QQl+fVI3jnWxiXa0ljtdas7qLVxeMpTmZYloXvsy66YO6V9OQikgBBpF vhr/VWtShFhLgxJBYKTLpCAIC+sy3pw= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=WDN2pzc4; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf27.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.45 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694079228; a=rsa-sha256; cv=none; b=WORJANcViPcZCI7TYWh4oPO5QQsas2FDb/RW/My/5gdIOiitdLxrY7mVi8mRwtu1vO2dla TGuyW62w+jVMmyDc6PohYEcFfIVrFtYIZmLCNc/QHwdtknFp+lSViDDsHR+ehh+0hpldH4 UjtJY4I/9OlS8qvj6+d+0y0JUg/TQP4= Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-5007616b756so1208560e87.3 for ; Thu, 07 Sep 2023 02:33:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694079227; x=1694684027; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=fLX7Bq6wnbRD6/SdSFqqliM0JJEUO0FAMrqo0kqc5TI=; b=WDN2pzc4R/OOKARgIczkPjy0YT7D6jc0i6g4PNxXXK+hx2pLWxT3zqq0d4coDx4vgm XDSkvL9E3yKcu1vNkXOo2bof96L2hDvFG2+gJeSsSpkrogFuJbjkQZpTTPWHHaaiDu1g q9tvr6mIJw1bpUpJcFAzkQ/tlwYI8IGxQHv7q/SzyTn3bGUi1ujWL0mCJztiHepKoYO4 ossltJ5STOQbm0yB5t3IGA+Z/DYM5W65M7DoKdqi6LNU6AbiS47+LYVaOgHEKVW6I3jK pWHTs3Pq7uu6C76dMZdMAwFvqR7hQwi+5qgVQaSe73JssgOtYflPS7tQPT5Kb7ezw1Iw Wjww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1694079227; x=1694684027; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=fLX7Bq6wnbRD6/SdSFqqliM0JJEUO0FAMrqo0kqc5TI=; b=O2W1eT0TN1dITStVrlYNJqHxDlzHNW6s3BSzNxwa7tOaGRqmeWs1+nw8mQMe/hTfmo cS1pm4qWkkUKVulDoNFFm22tGXsEXyhSs53zDF61Mw+CwFxqowYavamiJXAXB4OLOh0u y6e5tAXxjA940kuw/uVN+WiDUL1a3q5IRZR08PbdZakJifLyLZJAevI+vvKZmYMRVAWK wo6xAR8fzxoUUj2SOSz7XYJW0qPrbJ1ykZu9R8r1KBYFDP0RwLRqaOKGkJFsTP373haP CiIPlvkc7lkHXCPFSIuPv8eIGxu3IPrcLmY9Kh+mymPhyp+l+6CCt5XkUXsLXGyO8n7s udgw== X-Gm-Message-State: AOJu0YywbZUBYq8AEyM5lD/SKfitfBfYtIj1+2kmLVg6/NW6itX4HFES BKDfToCCeGu+1uQBoPvdrFc= X-Google-Smtp-Source: AGHT+IF+WSICpl9q9H+brNxoyZjwyqj3M4NSmCfgk21ugKY/BcmEIhuMQiG2HKK4eNTLI3u6Dah+FQ== X-Received: by 2002:a19:700d:0:b0:4fb:829b:196e with SMTP id h13-20020a19700d000000b004fb829b196emr3847391lfc.2.1694079226496; Thu, 07 Sep 2023 02:33:46 -0700 (PDT) Received: from pc636 (host-90-235-20-237.mobileonline.telia.com. [90.235.20.237]) by smtp.gmail.com with ESMTPSA id o5-20020ac24bc5000000b00500a4679148sm400526lfq.20.2023.09.07.02.33.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Sep 2023 02:33:46 -0700 (PDT) From: Uladzislau Rezki X-Google-Original-From: Uladzislau Rezki Date: Thu, 7 Sep 2023 11:33:43 +0200 To: Baoquan He Cc: Uladzislau Rezki , linux-mm@kvack.org, Andrew Morton , LKML , Lorenzo Stoakes , Christoph Hellwig , Matthew Wilcox , "Liam R . Howlett" , Dave Chinner , "Paul E . McKenney" , Joel Fernandes , Oleksiy Avramchenko Subject: Re: [PATCH v2 6/9] mm: vmalloc: Offload free_vmap_area_lock lock Message-ID: References: <20230829081142.3619-1-urezki@gmail.com> <20230829081142.3619-7-urezki@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 68F0840003 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: o3e51wboe4np87mxousef4frwr86fihz X-HE-Tag: 1694079228-271113 X-HE-Meta: U2FsdGVkX1+M2OEr54tQjWEvPJNjU5bGdvszzDMdwtLEJfJ6wWmTsfGkDa4TqQjOuGGOIw5ljA5sKnSZwRu3YHk7aUJD8TyIIdP1jJUmnmeSlh2j9WzF9BCTyFmdA3dDA9ca028JpiE95kRJVjAV08WwjmRYBW9LoPLFHBkG+dMAmphXlDlyTEqR7jS05Y58HhiiSqXR/aoGeMYfAZrkOwuWI+RHBqLXGCniTugKn04WeT8MQtijQkIvJaw3EKo161IsrS1MIj3kYOklHlLGKK+yBB/1EgdEV6rKqHThvXl5gcYwdLEaLSED3viUipZh7tjye7MRj9kMRUDStrpqNKd3tZLlKplYPKYMxZRtT9DFujY4bzzsQb5/ZAhR6tCydfwPvAJqeOxOxNKZRAz1Yjt+cbiW115yuoNi8XaCX6+VYytw976z4JtD9iQhmjR5u5xzdz6goOaInmNRr9RGlQaNKMlWe9B+FJ5PvGSdJJlj4+yPs9h8nu/RhrxTgFOx+uU2r8FsmvBq+Qoo2XLAatsX5FEag6MBDXJDjktZuOqRehg33djXTjTMYtdmETqn9PFL7YWMfmUC0pg/ochsJor7JpA+FrMMErW/hIjutZL8mgfO5B5dIX0OZf24rNAtepspH1gJvYJdy0BwXfCrZisghdVT1YVLb1KljpaZKexAobtP30PJWZhI06+ClqZ2n+jx6I5kP704cU0/ouXyQQv9Q0l6U27MepOmjIuwowDLHpaSdVtq0MViER9OAkxdAAZWP0RIBaTLeXFLFCapf2qEKCUmkkoQVNevA6P8JYpqCovv2Iye28xRoiCfs3MH0yZSHY/k7otH0OmCu+8W25FAl/FVO/gH8PnPg+SAakNyqD8ND73BP+7ti9PP4iKZhQxjASSXzt/3v2vvicmYVXEmuYKdORmIfz8gD8gCeCb8uduPL2WuJGQDpnla34/p9Gqb+sh84GoQnWeLp8G X0jHyrwD sCkyUVWRH4yahjAFz7jcT2oqOv69jWB7sfniKSRQuedp0GAp9HWOI0MJFG+t4+Px1nXEewCauj9CfxTEq/2VRebXutJO7OdTZX6gpRwVlmh3p/ttv0krjySDsrZZub8QxRB1lwkKxh0NqCyqMbHlXE34wrYjTR9aXVlOjNe6CHPpdShLW2Ydkm5a2nW58mK4rLqdbbN+cCCCkFoHwKyxt2O/KvNNkOv+12izPzHWW8XPHYAeAJ6PEM7PK0Rv/oque5qnBMyDEXUJ903cn4pns/E169wEguJYLL8SzYHj4GRrG9R0dd5uoW3wZ88aHnjDbrDtj5LLObfoIDBT1iCJtqKiGydu0Hv9jFNenIgxzyKRQgyPgergWf2sjeEUWdleki5SHubvAZR3kH+EqGqv7rFmsyOQHJBi6/nrJGhV9DjmVvNUGOdiJWRskykjYBcZiLQ/W3FhOdXeetrhHvDnXd42jV6EBoRg0BRKn 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: On Thu, Sep 07, 2023 at 08:06:09AM +0800, Baoquan He wrote: > On 09/06/23 at 09:16pm, Uladzislau Rezki wrote: > > > > static void free_vmap_area(struct vmap_area *va) > > > > { > > > > struct vmap_node *vn = addr_to_node(va->va_start); > > > > + int vn_id = decode_vn_id(va->flags); > > > > > > > > /* > > > > * Remove from the busy tree/list. > > > > @@ -1594,12 +1629,19 @@ static void free_vmap_area(struct vmap_area *va) > > > > unlink_va(va, &vn->busy.root); > > > > spin_unlock(&vn->busy.lock); > > > > > > > > - /* > > > > - * Insert/Merge it back to the free tree/list. > > > > - */ > > > > - spin_lock(&free_vmap_area_lock); > > > > - merge_or_add_vmap_area_augment(va, &free_vmap_area_root, &free_vmap_area_list); > > > > - spin_unlock(&free_vmap_area_lock); > > > > + if (vn_id >= 0) { > > > > > > In alloc_vmap_area(), the vn_id is encoded into va->flags. When > > > allocation failed, the vn_id = 0. Here should we change to check 'if > > > (vn_id > 0)' becasue the vn_id == 0 means no available vn_id encoded > > > into. And I do not get how we treat the case vn_id truly is 0. > > > > > > va->flags = (addr != vend) ? encode_vn_id(vn_id) : 0; > > > > > Yes, vn_id always >= 0, so it is positive since it is an index. > > We encode a vn_id as vn_id + 1. For example if it is zero we write 1. > > > > If not node allocation path or an error zero is written. Decoding > > is done as: zero - 1 = -1, so it is negative value, i.e. decode_vn_id() > > function returns -1. > > Ah, I see it now, thanks. It would be helpful to add some explanation > above decode_vn_id() lest people misunderstand this like me? > I got that feeling also. This makes sense, so i will comment it! -- Uladzislau Rezki