Messages in this thread Patch in this message | | | Date | Fri, 5 Nov 2004 10:44:49 -0600 | From | Jack Steiner <> | Subject | Re: Externalize SLIT table |
| |
On Fri, Nov 05, 2004 at 05:26:10PM +0100, Andreas Schwab wrote: > Jack Steiner <steiner@sgi.com> writes: > > > @@ -111,6 +111,21 @@ static ssize_t node_read_numastat(struct > > } > > static SYSDEV_ATTR(numastat, S_IRUGO, node_read_numastat, NULL); > > > > +static ssize_t node_read_distance(struct sys_device * dev, char * buf) > > +{ > > + int nid = dev->id; > > + int len = 0; > > + int i; > > + > > + for (i = 0; i < numnodes; i++) > > + len += sprintf(buf + len, "%s%d", i ? " " : "", node_distance(nid, i)); > > Can this overflow the space allocated for buf?
Good point. I think we are ok for now. AFAIK, the largest cpu count currently supported is 512. That gives a max string of 2k (max of 3 digits + space per cpu).
However, I should probably add a BUILD_BUG_ON to check for overflow.
BUILD_BUG_ON(NR_NODES*4 > PAGE_SIZE/2); BUILD_BUG_ON(NR_CPUS*4 > PAGE_SIZE/2);
> > > @@ -58,6 +59,31 @@ static inline void register_cpu_control( > > } > > #endif /* CONFIG_HOTPLUG_CPU */ > > > > +#ifdef CONFIG_NUMA > > +static ssize_t cpu_read_distance(struct sys_device * dev, char * buf) > > +{ > > + int nid = cpu_to_node(dev->id); > > + int len = 0; > > + int i; > > + > > + for (i = 0; i < num_possible_cpus(); i++) > > + len += sprintf(buf + len, "%s%d", i ? " " : "", > > + node_distance(nid, cpu_to_node(i))); > > Or this? > > Andreas. > > -- > Andreas Schwab, SuSE Labs, schwab@suse.de > SuSE Linux AG, Maxfeldstra_e 5, 90409 N|rnberg, Germany > Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 > "And now for something completely different."
-- Thanks
Jack Steiner (steiner@sgi.com) 651-683-5302 Principal Engineer SGI - Silicon Graphics, Inc.
- 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/
| |