Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3158215pxk; Tue, 15 Sep 2020 11:31:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyxhhSyg88DIAXK3tPNObqlCAfBhdWr/2DZO1j9ragpMSqEceH8+ZJ5FLeGEPmC9xF7X54X X-Received: by 2002:a50:d54b:: with SMTP id f11mr23737231edj.329.1600194701741; Tue, 15 Sep 2020 11:31:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600194701; cv=none; d=google.com; s=arc-20160816; b=fW8clJPA9lCe4u8Urr0HOMsB4167mO07by9xKopK0hWayGZuAsgj5lS3+rLjSbd6sx jMDsHuSXhqhOU/W826tXpnq35aO4pOU9EX983nNiVZyH/W92SJre54Drq2tvyx+e+xmf 4Mw73gxPkZzdDU2Q0gN3yGtqEht7uriZrumO9/Lt9emGVf1WJ6xyCS2NsU3dnTpO+9Hs oKmWnAyx9ENgQJuYjWwsgDfcSSXghW09eTu0EwdMkboS35bc3BLc2/X5qBE1UtQ7H1Es 3mKL1aZz8ElXlNr43hWxxoDorHTAcPyRPsvcM2SsUyXiXDCNg1WpQnPMwwNJ2XPSE1Ni 8ttw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=a5yi80kDIlG+xC/7XTwq910FSClVkKBKeTr0UXgGZ+0=; b=OBUoLajEC2ILIngUX1JS4p8oAgOO+d8bCJuboZ5l8AJOiG5Ymz2lZ4PGKnVWamdkoT vfXo5kJ2Lu4vcFHLKqY8tw6IyM+6MVyUyFi/5vaWEid9eJXHdB2hqOiYkktzLKDqbpmO aSHhj8mmoYcSCOxb0/69Gawh0wC2lvqDtqC8woqh+2nNknA8j9pVXSVZTsPGrMyQCgqi 3oqEYks/XFPGCZlAMbGBPAzfs2zE+AZ2UTK7YE2vofzrsJXLHR6fMnVPoJQsQI9JGI7B bqyXx9AJ8hNiEFwffGLw6VOImZsek7Cw/vH+9lSFbWQMOoQNrKz+uq5UY90haS2SQaKa 6LWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@soleen.com header.s=google header.b=YmFlarJ9; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z34si11152572ede.447.2020.09.15.11.31.18; Tue, 15 Sep 2020 11:31:41 -0700 (PDT) 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=@soleen.com header.s=google header.b=YmFlarJ9; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727985AbgIOS2f (ORCPT + 99 others); Tue, 15 Sep 2020 14:28:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43334 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727982AbgIOS2P (ORCPT ); Tue, 15 Sep 2020 14:28:15 -0400 Received: from mail-ej1-x642.google.com (mail-ej1-x642.google.com [IPv6:2a00:1450:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40EF2C06174A for ; Tue, 15 Sep 2020 11:28:11 -0700 (PDT) Received: by mail-ej1-x642.google.com with SMTP id o8so6440032ejb.10 for ; Tue, 15 Sep 2020 11:28:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=soleen.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=a5yi80kDIlG+xC/7XTwq910FSClVkKBKeTr0UXgGZ+0=; b=YmFlarJ9oRwLXcNbELoAFxAwVoC7NgP9ryRrDh/LZni6oveziBc+ox9f2SBO4m3yhj rRix7hD9Fet8AhU43X2g1J0Ftj5ulQTGWBaRKouyE+6bHXH4FYTomTxPBTfCHFPaZ2Ay mG5YuoUyZPhlZ+BdHkfqaZAfyP+0YABaHxT5sXKGQwmNwnnicV5lYEkddRonVQgu5hFQ T8IxFBKA6ZboUzQA2jDZh0mIjxzjn39eRNBuYvDFfN17tZhFBJnFYVmyFXvtJ4UBBH3w EAXCLdb7G7ZW/09ZhRJhk77p8jC7ThQHtXs5TWBXcveuWZ+FPiCZ44de1sRQxktuFMWd Xq+g== 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=a5yi80kDIlG+xC/7XTwq910FSClVkKBKeTr0UXgGZ+0=; b=MXoPbLdNL28C5DhV0n1vPGQPUX7YJBWxgpM4QSQF02M9nCSjW632XhgOgRJHLoplND vrlNlfCgc9u8aaiMH7Qr/95ybSmXIhfvYm7UUW2JUcAm+UB4i8TXlQWLFvxOQT7jagd8 HGRNYFAECpidQjF2E0hTxPPkaBd4T+zOEfRKHpSFnoe5QOVZuXJhD96agQxZSTWXFAUr 08cWdeIcQIDqAe1+9E9vbwX6NnTMgpOV9TrNwzJ9vgHtJ8P75CTQQXjkTJ3Piv1Xo1Jf +jFRsbVpVJ/EILPnAo+F6P1pKrxIPWBHPzynzG7dDUEi2hQGliqWttZmxNAgsn3V/bU6 J7GQ== X-Gm-Message-State: AOAM532Er+feYlhL8S3odXfuai1BVb6b0Oz/AVellm98zQc9XT7B9eIU +Pl08K0cmddMD8fAByHars27sQmXrCKiuofi3aNOOA== X-Received: by 2002:a17:906:7116:: with SMTP id x22mr22211371ejj.426.1600194489854; Tue, 15 Sep 2020 11:28:09 -0700 (PDT) MIME-Version: 1.0 References: <1600145748-26518-1-git-send-email-vijayb@linux.microsoft.com> In-Reply-To: <1600145748-26518-1-git-send-email-vijayb@linux.microsoft.com> From: Pavel Tatashin Date: Tue, 15 Sep 2020 14:27:34 -0400 Message-ID: Subject: Re: [v1] mm: khugepaged: avoid overriding min_free_kbytes set by user To: Vijay Balakrishna Cc: Andrew Morton , "Kirill A. Shutemov" , Oleg Nesterov , Song Liu , Andrea Arcangeli , Michal Hocko , Allen Pais , LKML , linux-mm Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 15, 2020 at 12:55 AM Vijay Balakrishna wrote: > > set_recommended_min_free_kbytes need to honor min_free_kbytes set by the > user. Post start-of-day THP enable or memory hotplug operations can > lose user specified min_free_kbytes, in particular when it is higher than > calculated recommended value. > > Signed-off-by: Vijay Balakrishna > Cc: stable@vger.kernel.org > --- > mm/khugepaged.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > index 4f7107476a6f..b4b753ba411a 100644 > --- a/mm/khugepaged.c > +++ b/mm/khugepaged.c > @@ -2253,7 +2253,7 @@ static void set_recommended_min_free_kbytes(void) > { > struct zone *zone; > int nr_zones = 0; > - unsigned long recommended_min; > + int recommended_min; Hi Vijay, Please explain in log the type change. user_min_free_kbytes is of "int" type and is initialized to -1, so comparing to unsigned leads to undesired effect. > > for_each_populated_zone(zone) { > /* > @@ -2280,12 +2280,12 @@ static void set_recommended_min_free_kbytes(void) > > /* don't ever allow to reserve more than 5% of the lowmem */ > recommended_min = min(recommended_min, > - (unsigned long) nr_free_buffer_pages() / 20); > + (int) nr_free_buffer_pages() / 20); > recommended_min <<= (PAGE_SHIFT-10); > > - if (recommended_min > min_free_kbytes) { > + if (recommended_min > user_min_free_kbytes) { Took me a while to understand, but this change is correct. It is the same logic that is done in init_per_zone_wmark_min(). Please join the two patches you have in one patch series. Reviewed-by: Pavel Tatashin Thank you, Pasha