Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - wpi (Intel 3945abg) Memory Allocation Errors on Receive > 0: (3 Items)
   
wpi (Intel 3945abg) Memory Allocation Errors on Receive > 0  
Some background information:
Asus Z96J laptop
Intel Core2Duo, QNX 6.4 SMP kernel (installed from SDP LiveCD)
4GB RAM (some unmappable due to 32-bit address limitations in the northbridge) so the allocation error is configuration,
 not lack of resources
EIDE HDD
EIDE DVD-RW
eSATA and USB ports (not used in this configuration but drivers may be loaded during boot by enum-devices)
RealTek 8169 Gigabit Ethernet Controller (en0)
Intel 3945ABG wireless (wpi0)

The 8169 wired ethernet was recognized by the QNX LiveCD.

Grabbed core-networking via SSH, built for x86 and installed, grabbed the firmware file off the net as suggested in the 
wpi driver readme.

Created wpa_supplicant.conf with my WPA Personal preshared key.

Using these commands to load the wpi driver (mount because the TCP/IP stack is already running to support the wired 
interface):
<code>
# cat /root/startwifi.sh
mount -T io-pkt -o "firmware=/etc/firmware/wpi-3945abg,pagesize=8192,mclsize=8192" /usr/qnx640/target/qnx6/x86/lib/dll/
devnp-wpi.so
ifconfig wpi0 up
dhcp.client -i wpi0 &
wpa_supplicant -B -Dbsd -iwpi0 -c /etc/wpa_supplicant.conf
</code>

(Side note: where is the right place to load this on boot?  Add to /etc/rc.d/something ?)

The Problem:
<code>
# nicinfo
en0:
  RealTek 8169 Gigabit Ethernet Controller

  Link is DOWN

  Physical Node ID ........................... 001BFC 45AABD
  Current Physical Node ID ................... 001BFC 45AABD
  Current Operation Rate ..................... Unknown
  Active Interface Type ...................... MII
    Active PHY address ....................... 0
  Maximum Transmittable data Unit ............ 1514
  Maximum Receivable data Unit ............... 1514
  Hardware Interrupt ......................... 0xa
  I/O Aperture ............................... 0xd800 - 0xd8ff
  Memory Aperture ............................ 0xfeaffc00 - 0xfeaffcff
  Promiscuous Mode ........................... Off
  Multicast Support .......................... Enabled

  Packets Transmitted OK ..................... 30132
  Bytes Transmitted OK ....................... 684
  Memory Allocation Failures on Transmit ..... 0

  Packets Received OK ........................ 44498
  Bytes Received OK .......................... 0
  Broadcast Packets Received OK .............. 161
  Multicast Packets Received OK .............. 240
  Memory Allocation Failures on Receive ...... 0

  Single Collisions on Transmit .............. 0
  Transmits aborted (excessive collisions) ... 0
  Transmit Underruns ......................... 80
  No Carrier on Transmit ..................... 0
  Receive Alignment errors ................... 1
  Received packets with CRC errors ........... 0
  Packets Dropped on receive ................. 0

wpi0:
   Ethernet Controller

  Physical Node ID ........................... 0019D2 B1B291
  Current Physical Node ID ................... 0019D2 B1B291
  Current Operation Rate ..................... 0 kb/s half-duplex
  Active Interface Type ...................... Unknown
  Maximum Transmittable data Unit ............ 1500
  Maximum Receivable data Unit ............... 0
  Promiscuous Mode ........................... Off
  Multicast Support .......................... Enabled

  Packets Transmitted OK ..................... 658
  Bytes Transmitted OK ....................... 140095
  Multicast Packets Transmitted OK ........... 0
  Memory Allocation Failures on Transmit ..... 0

  Packets Received OK ........................ 719
  Bytes Received OK .......................... 692727
  Multicast Packets Received OK .............. 2
  Memory Allocation Failures on Receive ...... 3
</code>

I intially didn't use the pagesize=8192,mclsize=8192.  That was my attempt to solve the Memory Allocation Failures.

So any idea what configuration setting I need to change to prevent memory allocation failures?  Or is that failing 
inside the wireless...
View Full Message
Re: wpi (Intel 3945abg) Memory Allocation Errors on Receive > 0  
"Allocation error on receive" could be due to a couple
of things in the wpip driver.  This stat is actually
printing out ifp->if_ierrors (same count as 'netstat -in').
Try running just the wpi driver without the 'pagesize' and
'mclsize' args and check the sloginfo.

-seanb



