Re: Linux process and threads, CPU Affinity

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 13, 2013 at 10:43 AM, manty kuma <mantykuma@xxxxxxxxx> wrote:
> I have few queries related to threads and Process scheduling in Linux.
>
> When my process goes into sleep and wakes back, is it always that it will be
> scheduled on the same CPU that it got scheduled before?
> When i create a thread from the process, Will it also be executed on the
> same CPU always? Even if other CPU's are free and sleeping.
>
> I would like to know the mechanism in Linux in specific. Also i am creating
> the threads through pthread library. I am facing a random hangup issue which
> is always not reproducible. Need this information to proceed in the right
> direction.
>
>
> I have also posted a query for the same SO. But no constructive reply. Hence
> re-posting it here.
>
> http://stackoverflow.com/questions/18779947/linux-threads-and-process-cpu-affinity

Hello,

The answer you received on the SO thread seems accurate to me.
User-space processes and threads both map to something called tasks in
the kernel. They are both seem as execution units, but threads share
everything (code, data, open files) except registers and stack. So
they are treated the same by the kernel in terms of scheduling.

If a task sleeps as a result of I/O, signal or time slice exceeded it
is no longer run on the CPU and when it resumes running it is the
scheduler policy that decides how the task is rescheduled. I believe
the policy decides how to take into account the affinity, meaning that
you could set the affinity and the scheduler might ignore it.

The article at [1] demonstrates how to use CPU affinity and [2] and
[3] show how to change the affinity and scheduler policy.

[1] http://www.ibm.com/developerworks/linux/library/l-affinity/index.html
[2] http://man7.org/linux/man-pages/man2/sched_setaffinity.2.html
[3] http://man7.org/linux/man-pages/man2/sched_setscheduler.2.html

-- 
Silviu Popescu

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux