Exploiting Dual Core's with Py_NewInterpreter's separated GIL ?

Andrew MacIntyre andymac at bullseye.apana.org.au
Fri Nov 10 19:42:28 EST 2006


Robin Becker wrote:
> Robin Becker wrote:
>> Andrew MacIntyre wrote:
>>> Robin Becker wrote:
>>>
>>>> I think it uses sysv semaphores and although freeBSD 6 has them 
>>>> perhaps there's something I need to do to allow them to work.
>>> IIRC, you need to explicitly configure loading the kernel module, or
>>> compile the kernel with the necessary option in the config file.
>>>
>> I tried loading the module, but it seems already to be in the kernel. 
>> Probably some sysctl stuff to do.
>>
> In fact the semaphore modules are built in now. I did some debugging and the 
> error happens in the code at SemSet.c line 25
> 
> 
>    for (i = 0; i < sets; i++) {
>      int id = semget(IPC_PRIVATE, MAX_SYSV_SET_SIZE, IPC_CREAT
>              | S_IREAD | S_IWRITE); //SEM_R | SEM_A);
>      if (id == -1) {
> 
> the first semget(i=0) succeeds and the second fails with an errno ENOSPC which 
> from the man page implies a resource issue of some kind.
> 
>      [ENOSPC]           Insufficiently many semaphores are available.
>      [ENOSPC]           The kernel could not allocate a struct semid_ds.
> 
> 
> I guess the freebsd limits  must be different to the original development 
> environment.

The number of semaphores is certainly tunable - the SYSV IPC KERNEL 
PARAMETERS section in the file /usr/src/sys/conf/NOTES lists the SYSV
semaphore parameters that can be set in the kernel config.

-- 
-------------------------------------------------------------------------
Andrew I MacIntyre                     "These thoughts are mine alone..."
E-mail: andymac at bullseye.apana.org.au  (pref) | Snail: PO Box 370
        andymac at pcug.org.au             (alt) |        Belconnen ACT 2616
Web:    http://www.andymac.org/               |        Australia



More information about the Python-list mailing list