It takes a brilliant man to detect typos.
I'm not sure that processor_bind() can be used by a non-parent process -- try having each process processor_bind() itself.
Also, check the return codes of processor_bind() to see if it is successful or not.
Regards, Dan
On Tue, Apr 13, 2010 at 3:05 PM, sparsh mittal ISU <sparsh@xxxxxxxxxxx> wrote:
Thanks for the remark. Yes,that was a typo. (you are really brilliant Dan). I corrected it and tried again. However the output of prstat -a is PID state cpu process 316 cpu0 50% app1 317 run 50% app2 324 cpu1 0.1% prstat
Thus, on cpu1, prstat is running, so, that may be the reason that app2 is put on the run queue. The man prstat shows that cpu utilization shows: "The percentage of recent CPU time used by the process." That means 50% of time of cpu0 is being used by app1. But why not 100%?
Thanks Sparsh
On Tue, Apr 13, 2010 at 2:15 PM, Dan Gibson <degibson@xxxxxxxx> wrote:
It looks like you are binding both to processor 0. Was that a typo?On Tue, Apr 13, 2010 at 2:13 PM, sparsh mittal ISU <sparsh@xxxxxxxxxxx> wrote:
Hello Thanks for the responses. I think the number of processors should be power of two. So, if I try to use processor_bind, then I have tried the following program.
#include<sys/types.h> #include <sys/processor.h>
#include <sys/procset.h>
int main() { processor_bind(272, 316, 0,NULL); processor_bind(272, 317, 0, NULL); return 0; }
Here 316 and 317 are the PIDs of two benchmarks and 272 is the PPID, as shown by command ps -el.
So, I compiled the program, by gcc process.c -o procExe
and then I execute it ./procExe
Is that all? I still see the CPU utilizations to be around 50% and never two processes are simultaneously running.
Thanks SparshOn Tue, Apr 13, 2010 at 1:33 PM, Dan Gibson <degibson@xxxxxxxx> wrote:
I don't know the details, but somehow psrset_bind is stronger than processor_bind, though the latter allows 'binding' to processor zero. I would call processor_bind().
Regards, Dan
2010/4/13 Javi Merino <merinocj@xxxxxxxxx>
Dan Gibson wrote:
> >From man psrset:
> The default processor set (0) always exists and may not be destroyed.
> All processes and processors at system init time start out in the
> system default processor set. For this reason processor 0 may never be
> removed from the default group. (Hence this feature is of no value on
> a single processor system.)
>
> Hence, in order to have two bound processes, you need at least three
> processors. What you have probably done is inadvertently bound both
> processes to CPU 1.
What I do is launch the benchmarks and then run a C program which
basically does:
processor_bind(P_PID, pid_of_bench1, 0, NULL);
processor_bind(P_PID, pid_of_bench2, 1, NULL);
I think this way you avoid the processor sets. I did this a while ago
and can't remember the details, but I think this works and effectively
binds the pids to processors 0 and 1. Is it wrong?
Regards,
Javi
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
-- Thanks and Regards Sparsh Mittal
Graduate Student Electrical and Computer Engineering Iowa State University, Iowa, USA
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
-- http://www.cs.wisc.edu/~gibson [esc]:wq!
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
-- Thanks and Regards Sparsh Mittal Graduate Student Electrical and Computer Engineering Iowa State University, Iowa, USA
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.
-- http://www.cs.wisc.edu/~gibson [esc]:wq!
|