编程接口指南

使用 lgrp_init()

lgrp_init() 函数初始化 lgroup 接口并获取 lgroup 分层结构的快照。

#include <sys/lgrp_user.h>

lgrp_cookie_t lgrp_init(lgrp_view_t view);

如果 lgrp_init() 函数是使用 LGRP_VIEW_CALLER 作为视图进行调用的,则此函数返回的快照仅包含可供调用线程使用的资源。如果 lgrp_init() 函数是使用 LGRP_VIEW_OS 作为视图进行调用的,则此函数返回的快照将包含可供操作系统使用的资源。如果线程成功调用 lgrp_init() 函数,则此函数将返回一个 cookie,与 lgroup 分层结构进行交互的任何函数均使用此 cookie。当线程不再需要此 cookie 时,将使用此 cookie 作为参数来调用 lgrp_fini() 函数。

lgroup 分层结构包括一个根 lgroup,其中包含计算机的所有 CPU 和内存资源。根 lgroup 可以包含其他由更小延迟限定的地址组。

lgrp_init() 函数可以返回两个错误。如果视图无效,则此函数将返回 EINVAL。如果没有足够的内存用于分配 lgroup 分层结构的快照,则此函数将返回 ENOMEM