packet sockets and dev_get_by_name

From: Ben Greear <hidden>
Date: 2002-10-16 07:13:14

It appears that the the

  static int packet_sendmsg_spkt(struct socket *sock, struct msghdr *msg, int len,
			       struct scm_cookie *scm)

method in net/packet/af_packet.c does a dev_get_by_name on each packet sent.
...
	/*
	 *	Find the device first to size check it
	 */

	saddr->spkt_device[13] = 0;
	dev = dev_get_by_name(saddr->spkt_device);
	err = -ENODEV;
	if (dev == NULL)
		goto out_unlock;

The packet_sendmsg does a dev_get_by_index, which is also a linear walk...


Think it would be worth optimizing this?  Seems if we hashed devices
on their index, and then (for packet_sendmsg_spkt) cached the last device
we found for a name in the socket, we could make this more like O(1).

Ben

-- 
Ben Greear [off-list ref]       <Ben_Greear AT excite.com>
President of Candela Technologies Inc      http://www.candelatech.com
ScryMUD:  http://scry.wanfear.com     http://scry.wanfear.com/~greear
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help