Change syscall usec timeouts to unsigned longs
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 30 Sep 2016 20:20:46 +0000 (16:20 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 6 Oct 2016 19:41:48 +0000 (15:41 -0400)
I noticed this due to some sys_block calls having a 'negative' argument in
the printout (due to the %d in the saved string).

While I was here, I also changed halt_core, though note that that timeout
was more of a 'future plan', I think.  The code doesn't use it.

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

index 326b257..cbd9ba5 100644 (file)
@@ -465,13 +465,10 @@ static int sys_null(void)
 
 /* Diagnostic function: blocks the kthread/syscall, to help userspace test its
  * async I/O handling. */
-static int sys_block(struct proc *p, unsigned int usec)
+static int sys_block(struct proc *p, unsigned long usec)
 {
-       sysc_save_str("block for %d usec", usec);
-       /* Note printing takes a few ms, so your printds won't be perfect. */
-       printd("[kernel] sys_block(), sleeping at %llu\n", read_tsc());
+       sysc_save_str("block for %lu usec", usec);
        kthread_usleep(usec);
-       printd("[kernel] sys_block(), waking up at %llu\n", read_tsc());
        return 0;
 }
 
@@ -1364,7 +1361,7 @@ static int sys_vc_entry(struct proc *p)
  * is trying to halt.  The core need not abort the halt for notif_pending for
  * the vcore, only for a __notify or other RKM.  Anyone setting notif_pending
  * should then attempt to __notify (o/w it's probably a bug). */
-static int sys_halt_core(struct proc *p, unsigned int usec)
+static int sys_halt_core(struct proc *p, unsigned long usec)
 {
        struct per_cpu_info *pcpui = &per_cpu_info[core_id()];
        struct preempt_data *vcpd;
index 255c50f..8f32973 100644 (file)
@@ -43,9 +43,9 @@ int                   sys_provision(int pid, unsigned int res_type, long res_val);
 int         sys_notify(int pid, unsigned int ev_type, struct event_msg *u_msg);
 int         sys_self_notify(uint32_t vcoreid, unsigned int ev_type,
                             struct event_msg *u_msg, bool priv);
-int         sys_halt_core(unsigned int usec);
+int         sys_halt_core(unsigned long usec);
 void*          sys_init_arsc();
-int         sys_block(unsigned int usec);
+int         sys_block(unsigned long usec);
 int         sys_change_vcore(uint32_t vcoreid, bool enable_my_notif);
 int         sys_change_to_m(void);
 int         sys_poke_ksched(int pid, unsigned int res_type);
index 2134dcf..2d91a3c 100644 (file)
@@ -83,7 +83,7 @@ int sys_self_notify(uint32_t vcoreid, unsigned int ev_type,
        return ros_syscall(SYS_self_notify, vcoreid, ev_type, u_msg, priv, 0, 0);
 }
 
-int sys_halt_core(unsigned int usec)
+int sys_halt_core(unsigned long usec)
 {
        return ros_syscall(SYS_halt_core, usec, 0, 0, 0, 0, 0);
 }
@@ -93,7 +93,7 @@ void* sys_init_arsc()
        return (void*)ros_syscall(SYS_init_arsc, 0, 0, 0, 0, 0, 0);
 }
 
-int sys_block(unsigned int usec)
+int sys_block(unsigned long usec)
 {
        return ros_syscall(SYS_block, usec, 0, 0, 0, 0, 0);
 }