just passing packets -> npm_tcpip.so crash (sometimes!)

Hi,

This one’s left me totally groping in the dark - any useful hints or ideas
will earn my everlasting gratitude!

Setup: QNX 6.1 on x86 with an el900 Ethernet adapter (*)

Configuration: An ip-ip intermediate driver is loaded, processing some
packets, passing others through without processing.
With most traffic, everything works fine.
With a specific traffic scenario, the driver causes io-net to die, even
though the driver does not process any of the packets!

gdb on io-net shows a segfault in “0xb03750da in resched() from
/x86/lib/dll/npm-tcpip.so” with NO traceback.

  • io-net does not crash with the driver unloaded.

  • By “passing packets through” I mean:

  • the driver’s rx_up routine does ion->tx_up() followed by
    ion->tx_done() if tx_up() returned 0.

  • the driver’s rx_down routine does ion->tx_down()

  • The packets in question a fairly small tcp/ip packets. Nothing special
    about them (as far as I can see…)

  • More information (much more!) available upon request…

Help!

Rony



(*) The problem also occurs on an RPX-Lite powerpc.

When handling down headed packets, are you using a lot of stack?
npm-tcpip.so is sensitive to this.

-seanb

Rony Shapiro <rshapiro@maya-st.com> wrote:
: Hi,

: This one’s left me totally groping in the dark - any useful hints or ideas
: will earn my everlasting gratitude!

: Setup: QNX 6.1 on x86 with an el900 Ethernet adapter (*)

: Configuration: An ip-ip intermediate driver is loaded, processing some
: packets, passing others through without processing.
: With most traffic, everything works fine.
: With a specific traffic scenario, the driver causes io-net to die, even
: though the driver does not process any of the packets!

: gdb on io-net shows a segfault in “0xb03750da in resched() from
: /x86/lib/dll/npm-tcpip.so” with NO traceback.

: - io-net does not crash with the driver unloaded.
: - By “passing packets through” I mean:
: - the driver’s rx_up routine does ion->tx_up() followed by
: ion->tx_done() if tx_up() returned 0.
: - the driver’s rx_down routine does ion->tx_down()

: - The packets in question a fairly small tcp/ip packets. Nothing special
: about them (as far as I can see…)

: - More information (much more!) available upon request…

: Help!

: Rony



: (*) The problem also occurs on an RPX-Lite powerpc.

In general, yes - we’re calling quite a few procedures nested rather deeply.

  • In the particular scenario I’ve described, we’re not calling any of that.

  • Is there a compile/link/load parameter that I can play with to make the
    stack larger, or are we totally hosed?

A problem with the stack would be consistent with the lack of a traceback in
gdb, I guess…

Thanks,

Rony

“Sean Boudreau” <seanb@qnx.com> wrote in message
news:a36gl5$n3g$1@nntp.qnx.com

When handling down headed packets, are you using a lot of stack?
npm-tcpip.so is sensitive to this.

-seanb

Rony Shapiro <> rshapiro@maya-st.com> > wrote:
: Hi,

: This one’s left me totally groping in the dark - any useful hints or
ideas
: will earn my everlasting gratitude!

: Setup: QNX 6.1 on x86 with an el900 Ethernet adapter (*)

: Configuration: An ip-ip intermediate driver is loaded, processing some
: packets, passing others through without processing.
: With most traffic, everything works fine.
: With a specific traffic scenario, the driver causes io-net to die, even
: though the driver does not process any of the packets!

: gdb on io-net shows a segfault in “0xb03750da in resched() from
: /x86/lib/dll/npm-tcpip.so” with NO traceback.

: - io-net does not crash with the driver unloaded.
: - By “passing packets through” I mean:
: - the driver’s rx_up routine does ion->tx_up() followed by
: ion->tx_done() if tx_up() returned 0.
: - the driver’s rx_down routine does ion->tx_down()

: - The packets in question a fairly small tcp/ip packets. Nothing special
: about them (as far as I can see…)

: - More information (much more!) available upon request…

: Help!

: Rony



: (*) The problem also occurs on an RPX-Lite powerpc.

The 6.2 stack will have a command line option.

-seanb

Rony Shapiro <rshapiro@maya-st.com> wrote:
: In general, yes - we’re calling quite a few procedures nested rather deeply.

: - In the particular scenario I’ve described, we’re not calling any of that.

: - Is there a compile/link/load parameter that I can play with to make the
: stack larger, or are we totally hosed?

