Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
blktrace.1013
btreplay-machines-are-now-large-enough-that-hol...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File btreplay-machines-are-now-large-enough-that-holes-need-to-be-dealt-with.patch of Package blktrace.1013
From: Nathan Zimmer <nzimmer@sgi.com> Date: Mon, 15 Apr 2013 09:53:33 -0500 Subject: btreplay: Machines are now large enough that holes need to be dealt with Git-repo: git://git.kernel.dk/blktrace.git Git-commit: 0c2df13d11dd91a1c3933dcc8faa98f2b59a5793 Patch-mainline: blktrace-1.1.0 References: bsc#934392 The current method fails if once we hit the first offlined cpu. This will correct that case. However this still underreports the number cpus if the last cpu are offlined. Cc: Jens Axboe <axboe@kernel.dk> Signed-off-by: Nathan Zimmer <nzimmer@sgi.com> Signed-off-by: Jens Axboe <axboe@kernel.dk> Acked-by: Jeff Mahoney <jeffm@suse.com> --- btreplay/btreplay.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/btreplay/btreplay.c b/btreplay/btreplay.c index 20494e0..6f0ba63 100644 --- a/btreplay/btreplay.c +++ b/btreplay/btreplay.c @@ -502,6 +502,7 @@ static inline void start_iter(void) */ static void get_ncpus(void) { + long last_cpu; cpu_set_t cpus; if (sched_getaffinity(getpid(), sizeof(cpus), &cpus)) { @@ -509,12 +510,11 @@ static void get_ncpus(void) /*NOTREACHED*/ } - /* - * XXX This assumes (perhaps wrongly) that there are no /holes/ - * XXX in the mask. - */ - for (ncpus = 0; ncpus < CPU_SETSIZE && CPU_ISSET(ncpus, &cpus); ncpus++) - ; + ncpus = -1; + for (last_cpu = 0; last_cpu < CPU_SETSIZE && CPU_ISSET(last_cpu, &cpus); last_cpu++) + if (CPU_ISSET( last_cpu, &cpus) ) + ncpus = last_cpu; + ncpus++; if (ncpus == 0) { fatal(NULL, ERR_SYSCALL, "Insufficient number of CPUs\n"); /*NOTREACHED*/
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor