[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 1/3] libxc: do some retries in xc_cpupool_removecpu() for EBUSY case
On Tue, Apr 12, 2016 at 03:45:06PM +0200, Juergen Gross wrote: > On 12/04/16 15:02, Olaf Hering wrote: > > On Thu, Mar 10, Juergen Gross wrote: > > > >> +#define NUM_RMCPU_BUSY_RETRIES 5 > >> + > >> int xc_cpupool_removecpu(xc_interface *xch, > >> uint32_t poolid, > >> int cpu) > >> { > >> + unsigned retries; > >> + int err; > >> DECLARE_SYSCTL; > >> > >> sysctl.cmd = XEN_SYSCTL_cpupool_op; > >> sysctl.u.cpupool_op.op = XEN_SYSCTL_CPUPOOL_OP_RMCPU; > >> sysctl.u.cpupool_op.cpupool_id = poolid; > >> sysctl.u.cpupool_op.cpu = (cpu < 0) ? XEN_SYSCTL_CPUPOOL_PAR_ANY : > >> cpu; > >> - return do_sysctl_save(xch, &sysctl); > >> + for ( retries = 0; retries < NUM_RMCPU_BUSY_RETRIES; retries++ ) { > >> + err = do_sysctl_save(xch, &sysctl); > >> + if ( err < 0 && errno == EBUSY ) > >> + sleep(1); > >> + else > >> + break; > >> + } > >> + return err; > > > > This may fail with gcc-4.8, at least with -Og in 13.1: > > > > [ 105s] xc_cpupool.c: In function 'xc_cpupool_removecpu': > > [ 105s] xc_cpupool.c:168:5: error: 'err' may be used uninitialized in this > > function [-Werror=maybe-uninitialized] > > [ 105s] return err; > > [ 105s] ^ > > IMO this is a compiler bug. The compiler could detect easily that err > can't be uninitialized at the return statement (e.g. via loop > unrolling). > > I can do a patch, of course. The question is whether I should. :-) > You should -- and document that it is to make buggy compiler happy. We've done this before. Wei. > > Juergen _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |