[PATCH v3] Print ip and port associated with descriptor with -yy

Masatake YAMATO yamato at redhat.com
Thu Aug 7 14:24:03 UTC 2014


Hi,


On Thu, 7 Aug 2014 19:19:47 +0530, Zubin Mithra <zubin.mithra at gmail.com> wrote:
>>
>> System calls that adding and removing a socket from fd table of process are
>> enumerable. So you can cache the response from the netlink socket safely
>> if the target program is not multi-threaded.
>>
>> * adding
>>
>>   + socket
>>   + accept
>>   + passing
>>
>> * removing
>>
>>   + close
>>   + shutdown?
>>
>>
>> Could the technique I used in commit 1d78d22058da04eac7bf726c059d5c3fb193da08
>> help you?
> 
> I'll check this commit out and reply asap.

After thinking, you may not have to track the adding.
Not in a long span, we can use inode number of socket can be used as a
key for search information from cache. The inode number can be used as 
an identifier in system global. Nice.

close() and shutdown() must be tracked to avoid overflowing of cache
area. consider stracing following broken code:

   while (1)
   {
	n = socket (...);
	close(n);
   }

In the latest linux What  I checked are

linux/net/socket.c::sock_alloc

	inode->i_ino = get_next_ino();

fs/inode.c::get_next_ino

	*p = ++res;
	put_cpu_var(last_ino);
	return res;


Masatake YAMATO




More information about the Strace-devel mailing list