Make userspace think it has at least one vcore
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 13 Nov 2015 20:29:56 +0000 (15:29 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 13 Nov 2015 22:45:51 +0000 (17:45 -0500)
This popped up if you ran Akaros on a single core machine.  In that case, you'd
have 0 CG cores, which means the kernel gives you 0 vcores.  However, SCPs
think they have one vcore.  If a process runs at all, it needs to think it has
at least one vcore.

Rebuild busybox.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
user/parlib/include/vcore.h

index 66b6b81..05e538a 100644 (file)
@@ -77,7 +77,7 @@ bool check_vcoreid(const char *str, uint32_t vcoreid);
 /* Static inlines */
 static inline uint32_t max_vcores(void)
 {
-       return MIN(__procinfo.max_vcores, MAX_VCORES);
+       return MAX(1, MIN(__procinfo.max_vcores, MAX_VCORES));
 }
 
 static inline uint32_t num_vcores(void)