linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: linux-mm <linux-mm@kvack.org>,
	Nish Aravamudan <nish.aravamudan@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	mel@skynet.ie, y-goto@jp.fujitsu.com,
	Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Eric Whitney <eric.whitney@hp.com>
Subject: Re: [PATCH/RFC] Add node states sysfs class attributeS - V4
Date: Thu, 30 Aug 2007 14:41:53 -0400	[thread overview]
Message-ID: <1188499314.5794.114.camel@localhost> (raw)
In-Reply-To: <Pine.LNX.4.64.0708301116530.7975@schroedinger.engr.sgi.com>

On Thu, 2007-08-30 at 11:19 -0700, Christoph Lameter wrote:
> On Thu, 30 Aug 2007, Lee Schermerhorn wrote:
> 
> > Try, try again.  Maybe closer this time.
> 
> Yes. Thanks for all your work on this.
> 
> > Question:  do we need/want to display the normal and high memory masks
> > separately for systems with HIGHMEM?  If not, I'd suggest changing the
> > print_nodes_state() function to take a nodemask_t* instead of a state
> > enum and expose a single 'has_memory' attribute that we print using
> > something like:
> 
> No leave it separate.

OK.
> 
> > 
> > static ssize_t print_nodes_has_memory(struct sysdev_class *class,
> > 						char *buf)
> > {
> > 	nodemask_t has_memory = node_states[N_NORMAL_MEMORY];
> > 
> > 	if (N_HIGH_MEMORY - N_NORMAL_MEMORY)
> 
> Uggg. Better do #ifdef CONFIG_HIGHMEM

I thought Andrew preferred to allow the compiler to do the dead code
elimination after syntax checking, ...  Sounds like it's moot in this
case, tho', as we're leaving the two masks separate.

> 
> > 		nodes_or(has_memory, has_memory, node_states[N_HIGH_MEMORY]);
> > 
> > 	return print_nodes_state(&has_memory, buf);
> 
> > + * node states attributes
> > + */
> > +
> > +static ssize_t print_nodes_state(enum node_states state, char *buf)
> > +{
> > +	int n;
> > +
> > +	n = nodelist_scnprintf(buf, PAGE_SIZE, node_states[state]);
> > +	if (n <= 0)
> > +		goto done;
> > +	if (PAGE_SIZE - n > 1) {
> 
> if (n > 0 && PAGE_SIZE > n + 1)

OK.  I'll fix that after KS.
> 
> ?
> > +		*(buf + n++) = '\n';
> > +		*(buf + n++) = '\0';
> > +	}
> 
> > +static ssize_t print_nodes_possible(struct sysdev_class *class, char *buf)
> > +{
> > +	return print_nodes_state(N_POSSIBLE, buf);
> > +}
> > +
> > +static ssize_t print_nodes_online(struct sysdev_class *class, char *buf)
> > +{
> > +	return print_nodes_state(N_ONLINE, buf);
> > +}
> > +
> > +static ssize_t print_nodes_has_normal_memory(struct sysdev_class *class,
> > +						char *buf)
> > +{
> > +	return print_nodes_state(N_NORMAL_MEMORY, buf);
> > +}
> > +
> > +static ssize_t print_nodes_has_cpu(struct sysdev_class *class, char *buf)
> > +{
> > +	return print_nodes_state(N_CPU, buf);
> > +}
> > +
> > +static SYSDEV_CLASS_ATTR(possible, 0444, print_nodes_possible, NULL);
> > +static SYSDEV_CLASS_ATTR(online, 0444, print_nodes_online, NULL);
> > +static SYSDEV_CLASS_ATTR(has_normal_memory, 0444, print_nodes_has_normal_memory,
> 
> I am sure that there is some way to dynamicall allocate these.

There may be some way to allocate the files in a group.  Not sure for
class attribute files.  In any case, AFAICS the attributes/files each
require a separately defined attribute structure.  I'll let this set for
a week or so and see if I can find a preferred way.

Lee

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2007-08-30 18:41 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200708242228.l7OMS5fU017948@imap1.linux-foundation.org>
2007-08-27 15:58 ` [PATCH] 2.6.23-rc3-mm1 - update N_HIGH_MEMORY node state for memory hotadd Lee Schermerhorn
2007-08-27 17:48 ` [PATCH/RFC] Add node 'states' sysfs class attribute Lee Schermerhorn
2007-08-27 19:11   ` Christoph Lameter
2007-08-27 20:08     ` Lee Schermerhorn
2007-08-27 20:15       ` Christoph Lameter
2007-08-27 21:02 ` [PATCH/RFC] Add node 'states' sysfs class attribute - V2 Lee Schermerhorn
2007-08-27 21:04   ` Christoph Lameter
2007-08-28  0:01   ` Andrew Morton
2007-08-28  0:08     ` Christoph Lameter
2007-08-28  1:14       ` Andrew Morton
2007-08-28  1:29         ` Christoph Lameter
2007-08-28  3:18           ` Andrew Morton
2007-08-28  5:15             ` Christoph Lameter
2007-08-28  5:29               ` Andrew Morton
2007-08-28  5:34                 ` Andrew Morton
2007-08-28  5:53                 ` Christoph Lameter
2007-08-28  6:12                   ` Andrew Morton
2007-08-28 14:05                     ` Lee Schermerhorn
2007-08-28 22:02                       ` Christoph Lameter
2007-08-28 22:13                         ` Nish Aravamudan
2007-08-29 14:43                           ` Lee Schermerhorn
2007-08-29 17:39                             ` Christoph Lameter
2007-08-29 21:31                               ` [PATCH/RFC] Add node states sysfs class attributeS - V3 Lee Schermerhorn
2007-08-29 22:14                                 ` Christoph Lameter
2007-08-30 13:34                                   ` Lee Schermerhorn
2007-08-29 22:36                                 ` Nish Aravamudan
2007-08-30 15:19                               ` [PATCH/RFC] Add node states sysfs class attributeS - V4 Lee Schermerhorn
2007-08-30 16:44                                 ` Nish Aravamudan
2007-08-30 18:20                                   ` Christoph Lameter
2007-08-30 18:19                                 ` Christoph Lameter
2007-08-30 18:41                                   ` Lee Schermerhorn [this message]
2007-09-11 13:56                               ` [PATCH/RFC] Add node states sysfs class attributeS - V5 Lee Schermerhorn
2007-09-11 20:25                                 ` Christoph Lameter
2007-09-14 10:50                                 ` Andrew Morton
2007-09-14 11:35                                   ` Andy Whitcroft
2007-09-14 14:34                                     ` Lee Schermerhorn
2007-09-14 14:43                                   ` Mel Gorman
2007-09-14 15:00                                     ` Paul Mundt
2007-09-16 12:10                                       ` Mel Gorman
2007-09-14 16:00                                     ` Martin J. Bligh
2007-08-28 19:34                     ` [PATCH/RFC] Add node 'states' sysfs class attribute - V2 Christoph Lameter
2007-08-28  1:16   ` Yasunori Goto
2007-08-28  1:21     ` Yasunori Goto

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=1188499314.5794.114.camel@localhost \
    --to=lee.schermerhorn@hp.com \
    --cc=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=eric.whitney@hp.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-mm@kvack.org \
    --cc=mel@skynet.ie \
    --cc=nish.aravamudan@gmail.com \
    --cc=y-goto@jp.fujitsu.com \
    /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