worker_cpu_affinity

Igor Sysoev is at rambler-co.ru
Wed Nov 28 07:21:51 MSK 2007


On Tue, Nov 27, 2007 at 01:30:53PM -0800, Cliff Wells wrote:

> I'm running a dual processor (Athlon MP) server.  Gentoo Linux.  Nginx
> is 0.6.16.
> 
> In nginx.com I have:
> 
> worker_processes        2;
> worker_cpu_affinity     0001 0010;
> 
> 
> But I see in my error log the following:
> 
> 2007/11/27 13:11:00 [notice] 19009#0: start worker processes
> 2007/11/27 13:11:00 [notice] 19010#0: sched_setaffinity(0x00000001)
> 2007/11/27 13:11:00 [alert] 19010#0: sched_setaffinity(0x00000001)
> failed (22: Invalid argument)
> 2007/11/27 13:11:00 [notice] 19009#0: start worker process 19010
> 2007/11/27 13:11:00 [notice] 19011#0: sched_setaffinity(0x00000002)
> 2007/11/27 13:11:00 [alert] 19011#0: sched_setaffinity(0x00000002)
> failed (22: Invalid argument)
> 2007/11/27 13:11:00 [notice] 19009#0: start worker process 19011

Try the attached patch.


-- 
Igor Sysoev
http://sysoev.ru/en/
-------------- next part --------------
Index: src/os/unix/ngx_process_cycle.c
===================================================================
--- src/os/unix/ngx_process_cycle.c	(revision 985)
+++ src/os/unix/ngx_process_cycle.c	(working copy)
@@ -883,7 +883,9 @@
         ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0,
                       "sched_setaffinity(0x%08Xl)", cpu_affinity);
 
-        if (sched_setaffinity(0, 32, (cpu_set_t *) &cpu_affinity) == -1) {
+        if (sched_setaffinity(0, sizeof(cpu_set_t), (cpu_set_t *) &cpu_affinity)
+            == -1)
+        {
             ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
                           "sched_setaffinity(0x%08Xl) failed", cpu_affinity);
         }


More information about the nginx mailing list