On Thu, 6 Jul 2017, Thomas Gleixner wrote:

On Thu, 6 Jul 2017, Shivappa Vikas wrote:
On Sun, 2 Jul 2017, Thomas Gleixner wrote:
+static bool __mon_event_count(u32 rmid, struct rmid_read *rr)
+{
+       u64 tval;
+
+       tval = __rmid_read(rmid, rr->evtid);
+       if (tval & (RMID_VAL_ERROR | RMID_VAL_UNAVAIL)) {
+               rr->val = tval;
+               return false;
+       }
+       switch (rr->evtid) {
+       case QOS_L3_OCCUP_EVENT_ID:
+               rr->val += tval;
+               return true;
+       default:
+               return false;

I have no idea what that return code means.

false for the invalid event id and all errors for __rmid_read. (IOW all errors
for __mon_event-read)

Sure, but why bool? What's wrong with proper error return codes, so issues
can be distinguished and potentially propagated in the callchain?

Ok, The error is propagated wih the rr->val actually. is this better?

Hardware throws the RMID_VAL_ERROR (bit 63) when an invalid RMID or event is written to event select - this case seems similar.

        default:
                rr->val = RMID_VAL_ERROR;
                return -EINVAL;
        }

Thanks,
Vikas


Thanks,

        tglx





Reply via email to