Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3972962pxb; Mon, 1 Feb 2021 09:12:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJzNDeq9GoZJo/Nipa30PaQfyrlDW3y6+ofw3qFdkx/YAUtqJea5wnMBK6ZEa3CeiZdzO4ad X-Received: by 2002:a17:906:f895:: with SMTP id lg21mr18819903ejb.321.1612199521770; Mon, 01 Feb 2021 09:12:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612199521; cv=none; d=google.com; s=arc-20160816; b=f3SXkaeRHJNFUNmmLsf2FT5HHAxd8DXtiwMggNJFfSf1ye4xL1FWi8PaHDOm2SiQWk m14vlq5sOBKVFGjyyxAQRALG4woolHcf9LgO9S9FAaQyDLCCUTfKnjrVskDd+0wxAPCv jL6TCZqVl3EkzL0BN4dW1l5vBc3vp9xxMcEREz9g2VJhdzgZvhArpoQvLTjTp1juIcsE NqBtCo8zwO63ScXuYDY0LsJVxRJZLDm/IQAnaD0HVlGP+bRXzHMJvsvS2yyHH9CuAaMc Eg4JS4oeGqazkIIj/1K2jugvu5IJi+Xq3VgkWUkTgBnQn29xAmoH8u1rZ26J2zJfccNZ 3Q4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=8vgOK0RvUyqfEu6HnO0iJIO2aZLK2TMzDkhHoYS2ukk=; b=JAs5b009C7AriqBlWqEajE/Lqg8HFbkoTSJz8U8hknkQO/TVjvKKVAgPrstIAFVVCv gOxygTc5n774l9rAXlFbWXQER7vQbsTNO6HQn2ffdRuE4nJ6elXVLXkIrbgZjdG4rwGb QKoQBjx2DubZVryJ3Cv3uDB3gbkX2gxZPEjygWlpXvvVLQ9xUtjK7UeRSp8YXLlEmeOW IIb2rvfBuksV2hPUeiIbEawWm1u58FhkND+sqsWGAipmO/k0GNleceE4xGS1eJF/7kIa t7m9b8haKDb0YRp+gkRzAPz66ASM7GcK/Xc6vj0Udbc8XO+yDSDvNcbdq0q8R5lQiFv+ VpKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rHT2bxfQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j5si596765ejv.429.2021.02.01.09.11.35; Mon, 01 Feb 2021 09:12:01 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rHT2bxfQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229981AbhBARKn (ORCPT + 99 others); Mon, 1 Feb 2021 12:10:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229599AbhBARKi (ORCPT ); Mon, 1 Feb 2021 12:10:38 -0500 Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A6DA3C061756; Mon, 1 Feb 2021 09:09:58 -0800 (PST) Received: by mail-ej1-x62b.google.com with SMTP id rv9so25496654ejb.13; Mon, 01 Feb 2021 09:09:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=8vgOK0RvUyqfEu6HnO0iJIO2aZLK2TMzDkhHoYS2ukk=; b=rHT2bxfQfwZ5mWMk3cDrJ0W1k76tdrPy1AjhRMRXzlGdmEZkPZRyGI0/Cc04fgPGKV S1yiAre1hIGD25E4/RD85YQB5rRHo7GzgexDIU8MtX8M0aWGchMPtLSkXdlFvnD+8eaQ Xwd5jyOvOCav4GCtdW1nIm5u3Dfalt7QjDKwfI8vAJvsG3xVKimYvdYiZzSlnUB+X48k FXxEbXxgcoxCfPU3BFO47EKWIIiwqCfIWl7+dA6fQkYeAbjuGikrSjuBJgo2tibO+v8D nliHJdH0wNTqaMobFYhCAbsgFyw4JMvZxRQtx4qAM9Vp6iedQT9nu52xfDkx2nX7oWhk 1lfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=8vgOK0RvUyqfEu6HnO0iJIO2aZLK2TMzDkhHoYS2ukk=; b=q1BtuqtA+M3Y5rHiWNq9fW1+to5YcIvrCUCLcVuFjIpuwnV81bAfBEho67nfarvIZt QvYC5F2iqDjzFXwIy8C1XWcKFtHyGSIIKSJWsqtJdrxFazylbXuGKhUUKrhukX5tuiGq m4PvGffiy7c67wzfo1nlkkq26FphViBKkiNQ+ZIq+ToUVu999am9k57brskfNVTYvXrk CnSRfpaJGcpqp6d0Rh+lVGvaCZL4Ky5+wj7MFPDIJr/nlAsyZfRR+T67HRN6ZVIzXZzT xXl6mm7ErwwPo5mpkz0b5sVMB5+SyH2K83ga/8KzF0OhtBDTLty2rVfBfzG+EmhUy4as 3atg== X-Gm-Message-State: AOAM531AIIUKLfrz3oqCd5ndrh+Mvf/lHQCVDRDoQIirn5XqW7Rnz/4w aWJ066gj4pnJ5OlenV2vto2zzfG+ltEHmlU4O4k= X-Received: by 2002:a17:906:f841:: with SMTP id ks1mr18656870ejb.507.1612199397448; Mon, 01 Feb 2021 09:09:57 -0800 (PST) MIME-Version: 1.0 References: <20210127233345.339910-1-shy828301@gmail.com> <20210127233345.339910-8-shy828301@gmail.com> <6b0638ba-2513-67f5-8ef1-9e60a7d9ded6@suse.cz> <0ce8b6e4-5abb-3edb-8423-f6c222420a89@suse.cz> In-Reply-To: <0ce8b6e4-5abb-3edb-8423-f6c222420a89@suse.cz> From: Yang Shi Date: Mon, 1 Feb 2021 09:09:45 -0800 Message-ID: Subject: Re: [v5 PATCH 07/11] mm: vmscan: add per memcg shrinker nr_deferred To: Vlastimil Babka Cc: Roman Gushchin , Kirill Tkhai , Shakeel Butt , Dave Chinner , Johannes Weiner , Michal Hocko , Andrew Morton , Linux MM , Linux FS-devel Mailing List , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Feb 1, 2021 at 7:17 AM Vlastimil Babka wrote: > > On 1/29/21 7:04 PM, Yang Shi wrote: > > >> > > @@ -209,9 +214,15 @@ static int expand_one_shrinker_info(struct mem_cgroup *memcg, > >> > > if (!new) > >> > > return -ENOMEM; > >> > > > >> > > - /* Set all old bits, clear all new bits */ > >> > > - memset(new->map, (int)0xff, old_size); > >> > > - memset((void *)new->map + old_size, 0, size - old_size); > >> > > + new->map = (unsigned long *)(new + 1); > >> > > + new->nr_deferred = (void *)new->map + m_size; > >> > > >> > This better be aligned to sizeof(atomic_long_t). Can we be sure about that? > >> > >> Good point. No, if unsigned long is 32 bit on some 64 bit machines. > > > > I think we could just change map to "u64" and guarantee struct > > shrinker_info is aligned to 64 bit. > > What about changing to order, nr_deferred before map? Then the atomics are at > the beginning of allocated area, thus aligned. Yes, it works too. The rcu_head is guaranteed to have aligned at sizeof(void *). Will fix in v6.