]> Zhao Yanbai Git Server - minix.git/commitdiff
getrusage(2): zero out ru_nsignals field 01/3201/1
authorDavid van Moolenbroek <david@minix3.org>
Sun, 27 Sep 2015 15:00:19 +0000 (15:00 +0000)
committerDavid van Moolenbroek <david@minix3.org>
Mon, 28 Sep 2015 14:06:58 +0000 (14:06 +0000)
The current value was both wrong (counting spawned kernel signals
rather than delivered user signals) and returned for the calling
process even if the request was for the process's children.
For now we are better off not populating this field at all.

Change-Id: I6c660be266b5746b7c3db57ae88fa7f872961ee2

minix/kernel/proc.c
minix/kernel/proc.h
minix/kernel/proto.h
minix/kernel/system.c
minix/kernel/system/do_fork.c
minix/kernel/system/do_getinfo.c
minix/usr.bin/trace/service/pm.c

index 57864dbe6d7365fc758463f557db72a0bf01bce7..7076023cd656dc1dd35210b4b7ebee8670cd4d3f 100644 (file)
@@ -1983,8 +1983,3 @@ void ser_dump_proc()
                 print_proc_recursive(pp);
         }
 }
-
-void increase_proc_signals(struct proc *p)
-{
-       p->p_signal_received++;
-}
index 3b80630d68da4b57bc820468b88eac494681893d..75cb0517cb9ddf89be3fd56b56fd709b12ebfe64 100644 (file)
@@ -126,8 +126,6 @@ struct proc {
    */
   struct { reg_t r1, r2, r3; } p_defer;
 
-  u64_t p_signal_received;
-
 #if DEBUG_TRACE
   int p_schedules;
 #endif
index 08129f41830b9a37b6bc497432bd893964bb28ff..a0b8dee0b8226e7a5cb7075f4abb0b22e48f03a8 100644 (file)
@@ -83,7 +83,6 @@ int isokendpt_f(endpoint_t e, int *p, int f);
 #endif
 void proc_no_time(struct proc *p);
 void reset_proc_accounting(struct proc *p);
-void increase_proc_signals(struct proc *p);
 void flag_account(struct proc *p, int flag);
 int try_deliver_senda(struct proc *caller_ptr, asynmsg_t *table, size_t
        size);
index 08bc24a3acabf8727e5fcd0b9367967da2f9b446..78724262e65a50a817952a9b7e9708c15ecf223a 100644 (file)
@@ -378,7 +378,6 @@ int send_sig(endpoint_t ep, int sig_nr)
   priv = priv(rp);
   if(!priv) return ENOENT;
   sigaddset(&priv->s_sig_pending, sig_nr);
-  increase_proc_signals(rp);
   mini_notify(proc_addr(SYSTEM), rp->p_endpoint);
 
   return OK;
@@ -443,7 +442,6 @@ int sig_nr;                 /* signal to be sent */
   /* Check if the signal is already pending. Process it otherwise. */
   if (!s) {
       sigaddset(&rp->p_pending, sig_nr);
-       increase_proc_signals(rp);
       if (! (RTS_ISSET(rp, RTS_SIGNALED))) {           /* other pending */
          RTS_SET(rp, RTS_SIGNALED | RTS_SIG_PENDING);
           if(OK != send_sig(sig_mgr, SIGKSIG))
index 3873a2a2cff46a21901d4517a2dfb7cc68f4fed5..76324a00bd903216ccc35d0963b818c3bd5b5e41 100644 (file)
@@ -94,7 +94,6 @@ int do_fork(struct proc * caller, message * m_ptr)
   rpc->p_cycles = 0;
   rpc->p_kcall_cycles = 0;
   rpc->p_kipc_cycles = 0;
-  rpc->p_signal_received = 0;
 
   /* If the parent is a privileged process, take away the privileges from the 
    * child process and inhibit it from running by setting the NO_PRIV flag.
index e47b28c1edf1bee3fc0482a130a51046e1da2eab..85e81d0621748f316672fda96ac3943aa48aba65 100644 (file)
@@ -211,7 +211,6 @@ int do_getinfo(struct proc * caller, message * m_ptr)
        usec = target->p_sys_time * 1000000 / system_hz;
        r_usage.ru_stime.tv_sec = usec / 1000000;
        r_usage.ru_stime.tv_usec = usec % 1000000;
-       r_usage.ru_nsignals = target->p_signal_received;
        src_vir = (vir_bytes) &r_usage;
        break;
     }
index 0656bdb945d60bae14422abf7db2ff63c6877452..176955dcecf03e6dfd8c68fd12029d0a51de680e 100644 (file)
@@ -1240,8 +1240,6 @@ pm_getrusage_in(struct trace_proc * proc, const message * m_out,
                put_struct_timeval(proc, "ru_stime", PF_LOCADDR,
                    (vir_bytes)&buf.ru_stime);
 
-               if (verbose > 0)
-                       put_value(proc, "ru_nsignals", "%ld", buf.ru_nsignals);
                put_close_struct(proc, verbose > 0);
        }
        put_equals(proc);