编程接口指南

使用 lgrp_affinity_set()

lgrp_affinity_set(3LGRP) 函数设置 LWP 或 LWP 集合与给定 lgroup 的关联。

#include <sys/lgrp_user.h>

int lgrp_affinity_set(idtype_t idtype, id_t id, lgrp_id_t lgrp,

                      lgrp_affinity_t affinity);

idtypeid 参数指定 lgrp_affinity_set() 函数检查的 LWP 或 LWP 集合。如果 idtype 的值为 P_PID,则 lgrp_affinity_set() 函数会将进程 ID 与 id 参数值匹配的进程中所有 LWP 的 lgroup 关联设置为 affinity 参数中指定的关联级别。如果 idtype 的值为 P_LWPID,则 lgrp_affinity_set() 函数会将 LWP ID 与 id 参数值匹配的当前进程的 LWP 的 lgroup 关联设置为 affinity 参数中指定的关联级别。如果 idtype 的值为 P_MYID,则 lgrp_affinity_set() 函数会将当前 LWP 或进程的 lgroup 关联设置为 affinity 参数中指定的关联级别。

如果给定的 lgroup、关联或 ID 类型无效,则 lgrp_affinity_set() 函数将返回 EINVAL。如果调用进程的有效用户不是超级用户,并且调用进程的 ID 与某个 LWP 的实际用户 ID 或有效用户 ID 不匹配,则 lgrp_affinity_set() 函数将返回 EPERM。如果未找到给定的 lgroup 或 LWP,则 lgrp_affinity_set() 函数将返回 ESRCH