From: Brian P. <bri...@tu...> - 2004-11-08 16:10:24
|
Joel Welling wrote: > Hi folks; > It looks to me like every time a CR_MESSAGE_READ_PIXELS, WRITEBACK, or > READBACK is sent upstream the communications buffer is never freed. I have a > patch to packspu_net.c, replicatespu_net.c, tilesortspu_net.c, and net.c where > crNetFree(conn,buf); is added after the appropriate bit of the case > statements. For example, in packspu_net.c the code becomes: > > case CR_MESSAGE_READ_PIXELS: > packspuReadPixels( &(msg->readPixels), len ); > crNetFree(conn,buf); > break; > case CR_MESSAGE_WRITEBACK: > packspuWriteback( &(msg->writeback) ); > crNetFree(conn,buf); > break; > case CR_MESSAGE_READBACK: > packspuReadback( &(msg->readback), len ); > crNetFree(conn,buf); > break; > default: > /*crWarning( "Why is the pack SPU getting a message of type 0x%x?", msg-> > type ); */ > > Before I check this in, can someone who knows the network layer look at this > and verify that I'm talking sense? I know this fix allows my application to > run on Quadrics without running out of Quadrics card memory. The above change to the pack SPU causes an assertion failure for me. If you compile chromium with RELEASE=0 and test with crdemo.conf and TCP/IP you'll see it. If I find time later, I'll try to narrow down the cause. -Brian |