Eric Dumazet
4e69489a0a
socket: use percpu_add() while updating sockets_in_use
...
sock_alloc() currently uses following code to update sockets_in_use
get_cpu_var(sockets_in_use)++;
put_cpu_var(sockets_in_use);
This translates to :
c0436274: b8 01 00 00 00 mov $0x1,%eax
c0436279: e8 42 40 df ff call c022a2c0 <add_preempt_count>
c043627e: bb 20 4f 6a c0 mov $0xc06a4f20,%ebx
c0436283: e8 18 ca f0 ff call c0342ca0 <debug_smp_processor_id>
c0436288: 03 1c 85 60 4a 65 c0 add -0x3f9ab5a0(,%eax,4),%ebx
c043628f: ff 03 incl (%ebx)
c0436291: b8 01 00 00 00 mov $0x1,%eax
c0436296: e8 75 3f df ff call c022a210 <sub_preempt_count>
c043629b: 89 e0 mov %esp,%eax
c043629d: 25 00 e0 ff ff and $0xffffe000,%eax
c04362a2: f6 40 08 08 testb $0x8,0x8(%eax)
c04362a6: 75 07 jne c04362af <sock_alloc+0x7f>
c04362a8: 8d 46 d8 lea -0x28(%esi),%eax
c04362ab: 5b pop %ebx
c04362ac: 5e pop %esi
c04362ad: c9 leave
c04362ae: c3 ret
c04362af: e8 cc 5d 09 00 call c04cc080 <preempt_schedule>
c04362b4: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
c04362b8: eb ee jmp c04362a8 <sock_alloc+0x78>
While percpu_add(sockets_in_use, 1) translates to a single instruction :
c0436275: 64 83 05 20 5f 6a c0 addl $0x1,%fs:0xc06a5f20
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-04-04 16:41:09 -07:00
..
2009-02-26 23:13:32 -08:00
2009-03-21 19:06:50 -07:00
2009-03-17 13:10:52 -07:00
2009-03-27 00:27:18 -07:00
2009-03-21 19:19:12 -07:00
2009-03-27 17:23:42 -07:00
2009-03-26 15:23:24 -07:00
2009-03-26 01:22:01 -07:00
2009-02-26 23:07:35 -08:00
2009-04-02 01:07:37 -07:00
2009-01-04 17:29:21 -08:00
2009-03-02 03:07:23 -08:00
2009-03-21 13:36:17 -07:00
2009-03-21 19:06:54 -07:00
2009-03-10 05:22:43 -07:00
2008-11-23 23:24:32 -08:00
2009-04-02 16:31:45 -07:00
2009-04-02 00:54:43 -07:00
2009-03-21 19:06:51 -07:00
2009-03-21 19:19:16 -07:00
2009-02-26 23:07:37 -08:00
2009-02-26 23:07:32 -08:00
2009-03-10 05:22:43 -07:00
2009-03-27 20:13:23 -04:00
2009-03-29 13:46:01 -07:00
2008-12-31 12:54:11 -05:00
2009-03-26 15:23:24 -07:00
2009-03-27 17:22:55 -07:00
2009-03-13 12:09:28 -07:00
2009-03-10 05:22:43 -07:00
2009-04-02 00:52:22 -07:00
2009-01-04 17:11:24 -08:00
2009-03-27 00:28:21 -07:00
2009-02-06 21:50:52 -08:00
2009-03-21 13:36:17 -07:00
2009-03-21 13:41:09 -07:00
2009-03-27 16:23:12 -07:00
2009-03-18 19:11:29 -07:00
2009-02-26 23:07:34 -08:00
2009-02-26 23:13:36 -08:00
2009-02-14 23:12:00 -08:00
2009-03-27 20:13:23 -04:00
2009-03-27 00:28:21 -07:00
2009-03-27 00:23:04 -07:00
2009-02-15 22:43:35 -08:00
2009-03-26 15:23:24 -07:00
2009-02-26 23:43:35 -08:00
2009-04-04 16:41:09 -07:00
2009-03-16 16:23:30 +01:00