从QNX4移植QNX6后的问题

系统移植到QNX6后,最初的感觉只是有些慢。开始认为是因为我们的程序在QNX4上跑的都是单线程,而QNX6的多线看来没有派上用处,又带来系统开销。但4天后,发现有的节点机反映停滞,但没死机。只是敲键盘反映很慢,telnet也不好用。奇怪的是又过了1天,系统恢复正常。从日志上看,前一天有大量的message通信,但绝大部分是通讯失败的message.
用momentics的target系统分析看到,有几个外围设备和上位机通讯不大正常,不应该有大数据量通讯,返到出现大量访问。这几个进程的cpu运行时间,都超长,是qnx4上的10-100倍。我用同样的方法在qnx4上采样,这几个进程通讯运行的时间在10-100us,而在qnx6上1-10ms。
我们的通讯也不复杂,每个外围机(a),在上位机(b)中对应有一个mq. 如果 a1要与a2通讯,a1 send() b, b 把信息放到a2的mq中,a2 在从mq中取信息。

经过分析,qnx4中b的优先级默认下是固定的(fixed),而qnx6中默认下是浮动的。必须加上FLAG, _NTO_CHF_FIXED_PRIORITY, 才能固定。修改后,系统运行了好久。问题看似解决了。

但这几天又出现同样现象,这几个进程大量占有CPU的运行时间。从日志上看,他们是一个百分比一个百分比的侵占CPU的,大概用了10天的时间。又造成了先前的现象。
[问题]QNX6在Mqueue和io-net上动过什么手脚,Posix的关于socket的函数有什么不同的实现吗?
有没有什么思路,是哪方面出的问题。

_NTO_CHF_FIXED_PRIORITY不是Channel用的吗?MQ在什么地方使用此Flag?

我有一个简单的猜测,是不是目标MQ队列满了写不过去一直在重试呀?!