Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp4180569ybi; Tue, 18 Jun 2019 13:18:53 -0700 (PDT) X-Google-Smtp-Source: APXvYqw0HbLzz7wvsiAvatyxM3+Xw/6PhRdPGZMAa0zFKqsPiF9e4D+fj+a8ClFkfh42NhdgNfHr X-Received: by 2002:a17:90a:208d:: with SMTP id f13mr614275pjg.68.1560889133599; Tue, 18 Jun 2019 13:18:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560889133; cv=none; d=google.com; s=arc-20160816; b=SSsjIQ3bgibdU3yXGtJE8ftVn+f9PVkCjb0xUjSxq40y2Fezzn9jHD85OuCNgh+zfH mleKHzi58kZ9YN5Oss1Ckjkqe7lKi6iz9inB27KHFEiFrtZPj61WR0VTIuoyynBibOqu 2/6md/rga+NAcDNagfI6l3nT271A1RuGQODBy8qw619IEpD+06WJbmMmbdgcTbDLAN5C 8GrFGDrtN9//j4YOcP0dahd9i0ucm7XWArXMVI/nUvIS69R2Yq2vL1sra55QDaiUZLgj e7iLEo+Gh6pHwahZpt6vS//nk9/JbPzLa2e/2DNgyvKxx02CrVtKUOCjFHdBBTYPol7l fTKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=WnfM1fJuGpeShE3wWQrmckJgD7TPf/8hfeFmLxyhLwk=; b=nVjE36oW4E/u4ylSR7vKZVseqUkJDTuhlJj1VL7ee3Ak2a/zjuyMxwBTgxbL5PX4KI YyYxRzeNdD6+GRaCHg5s0oGl2wdka/ulhwnAUlkVoAuceLT9VSUBADMHD6meERBLUrMR HblYI6IZM9lx8z1seThSbYyMykoiRb3UswHVpOTrwX76SGJxF1JGoXDD+CWwNH3OPGFg iXqgIAJNxJjxKxuomqYdz+sCwnDCHhUfxZj8ccusA02ozKzeRZlJTi7AbEc9JoIBVhZo mXixHE2MZJ8jov9670mRyfLVE/vi/fAhGBq97mrrv1IEaBCWl0UudZ/6rk+jD+7vohJl ZDQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@android.com header.s=20161025 header.b=hhwx3Gbf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=android.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d4si13797252pla.358.2019.06.18.13.18.38; Tue, 18 Jun 2019 13:18:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@android.com header.s=20161025 header.b=hhwx3Gbf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=android.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730560AbfFRURS (ORCPT + 99 others); Tue, 18 Jun 2019 16:17:18 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:36066 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730341AbfFRURR (ORCPT ); Tue, 18 Jun 2019 16:17:17 -0400 Received: by mail-pg1-f193.google.com with SMTP id f21so8291770pgi.3 for ; Tue, 18 Jun 2019 13:17:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=android.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=WnfM1fJuGpeShE3wWQrmckJgD7TPf/8hfeFmLxyhLwk=; b=hhwx3Gbfku4etrIAgCb090jSq6O7gA0BpezqpGrLllt+yC2IVMt/zEj4547TCNDiIm 3qETuWJAMlL5cPT555NtO80Wy5un2MFr8MSZSQAwtH8tu0MrpwKpGWWLdq2TK4qoYPMI 26p1mfXQxlw9Sw8aOjzV2MIa4Egc8ZYANDIMsY9xg29AyiKzbGtd0J0zqkFZ1v8L5pIG fMRGjlCvsw58ou+Mniq1BaJH4audKFVEycZ8Tg3hFWOnV+OI9hDrBS7o0JanEFlu1Md/ J4cO2MtQgTmKbfM3TGk8qEkCtRr7LwygMPTE0I86YgObucKPomAl7OL3wwoFjpMEFnzI ZODg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=WnfM1fJuGpeShE3wWQrmckJgD7TPf/8hfeFmLxyhLwk=; b=ALkzr4OYSxq8rcJjynW10QKDtFYTzo+dGrnhmxAWpzrqmYYSEpc09fYBMBUsnDboaj mQUaxA4dySI0+TtosgYQpaM7o/W7G1whPf1HrFxvep86YyNeEpt+NtixtGk4lJoEKV5U 6AZSts35wJ3BCPKAHmsUzQ+Lgqo+34CSDSce83Ac9mtG7bQOvzMC/RK0CTBYY/r3BIM1 b04eKgdm52fTi3U/Rl4CCUomMAihZfKVos5xh8H6Qtf/Cq26GDYbhwpGTCGkASuIQaLF w3v6iG5kC8z4qOcAlIOLMn/aUwSYcKowHywEOytQX82wbEIzp4Dea9MOeisifRBtd9Vz NVAQ== X-Gm-Message-State: APjAAAUqZOYgr7FVytSSKEZmamsTUP1690rDCBYlUktvIAACfUTFF6j5 FSXiTaV4chzxSvGEzcjgdzDKvA== X-Received: by 2002:a17:90a:db08:: with SMTP id g8mr6812828pjv.39.1560889037270; Tue, 18 Jun 2019 13:17:17 -0700 (PDT) Received: from localhost ([2620:0:1000:1601:3fed:2d30:9d40:70a3]) by smtp.gmail.com with ESMTPSA id j23sm15478266pff.90.2019.06.18.13.17.16 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 18 Jun 2019 13:17:16 -0700 (PDT) Date: Tue, 18 Jun 2019 13:17:16 -0700 From: Sandeep Patil To: Tri Vo Cc: rjw@rjwysocki.net, viresh.kumar@linaro.org, Hridya Valsaraju , linux-pm@vger.kernel.org, kernel-team@android.com, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org Subject: Re: Alternatives to /sys/kernel/debug/wakeup_sources Message-ID: <20190618182502.GC203031@google.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rafael, Viresh etc. On Tue, Jun 11, 2019 at 10:31:16AM -0700, Tri Vo wrote: > On Tue, Jun 4, 2019 at 5:23 PM Tri Vo wrote: > > > > Hello Rafael, > > > > Currently, Android reads wakeup sources statistics from > > /sys/kernel/debug/wakeup_sources in production environment. This > > information is used, for example, to report which wake lock prevents > > the device from suspending. Android's usage of the 'wakeup_sources' from debugfs can is linked at[1]. Basically, android's battery stats implementation to plot history for suspend blocking wakeup sources over device's boot cycle. This is used both for power specific bug reporting but also is one of the stats that will be used towards attributing the battery consumption to specific processes over the period of time. Android depended on the out-of-tree /proc/wakelocks before and now relies on wakeup_sources debugfs entry heavily for the aforementioned use cases. > > > > Android userspace reading wakeup_sources is not ideal because: > > - Debugfs API is not stable, i.e. Android tools built on top of it are > > not guaranteed to be backward/forward compatible. > > - This file requires debugfs to be mounted, which itself is > > undesirable for security reasons. > > > > To address these problems, we want to contribute a way to expose these > > statistics that doesn't depend on debugfs. > > > > Some initial thoughts/questions: Should we expose the stats in sysfs? > > Or maybe implement eBPF-based solution? What do you think? We are going through Android's out-of-tree kernel dependencies along with userspace APIs that are not necessarily considered "stable and forever supported" upstream. The debugfs dependencies showed up on our radar as a result and so we are wondering if we should worry about changes in debugfs interface and hence the question(s) below. So, can we rely on /d/wakeup_sources to be considered a userspace API and hence maintained stable as we do for other /proc and /sys entries? If yes, then we will go ahead and add tests for this in LTP or somewhere else suitable. If no, then we would love to hear suggestions for any changes that need to be made or we simply just move the debugfs entry into somewhere like /sys/power/ ? As a side effect, if the entry moves out of debugfs, Android can run without mounting debugfs in production that I assume is a good thing. - ssp 1. https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/com/android/internal/os/KernelWakelockReader.java#127