public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dimitri Sivanich <sivanich@sgi.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	John Stultz <johnstul@us.ibm.com>
Subject: Re: [PATCH] specific do_timer_cpu value for nohz off mode
Date: Fri, 2 Sep 2011 15:39:17 -0500	[thread overview]
Message-ID: <20110902203917.GA340@sgi.com> (raw)
In-Reply-To: <alpine.LFD.2.02.1109022155080.2723@ionos>

On Fri, Sep 02, 2011 at 09:57:59PM +0200, Thomas Gleixner wrote:
> On Fri, 2 Sep 2011, Dimitri Sivanich wrote:
> > On Fri, Sep 02, 2011 at 10:19:36AM +0200, Thomas Gleixner wrote:
> > +#ifdef CONFIG_SYSFS
> > +/**
> > + * sysfs_show_do_timer_cpu - sysfs interface for tick_do_timer_cpu
> > + * @dev:        unused
> > + * @buf:        char buffer where value of tick_do_timer_cpu is copied
> > + *
> > + * Provides sysfs interface for showing the current tick_do_timer_cpu.
> > + */
> > +static ssize_t
> > +sysfs_show_do_timer_cpu(struct sys_device *dev,
> > +				struct sysdev_attribute *attr, char *buf)
> > +{
> > +	ssize_t count = 0;
> > +
> > +	count = snprintf(buf, PAGE_SIZE, "%d\n", tick_do_timer_cpu);
> > +
> > +	return count;
> > +}
> > +
> > +/**
> > + * sysfs_override_do_timer_cpu - manually override tick_do_timer_cpu
> > + * @dev:        unused
> > + * @buf:        cpu number of desired tick_do_timer_cpu
> > + * @count:      length of buffer
> > + *
> > + * Takes input from sysfs interface for manually overriding the selected
> > + * tick_do_timer_cpu.  Only applicable when not running in nohz mode.
> > + */
> > +static ssize_t
> > +sysfs_override_do_timer_cpu(struct sys_device *dev,
> > +					struct sysdev_attribute *attr,
> > +					const char *buf, size_t count)
> > +{
> > +	char b[16];
> > +	size_t ret = count;
> > +	int c;
> > +
> > +#ifdef CONFIG_NO_HZ
> > +	/* nohz mode not supported */
> > +	if (tick_nohz_enabled)
> > +		return -EINVAL;
> > +#endif
> > +	/* strings from sysfs write are not 0 terminated! */
> > +	if (count >= sizeof(b))
> > +		return -EINVAL;
> > +
> > +	/* strip off \n: */
> > +	if (buf[count-1] == '\n')
> > +		count--;
> > +	if (count < 1)
> > +		return -EINVAL;
> > +
> > +	memcpy(b, buf, count);
> > +	b[count] = 0;
> > +
> > +	if (sscanf(b, "%d", &c) != 1)
> > +		return -EINVAL;
> 
> Isn't there a function which parses sysfs writes into an integer ?
>

There is sysdev_store_int(), but one would need to define a
sysdev_ext_attribute specifying a global int (as 'var') to accept the value.
We would not want that value to be tick_do_timer_cpu, however.

Maybe there's another function that I'm missing?

Given the value restrictions for tick_do_timer_cpu, would you agree that it
seems simpler to leave it this way (or use some form of strtol) rather than
using sysdev_store_int?

  reply	other threads:[~2011-09-02 20:39 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-17 16:07 [PATCH] specific do_timer_cpu value for nohz off mode Dimitri Sivanich
2011-08-17 16:47 ` Thomas Gleixner
2011-08-23 19:56   ` Dimitri Sivanich
2011-09-02  8:19     ` Thomas Gleixner
2011-09-02 19:29       ` Dimitri Sivanich
2011-09-02 19:57         ` Thomas Gleixner
2011-09-02 20:39           ` Dimitri Sivanich [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-11-08 19:11 Dimitri Sivanich
2011-11-23  0:08 ` Andrew Morton
2011-11-30 15:29   ` Dimitri Sivanich
2011-12-01  0:11     ` Andrew Morton
2011-12-01  0:16       ` Andrew Morton
2011-12-01  2:07         ` Dimitri Sivanich
2011-12-01  2:13           ` Andrew Morton
2011-12-01 16:37             ` Dimitri Sivanich
2011-12-01 22:56               ` Andrew Morton
2011-12-02 20:14                 ` Dimitri Sivanich
2011-12-02 20:22                   ` Dimitri Sivanich
2011-12-02 22:42                   ` Thomas Gleixner
2011-12-01  2:06       ` Dimitri Sivanich
2011-12-01  2:12         ` Andrew Morton
2011-12-01  2:34           ` Dimitri Sivanich
2011-12-01  2:38             ` Andrew Morton
2012-01-15 13:46 ` Mike Galbraith
2012-01-15 14:04   ` Mike Galbraith
2012-01-15 14:23   ` Mike Galbraith
2012-01-25 11:27   ` Mike Galbraith
2012-02-15 14:16 ` Thomas Gleixner
2012-02-15 14:37   ` Dimitri Sivanich
2012-02-15 14:52     ` Thomas Gleixner
2012-02-15 15:34       ` Dimitri Sivanich
2012-02-15 20:36         ` Thomas Gleixner
2012-02-16 14:59           ` Dimitri Sivanich
2011-08-03 19:57 Dimitri Sivanich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110902203917.GA340@sgi.com \
    --to=sivanich@sgi.com \
    --cc=johnstul@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox