lkml.org 
[lkml]   [2004]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] - Externel SLIT table information thru sysfs
Jack Steiner wrote:
> The ACPI SLIT table provides useful information on internode distances.
> Here is a patch to externalize the SLIT information.
>
> For example:
>
> # cd /sys/devices/system
> # find .
> ./node
> ./node/node5
> ./node/node5/distance
> ./node/node5/numastat
> ./node/node5/meminfo
> ./node/node5/cpumap
>
> # cat ./node/node0/distance
> 10 20 64 42 42 22
>
> # cat node/*/distance
> 10 20 64 42 42 22
> 20 10 42 22 64 84
> 64 42 10 20 22 42
> 42 22 20 10 42 62
> 42 64 22 42 10 20
> 22 84 42 62 20 10

Apparently I'm easily confused, but node_distance() {near end}
seems to evaluate to either 10 or 20 (only), so what are
all of these other numbers here?

And how many nodes are in this example?
Maybe 6, numbered 0 thru 5? Plz correct this guess....

> Index: linux/drivers/base/node.c
> ===================================================================
> --- linux.orig/drivers/base/node.c 2004-11-05 08:34:42.461312000 -0600
> +++ linux/drivers/base/node.c 2004-11-05 15:56:23.345662000 -0600
> @@ -111,6 +111,24 @@ 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;
> +
> + /* buf currently PAGE_SIZE, need ~4 chars per node */
> + BUILD_BUG_ON(NR_NODES*4 > PAGE_SIZE/2);
> +
> + for (i = 0; i < numnodes; i++)
> + len += sprintf(buf + len, "%s%d", i ? " " : "", node_distance(nid, i));
> +
> + len += sprintf(buf + len, "\n");
> + return len;
> +}
> +static SYSDEV_ATTR(distance, S_IRUGO, node_read_distance, NULL);
> +
> +
> Index: linux/include/linux/topology.h
> ===================================================================
> --- linux.orig/include/linux/topology.h 2004-11-05 08:34:57.492932000 -0600
> +++ linux/include/linux/topology.h 2004-11-23 10:03:26.700821978 -0600
> @@ -55,7 +55,10 @@ static inline int __next_node_with_cpus(
> for (node = 0; node < numnodes; node = __next_node_with_cpus(node))
>
> #ifndef node_distance
> -#define node_distance(from,to) ((from) != (to))
> +/* Conform to ACPI 2.0 SLIT distance definitions */
> +#define LOCAL_DISTANCE 10
> +#define REMOTE_DISTANCE 20
> +#define node_distance(from,to) ((from) == (to) ? LOCAL_DISTANCE : REMOTE_DISTANCE)
Please add a space after "from,".

> #endif

--
~Randy
-
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/

\
 
 \ /
  Last update: 2005-03-22 14:08    [W:0.539 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site