Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752683AbaG3Vry (ORCPT ); Wed, 30 Jul 2014 17:47:54 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:41808 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751452AbaG3Vrx (ORCPT ); Wed, 30 Jul 2014 17:47:53 -0400 Date: Wed, 30 Jul 2014 14:47:52 -0700 From: Andrew Morton To: Chintan Pandya Cc: tglx@linutronix.de, john.stultz@linaro.org, peterz@infradead.org, mingo@redhat.com, hughd@google.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v2 2/2] ksm: Provide support to use deferrable timers for scanner thread Message-Id: <20140730144752.8c931d9ed997324632d5f2fd@linux-foundation.org> In-Reply-To: <1406299698-6357-2-git-send-email-cpandya@codeaurora.org> References: <1406299698-6357-1-git-send-email-cpandya@codeaurora.org> <1406299698-6357-2-git-send-email-cpandya@codeaurora.org> X-Mailer: Sylpheed 3.2.0beta5 (GTK+ 2.24.10; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 25 Jul 2014 20:18:18 +0530 Chintan Pandya wrote: > KSM thread to scan pages is scheduled on definite timeout. That wakes > up CPU from idle state and hence may affect the power consumption. > Provide an optional support to use deferrable timer which suites > low-power use-cases. > > Typically, on our setup we observed, 10% less power consumption with > some use-cases in which CPU goes to power collapse frequently. For > example, playing audio while typically CPU remains idle. > > To enable deferrable timers, > $ echo 1 > /sys/kernel/mm/ksm/deferrable_timer This could not have been the version which you tested. What's up? --- a/mm/ksm.c~ksm-provide-support-to-use-deferrable-timers-for-scanner-thread-fix-fix-2 +++ a/mm/ksm.c @@ -1720,8 +1720,6 @@ static int ksmd_should_run(void) static int ksm_scan_thread(void *nothing) { - signed long to; - set_freezable(); set_user_nice(current, 5); @@ -1735,7 +1733,9 @@ static int ksm_scan_thread(void *nothing try_to_freeze(); if (ksmd_should_run()) { - timeout = msecs_to_jiffies(ksm_thread_sleep_millisecs); + signed long to; + + to = msecs_to_jiffies(ksm_thread_sleep_millisecs); if (use_deferrable_timer) schedule_timeout_deferrable_interruptible(to); else _ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/