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

Reply via email to