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 DFCD0C54E41 for ; Wed, 28 Feb 2024 10:39:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 592976B00A0; Wed, 28 Feb 2024 05:39:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 541B46B00A1; Wed, 28 Feb 2024 05:39:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3E2B06B00A2; Wed, 28 Feb 2024 05:39:40 -0500 (EST) 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 2D0BD6B00A0 for ; Wed, 28 Feb 2024 05:39:40 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 0A720A0F3B for ; Wed, 28 Feb 2024 10:39:40 +0000 (UTC) X-FDA: 81840866520.16.B653C08 Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) by imf26.hostedemail.com (Postfix) with ESMTP id 38058140010 for ; Wed, 28 Feb 2024 10:39:37 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=i8BJ+3We; spf=pass (imf26.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.50 as permitted sender) smtp.mailfrom=urezki@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=1709116778; 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=XWpPSCtbSYio+DeT18wpsPlKpR4iiukyGBwdAsdEBKI=; b=t5X6wjKafNYsHwO9yYJvstHYi65jBQ5OWhHrD6Qn6D2bn8XnkrwB8HtPHxdrv78Uuas2DY W83xEefk4ekuAv6uoCL976KZxNWXDMtORYyiauzpCcw3rpTaXdHYF5SuxC0eROgjre++ha 1wAlre7gYqnl9PuzhEWNP4uC5dyZikY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709116778; a=rsa-sha256; cv=none; b=XsvnpwuVhxa7O5CgEukbaHM3WdgIsktmx/umQ6iYNO5nxhBh9xRAwFQtCW67vANRDOLbvG hBUL1zkGhjDO4+DSmOGnM4foEC5goG53/PHBSDxYS33jZF6sbJUvzTVHW3Vovh2v8m7y2h 4XVWqIxBy5dvqKoPVzgvMT9RAC//yKU= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=i8BJ+3We; spf=pass (imf26.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.50 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-512e39226efso6931534e87.0 for ; Wed, 28 Feb 2024 02:39:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709116776; x=1709721576; 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=XWpPSCtbSYio+DeT18wpsPlKpR4iiukyGBwdAsdEBKI=; b=i8BJ+3WeP725eIUxwI7QOSYROUroNH/vi7rNiQUhC3zd4auoPACk1xODwGLftWrgZk 0pPLBDGJYnBHk+uS4j2CSpuhbibGrQvOquJmUPW0yVNAPn+2S0KUoJwFfHizQ2AnkoTM uOsyxM+SOLFlWxgiAdHUcKR/xug688iVwr9KgFvGKJhGQlvjYzJkGKFrhMHggv7GARx+ UncuB4itCyVRqKk4wN1JmLfre+6WsC4cTU9TbEESi+BnFq3ThjqG2pzeVeSvx2SxkJFw FDMthVnfIqclhNMS/+QTW386qLF74XmtRv6r3BOnWbLVierdfsan45P5brd298ZNDD0k u/qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709116776; x=1709721576; 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=XWpPSCtbSYio+DeT18wpsPlKpR4iiukyGBwdAsdEBKI=; b=m7M+zfckjM2u7mxRa/8XATEq3nDXYkEgNQHjA0NlKwLd+c4gGK5prE8Or8sqZxpYG1 uwWbpkq/IixAgIw5dPW+QjOg2mo4hEGjirGVW9uEMwSclNvAsNCWNo2YJEL4ZZz+ZY2/ Sbgi8qCUKMLlEDaMMdQQbRmDb4blHA89wa9MtUwbzlX5QueDxDFcAHXiZHTRBM77MYp+ l5n+bGk+IiiGSaj3fZFhT1vGY4OBaJKyQrRVyu7tW2MPyXZ7h5a2UHfMyd62OQoKBSSG ZcOjwKO2llnqkM7nsp3FXxQaFB3XyDmqdro+MhVEFkryZlFAqyXIdhjR+IxNqyL7joM5 kPYw== X-Forwarded-Encrypted: i=1; AJvYcCUoPt/A3Cb+G1DW+z3z8UiLQuZwuHGf7fWnW+sD3zkPnAyvAMu/UzYg3jWCKbvVNB9uCte/yupuFSt50eFyZFpEZqY= X-Gm-Message-State: AOJu0YxF9BzLPx0myoeW6LxQeorMPWpsqH9boimNzu53tYX98DvWdQJK b2vsG9z1EW6IhffoLWS8fWrtmcuY3FOYrWrlGaidum2b4uc0FSnh X-Google-Smtp-Source: AGHT+IEO0aDTAScUzF/jCj4fdB9+Oyc79SOTodc+CbxayXL5+glrJszgUAGAdDhYwYX9zPLQ2H1TjA== X-Received: by 2002:a05:6512:a91:b0:512:ed78:a840 with SMTP id m17-20020a0565120a9100b00512ed78a840mr10150412lfu.61.1709116775968; Wed, 28 Feb 2024 02:39:35 -0800 (PST) Received: from pc636 (host-90-233-206-150.mobileonline.telia.com. [90.233.206.150]) by smtp.gmail.com with ESMTPSA id u3-20020ac25bc3000000b00512dfa19983sm1490824lfn.50.2024.02.28.02.39.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 02:39:35 -0800 (PST) From: Uladzislau Rezki X-Google-Original-From: Uladzislau Rezki Date: Wed, 28 Feb 2024 11:39:32 +0100 To: Baoquan He Cc: "Uladzislau Rezki (Sony)" , 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 v3 07/11] mm: vmalloc: Offload free_vmap_area_lock lock Message-ID: References: <20240102184633.748113-1-urezki@gmail.com> <20240102184633.748113-8-urezki@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Stat-Signature: 8s53ysej1z6spxnsd9qq31a83hfwx6ii X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 38058140010 X-Rspam-User: X-HE-Tag: 1709116777-55430 X-HE-Meta: U2FsdGVkX1+mjg77IbB7/+il9ZJ4tyAkH9iThvLJTq+JC+g2o2o5j6wISG0V9EV5U+QNsT4PSjzyp4c/iwcwvRzxuvurNyqor9TYVZPCFufIyC+Cu6/BZXks124BcM9J9Y6Az54/12aU7qHmMS4h0fWpiRyLF2P0M/XkP2+08/EUp8TYi3S5y0PGfkQPtyUnx9YLQYJ95SD6iQmRu5y1F/IA59YXTIJJH0xh5xL7tyo+mO+vpXEq3hXcHPzzbHVaYRZlLQYgEvwSet9pjuxRcl8OalelIjJdsQWYEtMaRNNcNjPt4hVmBrmRYSJohy5McJ+5ys7WV3kAQwSFNuMn3nPiLbCdeqlohD0hjdD4M8bf/fpn7nYVo92HPHCeK5hZr05TT+/8kWWVyIO+A/pyY9alUXQJfnWLD+diJfFxyGDV25Ne+pxFlnoLMLlYjdrqobCM7jH9cQeTeADdtYq+fG9glqxT+8ZmJk4AIlqakcr+hIP/ssSHT4x8MSl5N6weIimjV+Nv2IUKXEfzR3yIf8CqsokQemsYeCyYFnSWrjNJ7ru4/znzQ9TRp+oZokrRabRg9BFQm5KugU29bM2QJgZHgr4mvyHwXW1okfGWCrKDkF6yuOaR/UpkIvgnZlOlXfYfoYEJBYxgClmb2wQMAVwhXiEKZ7Dk4sXuzliGNHr7XWy2raf4hioGHNRAD/vPCP0/CrZ/DHaQrHxkHXD43++XZX3741pK/K3F7rnitUWj8hqTp/VkMank0wImkijUkkK5EyM0YLJBX+KxA9GwSmF8dW5iZ+Clbksfs7U1NaTiXkIpGzmY3h1EPCZWtvw2IyvWSBzP/OjGmCt/LpLS7AGmWfcmxvw97hPpVtvgAuVtuFtH15AQ8azEan2tsoo4dgx3+zKdq+fpMelv8CWlyZlMvEhjU4r9LVVjzuvD0IoUdKi3erItaIQONquQXwHkDkzsaGAKV0MGaDkRLOv 9/s6OyhD 1+684KkBPfov3Z5tYwZ1LCu43iiemYF7WExZK5mGS4DkR6ItNwNEzQKHKPKDyrHWiRWiqVdT3rHcAfP3XV2rEz/aOLvyvdAH7cIDF/zFtQtXSJ5Oyi5diaThYfw== 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 Wed, Feb 28, 2024 at 05:48:53PM +0800, Baoquan He wrote: > On 01/02/24 at 07:46pm, Uladzislau Rezki (Sony) wrote: > .....snip... > > +static void > > +decay_va_pool_node(struct vmap_node *vn, bool full_decay) > > +{ > > + struct vmap_area *va, *nva; > > + struct list_head decay_list; > > + struct rb_root decay_root; > > + unsigned long n_decay; > > + int i; > > + > > + decay_root = RB_ROOT; > > + INIT_LIST_HEAD(&decay_list); > > + > > + for (i = 0; i < MAX_VA_SIZE_PAGES; i++) { > > + struct list_head tmp_list; > > + > > + if (list_empty(&vn->pool[i].head)) > > + continue; > > + > > + INIT_LIST_HEAD(&tmp_list); > > + > > + /* Detach the pool, so no-one can access it. */ > > + spin_lock(&vn->pool_lock); > > + list_replace_init(&vn->pool[i].head, &tmp_list); > > + spin_unlock(&vn->pool_lock); > > + > > + if (full_decay) > > + WRITE_ONCE(vn->pool[i].len, 0); > > + > > + /* Decay a pool by ~25% out of left objects. */ > > This isn't true if the pool has less than 4 objects. If there are 3 > objects, n_decay = 0. > This is expectable. > > + n_decay = vn->pool[i].len >> 2; > > + > > + list_for_each_entry_safe(va, nva, &tmp_list, list) { > > + list_del_init(&va->list); > > + merge_or_add_vmap_area(va, &decay_root, &decay_list); > > + > > + if (!full_decay) { > > + WRITE_ONCE(vn->pool[i].len, vn->pool[i].len - 1); > > + > > + if (!--n_decay) > > + break; > > Here, --n_decay will make n_decay 0xffffffffffffffff, > then all left objects are reclaimed. Right. Last three objects do not play a big game. -- Uladzislau Rezki