This is a discussion on Re: [PATCH] linux get affinity syscall - FreeBSD ; On Mon, 3 Mar 2008, Roman Divacky wrote: > On Mon, Mar 03, 2008 at 02:23:49AM -1000, Jeff Roberson wrote: >> >> On Sun, 2 Mar 2008, Roman Divacky wrote: >> >>> hi.. >>> >>> jeff commited his cpu set ...
On Mon, 3 Mar 2008, Roman Divacky wrote:
> On Mon, Mar 03, 2008 at 02:23:49AM -1000, Jeff Roberson wrote:
>> On Sun, 2 Mar 2008, Roman Divacky wrote:
>>> jeff commited his cpu set and I tried to map that to linuxulator
>>> version of linux_sched_getaffinity(), the current (untested) code
>>> looks like this:
>>> * Get affinity of a process
>>> linux_sched_getaffinity(struct thread *td,
>>> struct linux_sched_getaffinity_args *args)
>>> int error;
>>> struct cpuset_getaffinity_args cga;
>>> if (args->len < sizeof(cpumask_t))
>>> return (EINVAL);
>> 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;
>> Our call will accept larger values and zero fill any bits we don't use.
>> It should be safe to pass the original len.
> ok.. will do it like that
> thnx for the comments, can anyone test the stuff? (I have access
> to UP only ATM)
email@example.com mailing list
To unsubscribe, send any mail to "firstname.lastname@example.org"