soft lockups

Steve Clark <[email protected]> Mon, 27 Jul 2009 15:22:57 -0400
Newsgroups gmane.comp.security.firewalls.ipfilter
Message-ID <3153_1248722604_4A6DFEAC_3153_4869_1_4A6DFE91.8060907@netwolves.com>
Darren,

Without the following patch I am experiencing soft lockups on RHEL 5.3 - Linux 2.6.18...

*** ipfilter/ip_compat.h        2009-07-21 21:42:57.000000000 -0400
--- ipfilter-4-1-RELEASE._patched/ip_compat.h   2009-07-27 11:21:56.000000000 -0400
***************
*** 1218,1225 ****
  #  define     KRWLOCK_T               rwlock_t
  #  define     KMUTEX_T                spinlock_t
  #  define     MUTEX_INIT(x,y)         spin_lock_init(&(x)->ipf_lk)
! #  define     MUTEX_ENTER(x)          spin_lock(&(x)->ipf_lk)
! #  define     MUTEX_EXIT(x)           spin_unlock(&(x)->ipf_lk)
  #  define     MUTEX_DESTROY(x)        do { } while (0)
  #  define     MUTEX_NUKE(x)           bzero(&(x)->ipf_lk, sizeof((x)->ipf_lk))
  #  define     READ_ENTER(x)           ipf_read_enter(x)
--- 1218,1225 ----
  #  define     KRWLOCK_T               rwlock_t
  #  define     KMUTEX_T                spinlock_t
  #  define     MUTEX_INIT(x,y)         spin_lock_init(&(x)->ipf_lk)
! #  define     MUTEX_ENTER(x)          spin_lock_bh(&(x)->ipf_lk)
! #  define     MUTEX_EXIT(x)           spin_unlock_bh(&(x)->ipf_lk)
  #  define     MUTEX_DESTROY(x)        do { } while (0)
  #  define     MUTEX_NUKE(x)           bzero(&(x)->ipf_lk, sizeof((x)->ipf_lk))
  #  define     READ_ENTER(x)           ipf_read_enter(x)


==================================
Pid: 3363, comm:                 sshd
EIP: 0060:[<c060ffd8>] CPU: 0        
EIP is at _spin_lock+0x7/0xf         
 EFLAGS: 00000286    Tainted: P       (2.6.18-128.1.10.el5 #1)
EAX: e1aa9dbc EBX: e1aa9e48 ECX: db1a8820 EDX: 00000004       
ESI: 00000004 EDI: c0734e84 EBP: 00000014 DS: 007b ES: 007b   
CR0: 8005003b CR2: ffffffff CR3: 17594000 CR4: 000006d0       
 [<e1a81392>] ipf_read_enter+0x12/0x30 [ipfilter]             
 [<e1a873fd>] fr_check+0x11d/0xb80 [ipfilter]                 
 [<c042bfb5>] __mod_timer+0x99/0xa3                           
 [<e1a81765>] ipf_linux_inout+0x75/0xc0 [ipfilter]            
 [<c05c9a1c>] nf_iterate+0x30/0x61                            
 [<c05ce67c>] ip_rcv_finish+0x0/0x280                         
 [<c05c9b42>] nf_hook_slow+0x3a/0x90                          
 [<c05ce67c>] ip_rcv_finish+0x0/0x280                         
 [<c05ced4d>] ip_rcv+0x202/0x4a9                              
 [<c05ce67c>] ip_rcv_finish+0x0/0x280                         
 [<c05b48bf>] netif_receive_skb+0x31a/0x33e                   
 [<e097b05c>] e1000_clean_rx_irq+0x354/0x429 [e1000]          
 [<e097a133>] e1000_clean+0x6b/0x21f [e1000]                  
 [<c05b6216>] net_rx_action+0x92/0x175                        
 [<c0428bd3>] __do_softirq+0x87/0x114                         
 [<c04073eb>] do_softirq+0x52/0x9c                            
 [<c04059d7>] apic_timer_interrupt+0x1f/0x24                  
 [<e1a87852>] fr_check+0x572/0xb80 [ipfilter]                 
 [<e1a81765>] ipf_linux_inout+0x75/0xc0 [ipfilter]            
 [<c05c9a1c>] nf_iterate+0x30/0x61                            
 [<c05d266d>] ip_finish_output+0x0/0x1db                      
 [<c05c9b42>] nf_hook_slow+0x3a/0x90                          
 [<c05d266d>] ip_finish_output+0x0/0x1db                      
 [<c05d3934>] ip_output+0x82/0x266                            
 [<c05d266d>] ip_finish_output+0x0/0x1db                      
 [<c05d329a>] ip_queue_xmit+0x3cc/0x40b                       
 [<c05e058c>] tcp_init_tso_segs+0x32/0x42                     
 [<c05e5965>] tcp_v4_send_check+0x77/0xbd                     
 [<c05e0e5c>] tcp_transmit_skb+0x5c7/0x5f5                    
 [<c05b0dbd>] __alloc_skb+0x49/0xf4                           
 [<c05e1006>] tcp_send_ack+0xde/0xe2                          
 [<c05d9dad>] tcp_recvmsg+0x8e3/0x9f0                         
 [<c06087fa>] unix_stream_sendmsg+0x251/0x317                 
 [<c05ad46a>] sock_common_recvmsg+0x2f/0x45                   
 [<c05aafb8>] do_sock_read+0xae/0xb7                          
 [<c05ab54b>] sock_aio_read+0x53/0x61                         
 [<c0472497>] do_sync_read+0xb6/0xf1                          
 [<c043464f>] autoremove_wake_function+0x0/0x2d               
 [<c044a29f>] audit_syscall_entry+0x14b/0x17d                 
 [<c0472db1>] vfs_read+0xb0/0x141                             
 [<c04731ee>] sys_read+0x3c/0x63                              
 [<c0404f17>] syscall_call+0x7/0xb                            
 =======================