HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [hylafax-users] Multi serial solutions



Michael Hallager wrote:
Andrew Rinaldi wrote:
choose a board that has a "PCI Status Register"...
Sorry, that should have said "PCI Interrupt Status Register".  This
register allows the serial driver to examine the status of all board
interrupts without polling each port in tern.  This register was a
standard feature of the first multiport serial cards when they were
launched in the 1980's and is invaluable for optimising interrupt
service routine performance.

This is one reason why we can run 128 fax ports simultaneously on a
1.2GHz PIII machine.

Hello Andrew-


I only want to run 4 or 8 ports. Non of the cards I have looked at have this feature. Is it important at this port-scale?

Also - you say "board interrupts" - the board I'm looking at only uses 1 IRQ.

Kind regards,

Michael.

Hello Michael,


If your multiport serial board does not support a 'interrupt status register' then the multitude of interrupts that are generated by each and every port are all routed to a single IRQ. This simplistic architecture forces the Interrupt Service Routine (ISR) to poll each port on a multiport board in turn looking for the source of any interrupt that it receives. This interrupt polling is extremely inefficient and therefore historically multiport serial boards included a 'interrupt status register' to optimise the performance of the ISR by allowing it to read the status of all the ports on the board with a single read. Unfortunately, the 'interrupt status register' has been removed from most modern multiport serial boards.

To some extent the Linux serial driver is also a 'moving target' with some significant new features (and bugs) being introduced during the last few years. Here are a couple of issues that you may want to consider when deliberating over your proposed multiport solution;

(1) hardware flow control

The serial driver has a number of problems whereby the hardware flow control on the serial interface fails during heavy workload. If I remember the details correctly, this bug is most prevalent during IDE disk interrupts when heavy modem flow control is in use;

http://lkml.org/lkml/2007/7/26/46

(2) The Interrupt Service Routine (ISR) seems to have a 'race' condition

Some of the reports of modems 'wedging' are, we believe, due to a race condition in the ISR. Unfortunately, this 'wedging' is so dependant on Kernel version, motherboard, chipset, and modem type that we have never been able to characterise the bug. The workaround that we have found is to use the 'interrupt status register' to read multiple interrupts from the board in a single read.... we suspect that this simply reduces the workload on the ISR and makes the race condition so rare that it can be ignored.


Needless to say, Mainpine implement multiple workarounds for these (and other) issues.... it might be that our software port reset, interrupt status register, and firmware watchdogs, will help you deliver a robust and reliable fax server.


Regards

Andrew Rinaldi
Mainpine Developer Support
USA +1 866 363 6680 | UK +44 1225 807 807
andrew.rinaldi@xxxxxxxxxxxx | www.mainpine.com


____________________ HylaFAX(tm) Users Mailing List _______________________ To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx < /dev/null *To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*




Project hosted by iFAX Solutions