Bug 438900

Summary: PC card daemon overhead too high
Product: Red Hat Enterprise MRG Reporter: IBM Bug Proxy <bugproxy>
Component: realtime-kernelAssignee: Red Hat Real Time Maintenance <rt-maint>
Status: CLOSED NOTABUG QA Contact:
Severity: medium Docs Contact:
Priority: low    
Version: betaCC: bhu
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-05-27 22:07:20 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 448636    

Description IBM Bug Proxy 2008-03-25 21:13:05 UTC
=Comment: #0=================================================
Alan P. Stevens <alan_stevens.com> - 2008-03-13 07:17 EDT
Problem description:

The pcscd daemon is using more CPU than any other daemon ( such as softirq-net-
rx ), and although it is a low priority task, any additional background noise 
could lead to higher preemption costs to RT task, cache pollution and other 
undersirable impacts on determinism. It appeared with RHEL 5.1 and so in SR3 
kernels onwards.

System tap shows the activity (from strace) as file opens every second or so -  

pcscd(3928) open ("/dev/bus/usb", O_RDONLY|O_DIRECTORY|O_NONBLOCK)
pcscd(3928) open ("/dev/bus/usb/001", O_RDONLY|O_DIRECTORY|O_NONBLOCK)
pcscd(3928) open ("/dev/bus/usb/001/001", O_RDWR)
pcscd(3928) open ("/dev/bus/usb/001/001", O_RDWR)


And 'top' output sorted by cumulative CPU time confirms pcscd is the worst 
offender...


Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4010632k total,  3002848k used,  1007784k free,   224912k buffers
Swap:  1959920k total,       88k used,  1959832k free,  2469824k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+    TIME COMMAND
 3928 root      25   0 18948 1392  592 S    0  0.0   0:40.36   0:40 pcscd
   46 root     -91   0     0    0    0 S    0  0.0   0:23.34   0:23 softirq-net-
rx/
10035 root      11  -5     0    0    0 S    0  0.0   0:11.53   0:11 kjournald
    7 root     -91   0     0    0    0 S    0  0.0   0:10.73   0:10 softirq-net-
rx/
   20 root     -91   0     0    0    0 S    0  0.0   0:10.49   0:10 softirq-net-
rx/
 2060 root      10  -5     0    0    0 S    0  0.0   0:10.48   0:10 IRQ-24
   33 root     -91   0     0    0    0 S    0  0.0   0:07.84   0:07 softirq-net-
rx/
   47 root     -51   0     0    0    0 S    0  0.0   0:05.55   0:05 softirq-
block/3
  246 root      10  -5     0    0    0 S    0  0.0   0:04.79   0:04 kswapd0
 2251 root      15   0  6708  904  388 S    0  0.0   0:03.97   0:03 dhclient
 3955 root      25   0 95468 1200  904 S    0  0.0   0:02.44   0:02 automount
  635 root      11  -5     0    0    0 S    0  0.0   0:02.14   0:02 kjournald
  476 root      10  -5     0    0    0 S    0  0.0   0:02.07   0:02 IRQ-26
   44 root     -51   0     0    0    0 S    0  0.0   0:02.00   0:02 softirq-
timer/3
 4228 avahi     15   0 23216 1472 1176 S    0  0.0   0:01.91   0:01 avahi-daemon
 4239 haldaemo  15   0 30832 3948 1656 S    0  0.1   0:01.76   0:01 hald
21993 root      15   0     0    0    0 S    0  0.0   0:01.62   0:01 pdflush
    1 root      18   0 10312  632  540 S    0  0.0   0:01.17   0:01 init
   10 root     -51   0     0    0    0 S    0  0.0   0:01.08   0:01 softirq-
sched/0
   18 root     -51   0     0    0    0 S    0  0.0   0:00.83   0:00 softirq-
timer/1
   37 root     -93   0     0    0    0 S    0  0.0   0:00.79   0:00 softirq-
hrtimer
   23 root     -51   0     0    0    0 S    0  0.0   0:00.77   0:00 softirq-
sched/1
    5 root     -51   0     0    0    0 S    0  0.0   0:00.71   0:00 softirq-
timer/0
 4217 root      15   0  244m  17m 3608 S    0  0.4   0:00.55   0:00 yum-updatesd
 7506 stevens   15   0 85124 1876 1148 S    0  0.0   0:00.34   0:00 sshd
   31 root     -51   0     0    0    0 S    0  0.0   0:00.32   0:00 softirq-
timer/2
  686 root      15  -4 12616  828  392 S    0  0.0   0:00.31   0:00 udevd
   36 root     -51   0     0    0    0 S    0  0.0   0:00.29   0:00 softirq-
sched/2
 2312 root      15   0  5876  616  492 S    0  0.0   0:00.27   0:00 syslogd
 7507 stevens   16   0 66044 1508 1184 S    0  0.0   0:00.27   0:00 bash
   40 root       5 -10     0    0    0 S    0  0.0   0:00.24   0:00 desched/2
   53 root       5 -10     0    0    0 S    0  0.0   0:00.24   0:00 desched/3
   27 root       5 -10     0    0    0 S    0  0.0   0:00.17   0:00 desched/1
   14 root       5 -10     0    0    0 S    0  0.0   0:00.16   0:00 desched/0
 8958 stevens   15   0 12712 1088  804 R    0  0.0   0:00.12   0:00 top
   41 root      RT   0     0    0    0 S    0  0.0   0:00.11   0:00 migration/3
   54 root       0 -20     0    0    0 S    0  0.0   0:00.11   0:00 events/0

Next step - I will see if running without pcscd makes any measureable 
difference to Calibrate / Recalibrate.

=Comment: #2=================================================
Sripathi Kodi <sripathi.com> - 2008-03-13 07:47 EDT
pcscd is the smart card daemon. 

On my LS20 pcscd has not consumed much CPU yet. However, the system has only
been running for around 3 hours.
[root@llm50 ~]# ps -ef |grep pcscd
root      2750     1  0 14:23 ?        00:00:02 pcscd

strace shows that it keeps opening and closing /dev/bus/usb/001/001 all the time.

We can turn off this service if we can confirm that we don't need it.
=Comment: #3=================================================
Sripathi Kodi <sripathi.com> - 2008-03-13 07:49 EDT
Google says pcscd has given problems to others in the past:
https://fcp.surfsite.org/modules/newbb/viewtopic.php?viewmode=flat&topic_id=46565&forum=12
http://www.nabble.com/pcscd,-sun-java,-100--CPU-usage-td14574113.html
http://fcp.surfsite.org/modules/newbb/viewtopic.php?viewmode=flat&order=DESC&topic_id=34080&forum=12&move=prev&topic_time=1171910543

=Comment: #4=================================================
John G. Stultz <jstultz.com> - 2008-03-24 17:08 EDT
Pretty easy to turn it off via chkconfig. Probably worth bringing up w/ RH so
its on their radar as well.

Comment 1 IBM Bug Proxy 2008-04-02 15:24:36 UTC
------- Comment From jstultz.com 2008-04-02 11:18 EDT-------
Disabling via chkconfig is likely the solution here. Needs to be documented,
then I think this is ok to mark resolved.

Comment 2 Clark Williams 2008-05-27 22:07:20 UTC
closing

Comment 3 IBM Bug Proxy 2008-05-28 09:48:32 UTC
------- Comment From sripathi.com 2008-05-28 05:47 EDT-------
Clark, you have closed this bug as NOTABUG. Did you decide so because you
concluded that the PC card daemon does not affect latencies?