From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754561AbdBGPA5 (ORCPT ); Tue, 7 Feb 2017 10:00:57 -0500 Received: from mail.kernel.org ([198.145.29.136]:52990 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753587AbdBGPAz (ORCPT ); Tue, 7 Feb 2017 10:00:55 -0500 Date: Tue, 7 Feb 2017 12:00:45 -0300 From: Arnaldo Carvalho de Melo To: Borislav Petkov Cc: Ingo Molnar , Peter Zijlstra , Robert Richter , Vince Weaver , lkml Subject: Re: [PATCH 1/2] tools/lib/api/fs: Add procfs int read/write helpers Message-ID: <20170207150045.GH24988@kernel.org> References: <20170206121506.mtknwusus4djp2sx@pd.tnic> <20170206122231.GA9404@gmail.com> <20170206124116.7jmrmufthqtnd3dc@pd.tnic> <20170206124447.GA12772@gmail.com> <20170206124937.zlowglr5gpq35piy@pd.tnic> <20170207010813.buovxbku5rqhnhzg@pd.tnic> <20170207010917.36ysrh6p7yktxwhc@pd.tnic> <20170207014356.GE24988@kernel.org> <20170207103001.kmnnpywb4fdcinrq@pd.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170207103001.kmnnpywb4fdcinrq@pd.tnic> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Tue, Feb 07, 2017 at 11:30:01AM +0100, Borislav Petkov escreveu: > On Mon, Feb 06, 2017 at 10:43:56PM -0300, Arnaldo Carvalho de Melo wrote: > > > int sysctl__read_int(const char *sysctl, int *value); > > > > Isn't sysctl__read_int() what you want? > > Right, so looking at this: don't you think that having both sysctl__* > and procfs__* is a little redundant? > > The sysctl* things are doing the accesses over proc so shouldn't it all > be procfs__* interfaces and no sysctl__* ones at all > > or > > at least the sysctl__* ones should call the procfs__* ones? Well, I see this as: sysctls are implemented as files in procfs, but could conceivably be implemented somewhere else, just like the events file was implemented in debugfs but then was moved to a separate filesystem type, tracefs. So it being in procfs is an implementation detail, what I'm interested are sysctls, and names for sysctls will be appended to wherever the sysctl is made available in the file system. For instance: [root@jouet ~]# sysctl kernel.watchdog kernel.watchdog = 1 [root@jouet ~]# So the sysctl is "kernel.watchdog" and it is set to one. So, I suggest you use: if (sysctl__read_int("kernel/watchdog", &watchdog_value) == 0) /* do whatever you want with it */ And forget that under the hood this is in something called "procfs". :-) - Arnaldo