[PATCH] linux get affinity syscall
Jeff Roberson
jroberson at chesapeake.net
Thu Mar 6 04:32:35 UTC 2008
On Wed, 5 Mar 2008, Roman Divacky wrote:
>>>>>> if (args->len < sizeof(cpumask_t))
>>>>>> return (EINVAL);
>>
>> This should not be necessary anymore.
>>
>>>>>
>>>>> Len here is in number of bits I believe as it is for our cpusetsize.
>>>>
>>>> no.. its specified in bytes
>>>
>>> You are right. So it is with fdsets. Please hold on and I'll change
>>> cpuset to be bytes as well.
>>>
>>>>
>>>>>>
>>>>>> cga.level = CPU_LEVEL_WHICH;
>>>>>> cga.which = CPU_WHICH_PID;
>>>>>> cga.id = args->pid;
>>>>>> cga.cpusetsize = sizeof(cpumask_t) * NBBY;
>>>>>> cga.mask = (long *) args->user_mask_ptr;
>>>>>
>>
>> I checked in a change to make our cpusetsize compatible. You should only
>> have to supply CPU_LEVEL_WHICH and CPU_WHICH_PID now. The rest of the
>> arguments are compatible.
>
> is it possible to make cpuset_setproc non-static?
>
> if so could you please review the following patch:
>
> www.vlakno.cz/~rdivacky/linux_affinity.patch
>
> and tell me if its ok? (it lacks #include of something that should
> contain the prototype for cpuset_setproc())
Why not call cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, id,
cpusetlen, user_mask_ptr); as you do with getaffinity? Then we don't have
to expose the internal interface. You also don't have to error check the
length then.
Thanks,
Jeff
>
> thnx, roman
>
More information about the freebsd-emulation
mailing list