Continuation of cpumask discussion on the call… For creating arbitrary masks (e.g. fill in a mask with CPU ids of another ODP program in the system, or testing all possible mask bits), we may need two more calls:
/** * @return Maximum number of CPUs a mask can hold */ int odp_cpumask_max_cpus(void) /** * Set all CPUs in the mask * * After the call, the mask has odp_cpumask_max_cpus() CPUs set. * @note CPU numbering may not be contiguous. */ void odp_cpumask_setall(odp_cpumask_t *mask) -Petri From: lng-odp-boun...@lists.linaro.org [mailto:lng-odp-boun...@lists.linaro.org] On Behalf Of ext Savolainen, Petri (Nokia - FI/Espoo) Sent: Wednesday, March 11, 2015 2:09 PM To: ext Christophe Milard; lng-odp@lists.linaro.org Subject: Re: [lng-odp] odp_cpu_count() vs odp_cpumask size Actually, this is equal to odp_cpu_max(): odp_cpumask_t mask; odp_cpu_mask(&mask) odp_cpumask_last(&mask) So maybe odp_cpu_mask() is only new thing we need. -Petri From: lng-odp-boun...@lists.linaro.org<mailto:lng-odp-boun...@lists.linaro.org> [mailto:lng-odp-boun...@lists.linaro.org] On Behalf Of ext Savolainen, Petri (Nokia - FI/Espoo) Sent: Wednesday, March 11, 2015 2:03 PM To: ext Christophe Milard; lng-odp@lists.linaro.org<mailto:lng-odp@lists.linaro.org> Subject: Re: [lng-odp] odp_cpu_count() vs odp_cpumask size CPU IDs are system dependent. So e.g. odp_cpu_count() == 2 would not necessarily result a cpumask with cpus 0 and 1 set, but e.g. cpus 7 and 17 set. Typically, the mask comes from user/system level (user has decided to run the ODP app on cpus 7 and 17). We may need two new functions: /** * @return the max CPU available to the ODP program */ int odp_cpu_max(void) , but still that would not tell which ids between 0 and max are valid, so we need also /** * Output mask of CPUs available to the ODP program */ void odp_cpu_mask(odp_cpumask_t *mask) -Petri From: lng-odp-boun...@lists.linaro.org<mailto:lng-odp-boun...@lists.linaro.org> [mailto:lng-odp-boun...@lists.linaro.org] On Behalf Of ext Christophe Milard Sent: Tuesday, March 10, 2015 4:22 PM To: lng-odp@lists.linaro.org<mailto:lng-odp@lists.linaro.org> Subject: [lng-odp] odp_cpu_count() vs odp_cpumask size Hi, I am writing validation tests for the odp_cpumask functions. The question is: How many CPUs should the cpu mask be tested for?. Of course, the answer is implementation dependent, but if we want the tests to be non platform dependent, the tests should know the max number of CPU the mask could contain. In the API the function odp_cpu_count(void) is defined. This function "reports the number of CPUs available to this ODP program". Is this also the maximum number of CPU in the mask, or should the mask also have room for non "odp reserved cpus"? For instance, in a system running 2 linux (control) cpus, and 5 ODP cpus, should the mask be tested for 5 or 7 CPUs? If 7 is the answer, how do I get this number from the current API... /Christophe.
_______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp