[EVO 4G Q&A, Help & Troubleshooting] rocketx86:
Here's some more information I've found on CIQ.

/system/bin/iqd is the CIQ backend daemon.

/system/bin/iqfd is the CIQ frontend daemon.

The two CIQ daemons are launched by /init.

# cat init.supersonic.rc
...
# CIQ backend daemon
service iqd /system/bin/iqd
user root
group root system

# CIQ frontend daemon
service iqfd /system/bin/iqfd
user root
group root system
...

I confirmed their parent process is /init and found that com.htc.android.iqagent is launched by zygoyte. com.htc.android.iqagent (possibly com.carrieriq.iqagent.service on other devices?) is the Android Client.

# ps
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 348 256 c00cc66c 0000d2ac S /init
...
root 292 1 124020 29572 c00cc66c afd0dd44 S zygote
...
root 306 1 10468 1432 ffffffff afd0dd44 S /system/bin/iqd
root 307 1 4828 780 ffffffff afd0ea5c S /system/bin/iqfd
...
app_29 439 292 157168 22440 ffffffff afd0ebd8 S com.htc.android.iqagent
...

The CIQ backend daemon is an active server on the device running on port 2479.

# busybox netstat -lp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 0.0.0.0:2479 0.0.0.0:* LISTEN 306/iqd
...
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
...
unix 2 [ ACC ] STREAM LISTENING 7409 306/iqd /app-cache/iqserver
...

CIQ has some associated libraries, devices, parameters, and a profile. The profile contains a URL to the collector along with some other info probably used to identify the type of device and network.

# find / -name *iq*
...
/app-cache/iqserver
/data/data/com.htc.android.iqrd
/data/data/com.htc.android.iqagent
/sys/devices/virtual/misc/pmem_ciq
/sys/devices/virtual/misc/pmem_ciq1
/sys/devices/virtual/misc/pmem_ciq2
/sys/devices/virtual/misc/pmem_ciq3
...
/sys/class/misc/pmem_ciq
/sys/class/misc/pmem_ciq1
/sys/class/misc/pmem_ciq2
/sys/class/misc/pmem_ciq3
/sys/module/smd/parameters/ciq_info
/system/lib/libciq_client.so
/system/lib/libhtciqagent.so
/system/lib/libciq_htc.so
/system/etc/iqprofile.pro
...
/system/bin/iqd
/system/bin/iqfd
/dev/pmem_ciq3
/dev/pmem_ciq2
/dev/pmem_ciq1
/dev/pmem_ciq

The following CIQ log entries are extracted from multiple logs (not a single log) that I have seen in various forum postings. These could be application event failures. I don't see these on a healthy device.

...
D/CIQ ( 116): throwUI04 com.htc.bgp
D/CIQ ( 116): processName com.htc.bgp
D/CIQ ( 116): throwUI05 com.htc.RosieUtility
D/CIQ ( 116): processName
D/CIQ ( 112): throwUI05 com.htc.bg
D/CIQ ( 112): processName com.htc.bg
D/CIQ ( 66): throwUI04 com.newsrob
D/CIQ ( 66): processName com.newsrob
D/CIQ ( 66): throwUI03
D/CIQ ( 66): processName com.coremobility.app.vnotes
D/CIQ ( 3833): throwUI04 android.process.media
D/CIQ ( 3833): processName android.process.media
D/CIQ ( 3833): throwUI04 com.htc.android.iqagent
D/CIQ ( 3833): processName com.htc.android.iqagent
D/CIQ ( 3833): throwUI04 com.google.process.gapps
D/CIQ ( 3833): processName com.google.process.gapps
D/CIQ ( 3833): throwUI04 com.android.wallpaper
D/CIQ ( 3833): processName com.android.wallpaper
D/CIQ ( 3833): throwUI04 com.htc.android.htcime
D/CIQ ( 3833): processName com.htc.android.htcime
D/CIQ ( 3833): throwUI04 com.android.phone
D/CIQ ( 3833): processName com.android.phone
D/CIQ ( 3833): throwUI04 android.process.acore
D/CIQ ( 3833): processName android.process.acore
D/CIQ ( 3833): throwUI04 com.htc.launcher
D/CIQ ( 3833): processName com.htc.launcher
...

Maybe if the IQ Server (iqd) is not responding, then the IQ Client (iqfd) is constantly trying to reconnect. I found the following log snippet from other posts in the forums about similiar issues.

...
E/com_htc_android_iqagent_Controller( 129): backend daemon was not ready!
D/IQClient( 51): wait for backend daemon ready ...
D/IQServer( 50): JavaRequestAlarmSet is failed... Will not release wakelock[ciq-backend]!
D/IQServer( 50): JavaRequestAlarmSet is failed... Will not release wakelock[ciq-backend]!
D/IQServer( 50): Reset the timeout to 3000(ms) for AlarmSet retry...
D/IQJavaJob( 50): JavaRequestAlarmSet: Java job client is not connected now!
D/IQServer( 50): JavaRequestAlarmSet is failed... Will not release wakelock[ciq-backend]!
D/IQServer( 50): Reset the timeout to 3000(ms) for AlarmSet retry...
D/IQJavaJob( 50): JavaRequestAlarmSet: Java job client is not connected now!
D/IQServer( 50): JavaRequestAlarmSet is failed... Will not release wakelock[ciq-backend]!
D/IQServer( 50): Reset the timeout to 3000(ms) for AlarmSet retry...
D/IQJavaJob( 50): JavaRequestAlarmSet: Java job client is not connected now!
D/IQServer( 50): JavaRequestAlarmSet is failed... Will not release wakelock[ciq-backend]!
D/IQServer( 50): Reset the timeout to 3000(ms) for AlarmSet retry...
...

That's all I have. Please provide any additional information you have.