disable CPU affinity for UE and also for case when MAX_CPUS <=2

This commit is contained in:
Rohit Gupta
2016-04-12 12:54:15 +02:00
parent 00b26f36a0
commit 6e5d7cdde7
+35 -28
View File
@@ -3298,39 +3298,46 @@ int main( int argc, char **argv )
} }
#ifndef LOWLATENCY #ifndef LOWLATENCY
cpu_set_t cpuset;
int s;
char cpu_affinity[1024];
LOG_I(HW, "Setting the affinity of main function to CPU 0, for device library to use CPU 0 only!\n"); /* Currently we set affinity for UHD to CPU 0 for eNB only and only if number of CPUS >2 */
/* ToDo: Set CPU affinity for UE */
if (UE_flag == 0 && get_nprocs() > 2)
{
cpu_set_t cpuset;
int s;
char cpu_affinity[1024];
LOG_I(HW, "Setting the affinity of main function to CPU 0, for device library to use CPU 0 only!\n");
CPU_ZERO(&cpuset); CPU_ZERO(&cpuset);
CPU_SET(0, &cpuset); CPU_SET(0, &cpuset);
s = pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); s = pthread_setaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);
if (s != 0) if (s != 0)
{ {
perror( "pthread_setaffinity_np"); perror( "pthread_setaffinity_np");
exit_fun("Error setting processor affinity"); exit_fun("Error setting processor affinity");
} }
/* Check the actual affinity mask assigned to the thread */
s = pthread_getaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); /* Check the actual affinity mask assigned to the thread */
if (s != 0) s = pthread_getaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset);
{ if (s != 0)
perror( "pthread_getaffinity_np"); {
exit_fun("Error getting processor affinity "); perror( "pthread_getaffinity_np");
exit_fun("Error getting processor affinity ");
}
memset(cpu_affinity, 0 , sizeof(cpu_affinity));
for (int j = 0; j < CPU_SETSIZE; j++)
{
if (CPU_ISSET(j, &cpuset))
{
char temp[1024];
sprintf(temp, " CPU_%d ", j);
strcat(cpu_affinity, temp);
}
}
LOG_I(HW, "CPU Affinity of main() function is... %s\n", cpu_affinity);
} }
memset(cpu_affinity, 0 , sizeof(cpu_affinity));
for (int j = 0; j < CPU_SETSIZE; j++)
if (CPU_ISSET(j, &cpuset))
{
char temp[1024];
sprintf(temp, " CPU_%d ", j);
strcat(cpu_affinity, temp);
}
LOG_I(HW, "CPU Affinity of main() function is... %s\n", cpu_affinity);
#endif #endif
/* device host type is set*/ /* device host type is set*/