潮声隔雨深 · 2020年03月08日

请问andoid 是否支持isolcpus将arm的某个核隔离?

请问andoid 是否支持isolcpus将arm的某个核隔离?

我想实现在arm的某个指定核上跑一个单独的线程,该核为该线程独占。

另外,在实现过程中,需要用cpu亲和性去绑定特定线程,发现android NDK不支持thread_setaffinity_np接口,请问哪位有解决办法?

dongshengcui@vizum-VirtualBox:~/qwz/bind$ aarch64-linux-android-g++ bindThread.c -o bindThread -lpthread
bindThread.c: In function 'void myfun(void)':
bindThread.c:23:71: error: 'pthread_setaffinity_np' was not declared in this scope
if (pthread_setaffinity_np(pthread_self(), sizeof(mask), &mask) < 0) {
^
bindThread.c:27:69: error: 'pthread_getaffinity_np' was not declared in this scope
if (pthread_getaffinity_np(pthread_self(), sizeof(get), &get) < 0) {
^
dongshengcui@vizum-VirtualBox:~/qwz/bind$

1 个回答 得票排序 · 时间排序
一知半解 · 2020年03月08日

任何Android应用程序都需要遵循Google Android API (包括NDK API)的定义和引用方式。如果没有对应功能的API,标准的Android APK应用程序就不能访问对应系统底层功能。

一种解决方式是:自己修改系统BSP代码,建立私有接口提供给上层应用调用。不过这种方式无法支持通用平台的APK开发。只适合内部系统的开发和调试。

你的回答