#12694 NORM Future : page allocation failure, mwifiex

Zarro Boogs per Child bugtracker at laptop.org
Mon Nov 4 04:36:39 EST 2013


#12694: page allocation failure, mwifiex
------------------------------+---------------------------------------------
           Reporter:  Quozl   |       Owner:                          
               Type:  defect  |      Status:  new                     
           Priority:  normal  |   Milestone:  Future Release          
          Component:  kernel  |     Version:  Software Build 13.2.0-13
         Resolution:          |    Keywords:                          
        Next_action:  design  |    Verified:  0                       
Deployment_affected:          |   Blockedby:                          
           Blocking:          |  
------------------------------+---------------------------------------------

Comment(by Quozl):

 The best reproducer for this problem is:

 {{{
 # deplete memory
 sudo dd if=/dev/mmcblk0 of=/dev/null &
 # watch free until memory is mostly consumed by buffers or cache
 # begin file transfer
 rsync -avp server:big-file .
 # expect kernel messages within 15 to 30 seconds
 }}}

 A patch was developed to do ''the actions required to read the packets and
 dismiss the interrupt ... even if memory cannot be allocated, losing the
 data,''.

 The patch is here: http://dev.laptop.org/~quozl/y/1VdGLj.txt

 What this patch does:
  * turn off receive aggregation, (see comment below),
  * preallocate a buffer during driver startup,
  * use the buffer during receive interrupt when memory cannot be
 allocated,
  * avoid passing the buffer to the network stack,
  * recycle the buffer for further use.

 What results were observed:
  * the rsync over ssh did not stall, whereas previously it did,
  * the consequent command timeout was not observed,
  * the failure to allocate was logged in kernel messages, quite often,
  * the lack of event or command response processing eventually resulted in
 process hangs of new command invocations of ifconfig or tcpdump.

 Receive aggregation if left on resulted in corruption of the socket
 buffers, but this may have been my fault.

-- 
Ticket URL: <http://dev.laptop.org/ticket/12694#comment:6>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system


More information about the Bugs mailing list