Re: borked sysfs system devices in 2.5.72

Patrick Mochel
2003-06-17T22:10:54Z

On 17 Jun 2003, Dave Hansen wrote:

> The per-node numa meminfo files in 2.5.72 are broken, the only display
> node0's information. The devices are being properly registered:
> Registering sys device 'node0':c0423844 id:0 kobj:c042384c
> Registering sys device 'node1':c0423888 id:1 kobj:c0423890
> Registering sys device 'node2':c04238cc id:2 kobj:c04238d4
> Registering sys device 'node3':c0423910 id:3 kobj:c0423918
>
> When I look at the 4 nodes files with:
> "cat /sys/devices/system/node/*/meminfo", I printed out some
> information:
> subsys_attr_show(kobj: c042384c, attr: c033ea30, page: e76ba000)
> subsys_attr_show(kobj: c0423890, attr: c033ea30, page: e76ba000)
> subsys_attr_show(kobj: c04238d4, attr: c033ea30, page: e76ba000)
> subsys_attr_show(kobj: c0423918, attr: c033ea30, page: e76ba000)
>
> As you can see, the kobj is the one which belongs to the sys device, yet
> you do a to_subsys() on it. Why?
> struct subsystem * s = to_subsys(kobj);

Where exactly is that happening?

> I'm getting a 0 as the node ID out of pure dumb luck. Is the NUMA code
> broken or is sysfs?

It's taking the ID from the system device of the node that's passed to
->show(). That is set in register_node(), so I'm not sure how they could
get out of sync, unless I'm missing something obvious.

BTW, I did request that the NUMA topology people take a look at these
patches when I sent them a couple of weeks ago, so as to avoid this. :)

-pat