lkml.org 
[lkml]   [2012]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: perf script: rwtop: SIGALRM and pipe read race
On 9/17/12 10:02 AM, Arnaldo Carvalho de Melo wrote:
> Em Mon, Sep 17, 2012 at 09:16:19AM -0600, David Ahern escreveu:
>> On 9/17/12 8:55 AM, David Ahern wrote:
>>> 2. the rwtop.pl script is not handling negative return values ($ret < 0)
>>> properly -- the '$ret > 0' check is succeeding even though $ret is
>>> negative (e.g., -EAGAIN) leading to astronomical read values
>>
>> I think perl is treating $ret as an unsigned integer.
>>
>> Again, I know little about perl, but this change to
>> ./scripts/perl/rwtop.pl makes it behave properly:
>>
>> my $n = sprintf("%d", $ret);
>>
>> if ($n > 0) {
>> ...
>
> I think what you figured out makes sense, its the best we have and you
> found it to get it back working, could you please send the two patches
> properly signed-off, etc?

I'll do that for the readn.

The above change seems like a workaround - not a proper fix. Why is perl
treating it like an unsigned int? The trace format for the read syscall
shows long. How is the binding done for perl? I can't make heads or
tails of it scanning the files under perl. If we are forced to do a hack
like the above is there a better way? I tried (int) $ret and perl did
not like that. Any other (better) options?

David



\
 
 \ /
  Last update: 2012-09-17 19:01    [W:0.286 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site