Brice Goglin, le Thu 05 Nov 2009 17:22:15 +0100, a écrit :
> + int hwloc_plpa_sched_getaffinity(pid_t pid, hwloc_cpuset_t cpuset);
> It's just a hwloc_get_cpubind(), but we don't have it since it would not
> be supported on all OS. But I think we should add it anyway.

Being discussed in another thread.

> * Then we have all count-spec related API, which lets you look for
> information about all processors, or all online ones, or all offline ones.
> If people are really interested with offline CPUs, they can look at the
> get_offline_cpuset below. There is no topology information about offline
> CPUs on Linux anyway,

And at least on some other OSes as well, but not on Solaris for

> + hwloc_cpuset_t hwloc_topology_get_offline_cpuset(hwloc_topology_t topology);
> Returns a CPU set of existing CPUs that are offline, disabled by
> administrator, or unavailable to this process if we're restricting the
> topology to the process origin binding for instance. I am not sure we
> actually need to distinguish all these cases.

Mmm, I think there's one more thing that is actually more precise in
some way: "the CPUs that we don't provide topology objects for": some
OSes don't expose unauthorized CPUs even if they are online.  It would
thus also include CPUs which have explicitly been ignored because

I think it can be useful to provide the cpuset of allowed cpus.  One
could imagine a tool that negociates with the administrator tools
which cpus to be added/removed from the allowed set, knowing the whole
topology and which CPUs are allowed would be useful.  Maybe powering
up/down could be involved too, thus the offline mask too.  The current
binding is already available from hwloc_get_cpubind.

Actually, that gives me the idea that it'd be probably nice to somehow
show that in the graphical lstopo :)


Reply via email to