: A problem with the stack would be consistent with the lack of a traceback in
: gdb, I guess…

: Thanks,

: Rony

: “Sean Boudreau” <seanb@qnx.com> wrote in message
: news:a36gl5$n3g$1@nntp.qnx.com
:> When handling down headed packets, are you using a lot of stack?
:> npm-tcpip.so is sensitive to this.
:>
:> -seanb
:>
:> Rony Shapiro <rshapiro@maya-st.com> wrote:
:> : Hi,
:>
:> : This one’s left me totally groping in the dark - any useful hints or
: ideas
:> : will earn my everlasting gratitude!
:>
:> : Setup: QNX 6.1 on x86 with an el900 Ethernet adapter ()
:>
:> : Configuration: An ip-ip intermediate driver is loaded, processing some
:> : packets, passing others through without processing.
:> : With most traffic, everything works fine.
:> : With a specific traffic scenario, the driver causes io-net to die, even
:> : though the driver does not process any of the packets!
:>
:> : gdb on io-net shows a segfault in “0xb03750da in resched() from
:> : /x86/lib/dll/npm-tcpip.so” with NO traceback.
:>
:> : - io-net does not crash with the driver unloaded.
:> : - By “passing packets through” I mean:
:> : - the driver’s rx_up routine does ion->tx_up() followed by
:> : ion->tx_done() if tx_up() returned 0.
:> : - the driver’s rx_down routine does ion->tx_down()
:>
:> : - The packets in question a fairly small tcp/ip packets. Nothing special
:> : about them (as far as I can see…)
:>
:> : - More information (much more!) available upon request…
:>
:> : Help!
:>
:> : Rony
:>
:>
:>
:> : (
) The problem also occurs on an RPX-Lite powerpc.
:>
:>

So I guess we’re hosed until then?

(BTW - when is 6.2 scheduled for release?)

Rony

“Sean Boudreau” <seanb@qnx.com> wrote in message
news:a36md7$r8f$1@nntp.qnx.com

The 6.2 stack will have a command line option.

-seanb

Rony Shapiro <> rshapiro@maya-st.com> > wrote:
: In general, yes - we’re calling quite a few procedures nested rather
deeply.

: - In the particular scenario I’ve described, we’re not calling any of
that.

: - Is there a compile/link/load parameter that I can play with to make
the
: stack larger, or are we totally hosed?

: A problem with the stack would be consistent with the lack of a
traceback in
: gdb, I guess…

: Thanks,

: Rony

: “Sean Boudreau” <> seanb@qnx.com> > wrote in message
: news:a36gl5$n3g$> 1@nntp.qnx.com> …
:> When handling down headed packets, are you using a lot of stack?
:> npm-tcpip.so is sensitive to this.
:
:> -seanb
:
:> Rony Shapiro <> rshapiro@maya-st.com> > wrote:
:> : Hi,
:
:> : This one’s left me totally groping in the dark - any useful hints or
: ideas
:> : will earn my everlasting gratitude!
:
:> : Setup: QNX 6.1 on x86 with an el900 Ethernet adapter ()
:
:> : Configuration: An ip-ip intermediate driver is loaded, processing
some
:> : packets, passing others through without processing.
:> : With most traffic, everything works fine.
:> : With a specific traffic scenario, the driver causes io-net to die,
even
:> : though the driver does not process any of the packets!
:
:> : gdb on io-net shows a segfault in “0xb03750da in resched() from
:> : /x86/lib/dll/npm-tcpip.so” with NO traceback.
:
:> : - io-net does not crash with the driver unloaded.
:> : - By “passing packets through” I mean:
:> : - the driver’s rx_up routine does ion->tx_up() followed by
:> : ion->tx_done() if tx_up() returned 0.
:> : - the driver’s rx_down routine does ion->tx_down()
:
:> : - The packets in question a fairly small tcp/ip packets. Nothing
special
:> : about them (as far as I can see…)
:
:> : - More information (much more!) available upon request…
:
:> : Help!
:
:> : Rony
:
:
:
:> : (
) The problem also occurs on an RPX-Lite powerpc.
:
:

Rony Shapiro <rshapiro@maya-st.com> wrote:
: So I guess we’re hosed until then?

Unless you can reduce your stack requirements.

: (BTW - when is 6.2 scheduled for release?)

Probably asking in the wrong place. Your
sales rep should be able to help you.

-seanb