On Sun, Jan 11, 2009 at 05:04:17PM -0500, Ben Voigt wrote:
> Some background information:
> Asus Z96J laptop
> Intel Core2Duo, QNX 6.4 SMP kernel (installed from SDP LiveCD)
> 4GB RAM (some unmappable due to 32-bit address limitations in the northbridge) so the allocation error is 
configuration, not lack of resources
> EIDE HDD
> EIDE DVD-RW
> eSATA and USB ports (not used in this configuration but drivers may be loaded during boot by enum-devices)
> RealTek 8169 Gigabit Ethernet Controller (en0)
> Intel 3945ABG wireless (wpi0)
> 
> The 8169 wired ethernet was recognized by the QNX LiveCD.
> 
> Grabbed core-networking via SSH, built for x86 and installed, grabbed the firmware file off the net as suggested in 
the wpi driver readme.
> 
> Created wpa_supplicant.conf with my WPA Personal preshared key.
> 
> Using these commands to load the wpi driver (mount because the TCP/IP stack is already running to support the wired 
interface):
> <code>
> # cat /root/startwifi.sh
> mount -T io-pkt -o "firmware=/etc/firmware/wpi-3945abg,pagesize=8192,mclsize=8192" /usr/qnx640/target/qnx6/x86/lib/dll
/devnp-wpi.so
> ifconfig wpi0 up
> dhcp.client -i wpi0 &
> wpa_supplicant -B -Dbsd -iwpi0 -c /etc/wpa_supplicant.conf
> </code>
> 
> (Side note: where is the right place to load this on boot?  Add to /etc/rc.d/something ?)
> 
> The Problem:
> <code>
> # nicinfo
> en0:
>   RealTek 8169 Gigabit Ethernet Controller
> 
>   Link is DOWN
> 
>   Physical Node ID ........................... 001BFC 45AABD
>   Current Physical Node ID ................... 001BFC 45AABD
>   Current Operation Rate ..................... Unknown
>   Active Interface Type ...................... MII
>     Active PHY address ....................... 0
>   Maximum Transmittable data Unit ............ 1514
>   Maximum Receivable data Unit ............... 1514
>   Hardware Interrupt ......................... 0xa
>   I/O Aperture ............................... 0xd800 - 0xd8ff
>   Memory Aperture ............................ 0xfeaffc00 - 0xfeaffcff
>   Promiscuous Mode ........................... Off
>   Multicast Support .......................... Enabled
> 
>   Packets Transmitted OK ..................... 30132
>   Bytes Transmitted OK ....................... 684
>   Memory Allocation Failures on Transmit ..... 0
> 
>   Packets Received OK ........................ 44498
>   Bytes Received OK .......................... 0
>   Broadcast Packets Received OK .............. 161
>   Multicast Packets Received OK .............. 240
>   Memory Allocation Failures on Receive ...... 0
> 
>   Single Collisions on Transmit .............. 0
>   Transmits aborted (excessive collisions) ... 0
>   Transmit Underruns ......................... 80
>   No Carrier on Transmit ..................... 0
>   Receive Alignment errors ................... 1
>   Received packets with CRC errors ........... 0
>   Packets Dropped on receive ................. 0
> 
> wpi0:
>    Ethernet Controller
> 
>   Physical Node ID ........................... 0019D2 B1B291
>   Current Physical Node ID ................... 0019D2 B1B291
>   Current Operation Rate ..................... 0 kb/s half-duplex
>   Active Interface Type ...................... Unknown
>   Maximum Transmittable data Unit ............ 1500
>   Maximum Receivable data Unit ............... 0
>   Promiscuous Mode ........................... Off
>   Multicast...
View Full Message
Re: wpi (Intel 3945abg) Memory Allocation Errors on Receive > 0  
> 
> "Allocation error on receive" could be due to a couple
> of things in the wpip driver.  This stat is actually
> printing out ifp->if_ierrors (same count as 'netstat -in').
> Try running just the wpi driver without the 'pagesize' and
> 'mclsize' args and check the sloginfo.
> 
> -seanb
> 

Thanks for your help in this.

I didn't originally have pagesize,mclsize in the options.  I added them because of the allocation error, thinking that 
preallocating larger blocks might reduce the number used.  Not likely to help for normal size frames I know, but the 
documentation of network options is pretty scarce and I didn't see anything to preallocate a greater number of buffers. 
 Anyway, the error occurred before I added these options, but I will take them out.

sloginfo was pretty useless to me initially because the log was full of I/O errors on my DVD reader.  Turns out it 
needed a firmware update (and was probably the source of occasional lockups in Windows Vista as well, the symptom of the
 EIDE controller LED staying lit was common).  More recently there is nothing added to the log for extended periods of 
time.