long delays after rtems_bsdnet_initialize_network
Amalaye Oyake
amalaye.oyake at jpl.nasa.gov
Wed Jun 6 23:47:29 UTC 2007
Hello,
this is a follow-on question to the one I asked yesterday. Thanks for your
help BTW!
I am playing around with dnstest. The NIC seems to be happy now. I had to
increase the number of message queues from the default of 0. The elnk code
uses message queues.
rtems_bsdnet_initialize_network is called and the NIC comes up happily
saying media available, driver attached, tasks created and it returns
nicely and the app then calls testDNS().
At this point it does a printf("\n****TEST DNS****\n");
Then nothing waits for a long time (over 5 minutes) and then it prints
host?
What could cause this delay long delay? Should I turn time slicing on? My
config stuff looks like this:
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 8
#define CONFIGURE_MAXIMUM_TIMERS 20
#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 20
#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
#define CONFIGURE_EXECUTIVE_RAM_SIZE (128*1024)
#define CONFIGURE_MAXIMUM_SEMAPHORES 40
#define CONFIGURE_MAXIMUM_TASKS 40
#define CONFIGURE_MICROSECONDS_PER_TICK 1000
#define CONFIGURE_INIT_TASK_STACK_SIZE (20*1024)
#define CONFIGURE_INIT_TASK_PRIORITY 100
#define CONFIGURE_INIT_TASK_INITIAL_MODES (RTEMS_PREEMPT | \
RTEMS_NO_TIMESLICE | \
RTEMS_NO_ASR | \
RTEMS_INTERRUPT_LEVEL(0))
Regards,
Amalaye
-----Original Message-----
From: Daron Chabot [mailto:djc915 at mail.usask.ca]
Sent: Tuesday, June 05, 2007 6:16 PM
To: Amalaye Oyake
Cc: RTEMS
Subject: Re: Unable to create TX buffer recovery queue
On 5-Jun-07, at 6:31 PM, Amalaye Oyake wrote:
> Setting MANAGERS=all may be one step but don't some of the
>
> #define CONFIGURE_MAXIMUM_XYZs have default values of 0?
>
> I may need to assign some values to these perhaps?
Yup. Right you are...
Try: #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 10
or whatever number you think will satisfy your requirements.
Alternatively, you can use the "rtems_resource_unlimited( )" directives:
e.g. #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES rtems_resource_unlimited
(10)
Have a look through the file in the RTEMS source-tree, "cpukit/score/
src/Unlimited.txt". It explains a lot of the gory details behind
"rtems_resource_unlimited( )".
-- dc
> -----Original Message-----
> From: Daron Chabot [mailto:djc915 at mail.usask.ca]
> Sent: Tuesday, June 05, 2007 5:11 PM
> To: Amalaye Oyake
> Cc: RTEMS
> Subject: Re: Unable to create TX buffer recovery queue
>
>
> On 5-Jun-07, at 5:21 PM, Amalaye Oyake wrote:
>
>> Hello,
>>
>> I am using RTEMS on a i386 system (a 400Mhz Pentium II with 128MB
>> of RAM).
>> The NIC is a 3C905B (3COM Card) ... RTEMS finds the NIC, does a
>> timer setup,
>> identifies the media and says unit elnk1 driver attached.
>>
>> Then it says
>>
>> RTEMS: etherlink : Unable to create TX Buffer recovery queue
>> RTEMS: fatal error, exiting
>>
>> What do the above errors mean? How can I fix this?
>
> Have a look at the driver source, elnk.c, line 3525:
>
> if (txDaemonTid == 0)
> {
> if( rtems_message_queue_create( rtems_build_name
> ('X','L','c','r'),
> sc->numTxbuffers+1,
> sizeof(struct TXMD *),
> RTEMS_FIFO | RTEMS_LOCAL,
> &chainRecoveryQueue ) !=
> RTEMS_SUCCESSFUL )
> {
> rtems_panic( "etherlink : Unable to create TX buffer
> recovery queue\n" );
> }
>
> ...
>
> i.e. the directive, rtems_message_queue_create( ), is failing...
>
> I'm going to guess that you haven't included the Message Manager in
> your application's Makefile. If memory is not an issue (and 128 MB is
> *lots* to play with...), just set the "Managers" variable to "all":
>
> i.e. in your Makefile set
> MANAGERS=all
>
> That will circumvent several obscure "gotchyaz"...
>
>
> -- dc
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.com
> http://rtems.rtems.org/mailman/listinfo/rtems-users
More information about the users
mailing list