Dear developers,
I have an issue with pcscd / pcsc-lite which is quite puzzling (for me),
it may even be related with hardware/USB but I cannot guess why.
For a number of reasons, I'm using a very old version of pcscd (1.5.3),
modified to handle a large number of readers (I just changed the proper
#define's here and there).
I understand that this is quite an extreme situation, so I do not expect
anybody to have tried it, just I hope that you have any clue for me.
The problem is that this trivial hack worked fine on a couple of server
models for some time, but miserably fails on a Dell R410.
I'm puzzled because we use the same operating system (Red Hat RHEL 5.4),
same kernel (Linux 2.6.18-164.10.1.el5 #1 SMP Wed Dec 30 18:35:37 EST
2009 i686 i686 i386 GNU/Linux) and the hardware is definitely similar
-almost identical- to the R610 which never showed the issue (we also
placed an R610 processor on the R410 board to rule out that variable:
Xeon E5620 vs Xeon E5607, the latter missing HT), also having 4GB RAM
each (this to rule out any relationship with the quantity of RAM
dedicated to the thread structures in the kernel).
The set of recompiled software is the same; the smart card readers are
ACS ACR38 SmartCard Reader and there is a 2-level cascade of USB hubs
(server - hub - hubs - smart card readers).
The point is that, on the R410 only, I come to this error (not on the R610):
Jun 5 15:43:15 pes-app-blank-01 pcscd:
winscard_svc.c:106:CreateContextThread() SYS_ThreadCreate failed: Cannot
allocate memory
Jun 5 15:43:15 pes-app-blank-01 pcscd:
pcscdaemon.c:151:SVCServiceRunLoop() Problem during the context thread
creation
(another notice: the error is produced by the function pthread_create,
almost certainly the glibc produces the ENOMEM error code but it should
be EAGAIN, this is a known glibc issue).
Also, on the R410 pcscd seems to use a lot more threads to do the same
job (3-4 times the number of threads of the R610), tht is presumably why
it runs out of ammo.
Question 1 is: does it make sense that PCSCD needs more threads on a
(slightly) different hardware to do the same job? Which would the cause be?
Question 2: any clue about this issue???
Question 3: can I reduce the number of required threads? I expect pcscd
to start new threads on a need-basis, but if it is not so, which
#define's should I change to keep the request low but accessing many
readers at a time (up to 4 processes my need to access one reader)? The
exact relationship between the defined values is not fully clear to me.
Thanks everybody,
Umberto
(part of) lspci output follows...
R410, BAD BEHAVIOUR:
00:00.0 Host bridge: Intel Corporation 5500 I/O Hub to ESI Port (rev 13)
00:01.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express
Root Port 1 (rev 13)
3 of these:
00:14.0 PIC: Intel Corporation 5520/5500/X58 I/O Hub System Management
Registers (rev 13)
00:14.1 PIC: Intel Corporation 5520/5500/X58 I/O Hub GPIO and Scratch
Pad Registers (rev 13)
00:14.2 PIC: Intel Corporation 5520/5500/X58 I/O Hub Control Status and
RAS Registers (rev 13)
6 of these:
00:1a.0 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB
UHCI Controller #4
2 of these:
00:1d.7 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB2
EHCI Controller #1
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 90)
00:1f.0 ISA bridge: Intel Corporation 82801JIR (ICH10R) LPC Interface
Controller
R610, OK:
00:00.0 Host bridge: Intel Corporation 5500 I/O Hub to ESI Port (rev 13)
4 of these:
00:01.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express
Root Port 1 (rev 13)
00:14.0 PIC: Intel Corporation 5520/5500/X58 I/O Hub System Management
Registers (rev 13)
00:14.1 PIC: Intel Corporation 5520/5500/X58 I/O Hub GPIO and Scratch
Pad Registers (rev 13)
00:14.2 PIC: Intel Corporation 5520/5500/X58 I/O Hub Control Status and
RAS Registers (rev 13)
4 of these:
00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #4 (rev 02)
2 of these:
00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI
Controller #1 (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express
Port 1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface
Controller (rev 02)
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle