We have a quite large multitasking communication system implemented on Vxworks 5.5 and PPC8260. The system should handle a lot of Ethernet traffic and also handle some cyclic peripheral control activities via RS-232, memory mapped I/O etc. What happens is that in some moment few message queues we are using for inter task communication become overflowed (I see it by log inspection). When I check the status of tasks responsible for serving this Message queues (that is doing receive on them) they appear to be READY.When I inspect msgQShow for the queues themselves they are full but no tasks appear to be blocked on them. But looking at task stack trace shows that a task actually pending inside msgQReceive call.Specifically in the qJobGet kernel call or something alike.
vxworks message queue "lost" a task blocked on it. What can be a reason?
437 Views Asked by ErikRTDev At
1
There are 1 best solutions below
Related Questions in MULTITHREADING
- How can I outsource worker processes within a for loop?
- OpenMP & oneTbb difference
- Receiving Notifications for Individual Task Completion OmniThreadLibrary Parallel.ForEach
- C++ error: no matching member function for call to 'enqueue' futures.emplace_back(TP.enqueue(sum_plus_one, x, &M));
- How can I create a thread in Haskell that will restart if it gets killed due to any reason?
- Qt: running callback in the main thread from the worker thread
- Using `static` on a AVX2 counter function increases performance ~10x in MT environment without any change in Compiler optimizations
- Heap sort with multithreading
- windows multithreading CreateMutex
- The problem of "fine-grained locks and two-phase locking algorithm"
- OpenMP multi-threading not working if OpenMPI set to use one or two MPI processor
- WPF Windows Initializing is locking the separated thread in .Net 8
- TCP Client Losing Connection When Writing Data
- vc++ thread constructor throwing compiler error c2672
- ASP.NET Core 6 Web API : best way to pause before resending email
Related Questions in MESSAGE-QUEUE
- What's the right ZMQ architecture for my scenario?
- How to Extract Queue Name, Priority, and Message ID from RabbitMQ Inbound Endpoint Messages in WSO2 MI 4.2?
- Is there any example or design of a queue system in microservices?
- tkinter: search widget by name in an efficient way
- How do I maintain the same internal host on RabbitMQ?
- How to use consistent hashing across publishers, queues, and consumers
- How can I monitor/locate specific communications between programs on WIN10?
- Celery manually decoding message body in python
- How to read more than 32 message from Azure storage Queue
- How many senders and receivers of a notification are possible in a POSIX message queue
- Make sure BullMQ queue pushes data to single node in redis cluster
- Problem with AMQP-CPP and libuv - TCP Channel is not ready
- The switch of keyboard layout on Windows: synchronization with the multistage-processing of character input
- Queuing mechanism per account
- Is there a way to define a RabbitMQ consumer that keeps listening for a queue without blocking the program?
Related Questions in VXWORKS
- VXWorks version.h file errors
- select() always returns 0 Serial Port (UART) vxWorks
- Executable searching for the linked library in different path than the one set using LD_LIBRARY_PATH
- How to Specify a Location for Creating a VMware Resource Pool with PyVmomi?
- VxWorks 5.5 to VxWorks 7.0 migration
- How do I allocate RAM?
- vxworks 7 SDK start container by script
- Get current timestamp in microseconds in vxWorks
- converting DLL file of crio 9074 with vxworks os to .out
- vxWorks-6.9 Wind River 3.3.6 error message make.exe subdirs_all Error 2
- Linking external DKM (.o file) with the DKM project in WindRiver workbench 4.1
- Should sendto block when eth linkndown? Vxworks 6.9
- referencing "include" file in vxworks *.wpj file
- VxWorks Simulator Error: failed for simnet0
- boost::interprocess::message_queue priority scheme
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
It is unlikely in the extreme that a message queue "lost" a task that was blocked on it.
From your description we can assume:
The READY state is the state that tasks are in when they are available to run. Tasks are held in a queue (strictly, one queue per priority level), and when the reach the head of the queue they will be scheduled.
If tasks are persistently showing as READY, that suggests that they are not getting CPU time. The fact that the msgQ does not appear to empty supports that.
You should use tools such as system viewer to diagnose. You may need to raise the priority of the reader tasks. If your msgQSend is using NO_WAIT, you may need to use a timeout value